
Правила обнаружения для утечки исходного кода Claude Code : 16 правил Sigma, Splunk, Elastic, YARA. Подтверждено в лабораторных условиях на GOAD Light DC02.
Правила обнаружения Sigma, Splunk, Elastic и YARA для утечки исходного кода Claude Code (31 марта 2026 г.) и сопутствующей атаки на цепочку поставок npm.
31 марта 2026 года Anthropic случайно опубликовала неправильно настроенную карту исходного кода в @anthropic-ai/[email protected], что привело к утечке ~60 МБ внутреннего TypeScript-исходного кода (512k строк, 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. Отравление этого файла может влиять на поведение агента между сеансами.
Режим Undercover: Claude Code может вносить вклад в публичные репозитории, не раскрывая участие ИИ. Утекший системный промпт явно предписывает модели не раскрывать внутренние кодовые имена (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.
Ссылки:
16 правил Sigma (13 угроз, 2 разделены по категориям источников логов), все прошли валидацию pySigma. Каждое правило напрямую связано с конкретным фактом утечки или CVE.
Правила Sigma находятся в rules/sigma/. SPL-запросы в rules/splunk/, EQL в rules/elastic/, YARA в rules/yara/.
Существует два дополнительных правила за пределами пакета Sigma:
.claude/settings.local.json с опасными флагами (dangerouslySkipPermissions, autoApprove: true). Отсутствуют в Sigma, поскольку сопоставление поля Contents с JSON-содержимым не поддерживается надёжно во всех версиях Sysmon.Я провёл симуляцию на 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 (EventID 11 не захвачен на этом контроллере домена — фильтрация FileCreate в конфиге Sysmon), SC-006 (git не установлен на DC02), сетевые правила SC-009/SC-010 не протестированы на реальных прокси-логах. Полные детали в LIMITATIONS.md.
Проверьте, не загрузили ли вы скомпрометированный axios во время временного окна атаки (31 марта 2026 г., 00:21–03:29 UTC):
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
Воспроизведите лабораторную среду на Windows-машине с Sysmon:
Set-ExecutionPolicy Bypass -Scope Process -Force
.\scripts\claude_leak_lab_dc02.ps1
rules/
sigma/ 16 правил Sigma (SC-001 – SC-013, SC-002/SC-004/SC-013 разделены по источнику логов)
splunk/ SPL-запросы
elastic/ EQL-правила
yara/ YARA-правила для обнаружения файлов/бинарных данных
tests/
events/ Синтетические JSON-события для каждого правила (TP + FP случаи)
sim-logs/ Логи выполнения из симуляций в контейнерах Linux
real-logs/ Реальные логи Sysmon с DC02 (EventID 1/3/11)
scripts/
check_lockfile.sh Аудит npm-lockfile на скомпрометированные версии
check_axios_rat.py Проверка node_modules на маркеры RAT
claude_leak_lab_dc02.ps1 Воспроизведение лабораторной среды на Windows с Sysmon
docs/
threat_model.md Цепочки атак (kill chains)
mitre_mapping.md Покрытие ATT&CK
ioc_list.md Индикаторы компрометации
lab_validation.md Что было протестировано и как
assets/screenshots/ Реальные снимки Sysmon с DC02
LIMITATIONS.md Что покрыто, а что нет
Полный список с сетевыми паттернами и CVE в docs/ioc_list.md.
Jean Koumou - Blue Team
Лицензия MIT.
| ID | Что обнаруживает | Критичность |
|---|
| SC-001 | [email protected] или plain-crypto-js в npm-установках | Критическая |
| SC-002a | Исходящие соединения claude-code к хостам, не принадлежащим Anthropic | Высокая |
| SC-002b | Опасные процессы (shell, curl, python), порождённые claude-code | Высокая |
| SC-003 | Файлы CLAUDE.md, содержащие шаблоны внедрения системных промптов | Средняя |
| SC-004a | Запуск claude-code с флагом --daemon или аргументами KAIROS/autoDream | Высокая |
| SC-004b | Файлы MEMORY.md или .claude/, созданные вне каталогов проектов | Средняя |
| SC-005 | MEMORY.md, записанный с содержимым, повышающим привилегии (always allow, skip confirmation) | Высокая |
| SC-006 | Git-коммиты, содержащие внутренние кодовые имена Anthropic или нераскрытое авторство ИИ | Средняя |
| SC-007 | Обращение claude-code к чувствительным файлам за пределами CWD (CVE-2025-54794) | Критическая |
| SC-008 | Деструктивные команды или обратная оболочка, порождённые из claude-code (CVE-2025-54795) | Критическая |
| SC-009 | XSS-полезные нагрузки в запросах к поддоменам claude.ai (ShadowPrompt) | Высокая |
| SC-010 | Открытый редирект claude.com в связке с внедрением промпта ?q= (Claudy Day) | Высокая |
| SC-011 | curl, порождённый claude/cowork, загружающий файлы на api.anthropic.com | Высокая |
| SC-012 | Инструменты разведки/эксплуатации (nmap, mimikatz, hydra), порождённые из claude-code | Критическая |
| SC-013a | Node.js eval + дамп process.env (индикаторы выполнения RAT axios) | Критическая |
| SC-013b | Node.js C2-маяк на нестандартные порты (сеть RAT axios) | Критическая |
| Тип | Значение |
|---|
| npm-пакет | [email protected] |
| npm-пакет | [email protected] |
| npm-зависимость | plain-crypto-js (любая версия) |
| npm-пакет | @anthropic-ai/[email protected] |
| Временное окно | 2026-03-31 00:21–03:29 UTC |
| Внутренние кодовые имена | Capybara, Fennec, Tengu, Numbat |
| Паттерн процесса | claude-code --daemon / kairos |