Kjean13/aiagent-detection-rules
GitHub: Kjean13/aiagent-detection-rules
针对 Claude Code 源码泄露及关联 npm 供应链攻击的检测规则集,包含 16 条经验证的多平台规则。
Stars: 2 | Forks: 0
# aiagent-detection-rules
针对 Claude Code 源代码泄露(2026 年 3 月 31 日)及其并发 npm 供应链攻击的 Sigma、Splunk、Elastic 和 YARA 检测规则。
2026 年 3 月 31 日,Anthropic 意外在 `@anthropic-ai/claude-code@2.1.88` 中发布了一个配置错误的 source map,导致约 60MB 的内部 TypeScript 源代码(51.2 万行,1906 个文件)暴露。同日,npm 包 `axios` 的版本 `1.14.1` 和 `0.30.4` 遭到入侵 —— 通过名为 `plain-crypto-js` 的依赖植入了 RAT。这两起事件在数小时内相继发生。
我建立这个代码库是为了回答一个简单的问题:鉴于我们现在对 Claude Code 内部机制的了解,SOC 应该关注什么?
## 泄露暴露的内容
源代码揭示了几个未公开的功能以及权限引擎的精确内部机制 —— 这些以前是理论上的攻击向量,现在变成了具体的威胁。
**MCP 编排逻辑**:预批准的 bash 命令的确切列表以及外部内容的信任模型现已公开。攻击者可以精心设计仓库或文档来绕过 Claude Code 的验证,这正是因为验证规则不再是秘密。
**KAIROS**:在泄露代码中被引用 150 多次的守护进程模式。Claude Code 可以在后台运行,无需直接的用户交互。这一点在任何文档中均未提及。
**autoDream**:在空闲期间运行并写入 `MEMORY.md` 的内存整合进程。污染该文件可以跨会话影响 agent 的行为。
**Undercover Mode(潜伏模式)**:Claude Code 可以在不披露 AI 参与的情况下为公共仓库做贡献。泄露的系统提示明确告诉模型不要在提交信息中暴露内部代号(`Capybara`、`Tengu`、`Fennec`、`Numbat`)。
**CVE-2025-54794**(CVSS 7.7):路径限制绕过,允许 Claude Code 访问其 CWD 沙箱之外的文件。已在 v0.2.111 中修复。
**CVE-2025-54795**(CVSS 8.7):通过 bash 验证绕过进行的命令注入。已在 v1.0.20 中修复。
参考资料:
- https://venturebeat.com/technology/claude-codes-source-code-appears-to-have-leaked-heres-what-we-know
- https://cryptobriefing.com/claude-code-leak-vulnerabilities
- https://cymulate.com/blog/cve-2025-547954-54795-claude-inverseprompt
- https://www.oasis.security/blog/claude-ai-prompt-injection-data-exfiltration-vulnerability
- https://thehackernews.com/2026/03/claude-extension-flaw-enabled-zero.html
## 检测规则
16 条 Sigma 规则(13 种威胁,3 条分散在不同的 logsource 类别中),均针对 pySigma 进行了验证。每条规则直接映射到特定的泄露发现或 CVE。
| ID | 检测内容 | 严重程度 |
|----|----------------|----------|
| SC-001 | npm 安装中的 `axios@1.14.1` 或 `plain-crypto-js` | Critical |
| SC-002a | claude-code 向非 Anthropic 主机的出站连接 | High |
| SC-002b | 由 claude-code 生成的危险进程(shell, curl, python) | High |
| SC-003 | 包含系统提示注入模式的 CLAUDE.md 文件 | Medium |
| SC-004a | 使用 `--daemon` 标志或 KAIROS/autoDream 参数启动的 claude-code | High |
| SC-004b | 在项目目录之外创建的 MEMORY.md 或 .claude/ 文件 | Medium |
| SC-005 | 写入权限提升内容(always allow, skip confirmation)的 MEMORY.md | High |
| SC-006 | 包含 Anthropic 内部代号或未披露 AI 作者身份的 Git 提交 | Medium |
| SC-007 | claude-code 访问 CWD 之外的敏感文件 (CVE-2025-54794) | Critical |
| SC-008 | 从 claude-code 生成的破坏性命令或反向 shell (CVE-2025-54795) | Critical |
| SC-009 | 发往 claude.ai 子域的请求中的 XSS 载荷 (ShadowPrompt) | High |
| SC-010 | claude.com 开放重定向与 ?q= 提示注入链接 (Claudy Day) | High |
| SC-011 | 由 claude/cowork 生成的 curl 正在上传文件到 api.anthropic.com | High |
| SC-012 | 从 claude-code 生成的侦察/利用工具 (nmap, mimikatz, hydra) | Critical |
| SC-013a | Node.js eval + process.env 转储 (axios RAT 执行指标) | Critical |
| SC-013b | Node.js 指向非标准端口的 C2 信标 (axios RAT 网络) | Critical |
Sigma 规则位于 `rules/sigma/`。SPL 查询位于 `rules/splunk/`,EQL 位于 `rules/elastic/`,YARA 位于 `rules/yara/`。
Sigma 包之外还有两条额外的规则:
- **EL-006** (Elastic) 和 **YR-004** (YARA):通过包含危险标志(`dangerouslySkipPermissions`, `autoApprove: true`)的 `.claude/settings.local.json` 进行权限覆盖检测。不包含在 Sigma 中,因为跨 Sysmon 版本对 JSON 内容的 `Contents` 字段匹配支持不稳定。
## 实验室验证 : SC-008 (CVE-2025-54795)
我在 **GOAD-Light-DC02**(Windows Server 2019,运行 Sysmon64)上运行了模拟。
CVE-2025-54795 模式:一个进程生成 cmd.exe 作为子进程以执行任意命令。在模拟中,PowerShell 扮演 claude-code 的角色,生成 cmd.exe 来执行 whoami。
Sysmon 捕获了完整的进程链:
`powershell.exe` (PID 3856) → `cmd.exe /c whoami` (PID 3760) → `whoami.exe` (PID 4428)

`whoami.exe` — 用户:`NORTH\robb.stark` — SHA256:`1D5491E3C468EE4B4EF6EDFF4BBC7D06EE83180F6F0B1576763EA2EFE049493A`

`cmd.exe` — ParentImage:`powershell.exe` — CommandLine:`cmd.exe /c whoami > C:\claude-lab\sc008.txt` — CurrentDirectory:`C:\claude-lab\sim-repo\`

3 条包含完整字段的真实 Sysmon EventID 1 记录。原始 JSON 位于 `tests/real-logs/SC-008.json`,完整 EVTX 位于 `tests/real-logs/sysmon_lab.evtx`。
**诚实的局限性:** SC-005(此 DC 上未捕获 EventID 11 —— Sysmon 配置中的 FileCreate 过滤),SC-006(DC02 上未安装 git),网络规则 SC-009/SC-010 未针对真实代理日志进行测试。完整详情见 `LIMITATIONS.md`。
## 用法
检查你是否在攻击窗口(2026 年 3 月 31 日,00:21–03:29 UTC)期间拉取了受损的 axios:
```
chmod +x scripts/check_lockfile.sh
./scripts/check_lockfile.sh
python3 scripts/check_axios_rat.py --path ./
```
部署 Sigma 规则:
```
pip install sigma-cli
sigma convert -t splunk rules/sigma/*.yml
sigma convert -t eql rules/sigma/*.yml
```
运行合成测试套件:
```
python3 tests/validate_rules.py --verbose
```
在带有 Sysmon 的 Windows 机器上重放实验室:
```
Set-ExecutionPolicy Bypass -Scope Process -Force
.\scripts\claude_leak_lab_dc02.ps1
```
## 仓库布局
```
rules/
sigma/ 16 Sigma rules (SC-001 to SC-013, with SC-002/SC-004/SC-013 split by logsource)
splunk/ SPL queries
elastic/ EQL rules
yara/ YARA rules for file/binary detection
tests/
events/ Synthetic JSON events per rule (TP + FP cases)
sim-logs/ Execution logs from Linux container simulations
real-logs/ Real Sysmon logs from DC02 (EventID 1/3/11)
scripts/
check_lockfile.sh Audit npm lockfiles for compromised versions
check_axios_rat.py Check for RAT markers in node_modules
claude_leak_lab_dc02.ps1 Replay lab on Windows with Sysmon
docs/
threat_model.md Kill chains
mitre_mapping.md ATT&CK coverage
ioc_list.md IOCs
lab_validation.md What was tested and how
assets/screenshots/ Real Sysmon captures from DC02
LIMITATIONS.md What this does and doesn't cover
```
## IOC
| 类型 | 值 |
|------|-------|
| npm package | `axios@1.14.1` |
| npm package | `axios@0.30.4` |
| npm dependency | `plain-crypto-js` (任何版本) |
| npm package | `@anthropic-ai/claude-code@2.1.88` |
| 时间窗口 | 2026-03-31 00:21–03:29 UTC |
| 内部代号 | Capybara, Fennec, Tengu, Numbat |
| 进程模式 | `claude-code --daemon` / `kairos` |
包含网络模式和 CVE 的完整列表见 `docs/ioc_list.md`。
## 作者
Jean Koumou — Blue Team
[eliesec.fr](https://eliesec.fr) · [github.com/Kjean13](https://github.com/Kjean13) · jeank@eliesec.fr
MIT License。
标签:Agent 安全, AI合规, AI 安全, AMSI绕过, Claude Code, CVE, DNS 反向解析, DNS 解析, Elasticsearch, GOAD, NPM 投毒, Sigma 规则, SOC 检测规则, TypeScript, XXE攻击, YAML, YARA 规则, 供应链攻击, 命令注入, 域名分析, 大模型安全, 威胁检测, 安全库, 安全插件, 数字签名, 文档安全, 源码泄露, 网络安全审计, 路径遍历, 远程控制木马, 逆向工具