
Regole di rilevamento per la fuga di codice sorgente di Claude Code : 16 regole Sigma, Splunk, Elastic, YARA. Convalidate in laboratorio su GOAD Light DC02.
Regole di rilevamento Sigma, Splunk, Elastic e YARA per la fuga di codice sorgente di Claude Code (31 marzo 2026) e il concomitante attacco alla supply chain npm.
Il 31 marzo 2026, Anthropic ha accidentalmente distribuito una mappa sorgente mal configurata in @anthropic-ai/[email protected], esponendo circa 60 MB di codice TypeScript interno (512k righe, 1906 file). Lo stesso giorno, il pacchetto npm axios è stato compromesso nelle versioni 1.14.1 e 0.30.4 – un RAT è stato incorporato attraverso una dipendenza chiamata plain-crypto-js. Entrambi gli eventi sono accaduti a poche ore di distanza l'uno dall'altro.
Ho creato questo repository per rispondere a una semplice domanda: dato ciò che ora sappiamo sugli interni di Claude Code, cosa dovrebbe cercare un SOC?
Il codice sorgente ha rivelato diverse funzionalità non documentate e gli esatti interni del motore delle autorizzazioni: cose che prima erano vettori di attacco teorici, e ora sono concreti.
Logica di orchestrazione MCP: L'elenco esatto dei comandi bash pre-approvati e il modello di fiducia per i contenuti esterni sono ora pubblici. Gli aggressori possono creare repository o documenti che aggirano la convalida di Claude Code proprio perché le regole di convalida non sono più segrete.
KAIROS: Una modalità demone citata oltre 150 volte nel codice trapelato. Claude Code può essere eseguito in background senza interazione diretta dell'utente. Questo non era presente in alcuna documentazione.
autoDream: Un processo di consolidamento della memoria che viene eseguito durante i periodi di inattività e scrive in MEMORY.md. Avvelenare quel file può influenzare il comportamento dell'agente tra sessioni.
Modalità Undercover: Claude Code può contribuire a repository pubblici senza rivelare il coinvolgimento dell'IA. Il prompt di sistema trapelato dice esplicitamente al modello di non esporre i nomi in codice interni (Capybara, Tengu, Fennec, Numbat) nei messaggi di commit.
CVE-2025-54794 (CVSS 7.7): Bypass delle restrizioni di percorso, che permette a Claude Code di accedere a file al di fuori della sandbox della directory corrente (CWD). Risolto nella v0.2.111.
CVE-2025-54795 (CVSS 8.7): Iniezione di comandi attraverso il bypass della validazione bash. Risolto nella v1.0.20.
Riferimenti:
16 regole Sigma (13 minacce, 3 suddivise tra categorie di logsource), tutte validate con pySigma. Ogni regola corrisponde direttamente a un risultato specifico della fuga o a un CVE.
Le regole Sigma sono in rules/sigma/. Le query SPL in rules/splunk/, EQL in rules/elastic/, YARA in rules/yara/.
Esistono due regole aggiuntive al di fuori del pacchetto Sigma:
.claude/settings.local.json con flag pericolosi (dangerouslySkipPermissions, autoApprove: true). Non in Sigma perché il matching del campo Contents su contenuto JSON non è supportato in modo affidabile su diverse versioni di Sysmon.Ho eseguito la simulazione su GOAD-Light-DC02 (Windows Server 2019, Sysmon64 in esecuzione).
Il pattern di CVE-2025-54795: un processo genera cmd.exe come figlio per eseguire comandi arbitrari. Nella simulazione, PowerShell interpreta il ruolo di claude-code, generando cmd.exe che esegue whoami.
Sysmon ha catturato l'intera catena di processo:
powershell.exe (PID 3856) → cmd.exe /c whoami (PID 3760) → whoami.exe (PID 4428)

whoami.exe — User: 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 record reali di Sysmon EventID 1 con tutti i campi. JSON grezzo in tests/real-logs/SC-008.json, EVTX completo in tests/real-logs/sysmon_lab.evtx.
Limitazioni oneste: SC-005 (EventID 11 non catturato su questo DC — filtro FileCreate nella configurazione Sysmon), SC-006 (git non installato su DC02), regole di rete SC-009/SC-010 non testate contro log proxy reali. Dettagli completi in LIMITATIONS.md.
Verifica se hai scaricato il pacchetto axios compromesso durante la finestra di attacco (31 marzo 2026, 00:21–03:29 UTC):
chmod +x scripts/check_lockfile.sh
./scripts/check_lockfile.sh
python3 scripts/check_axios_rat.py --path ./
Distribuisci le regole Sigma:
pip install sigma-cli
sigma convert -t splunk rules/sigma/*.yml
sigma convert -t eql rules/sigma/*.yml
Esegui la suite di test sintetici:
python3 tests/validate_rules.py --verbose
Riproduci il laboratorio su una macchina Windows con Sysmon:
Set-ExecutionPolicy Bypass -Scope Process -Force
.\scripts\claude_leak_lab_dc02.ps1
rules/
sigma/ 16 regole Sigma (SC-001 to SC-013, con SC-002/SC-004/SC-013 suddivise per logsource)
splunk/ Query SPL
elastic/ Regole EQL
yara/ Regole YARA per rilevamento file/binary
tests/
events/ Eventi JSON sintetici per regola (casi TP + FP)
sim-logs/ Log di esecuzione da simulazioni container Linux
real-logs/ Log Sysmon reali da DC02 (EventID 1/3/11)
scripts/
check_lockfile.sh Audit dei file lock npm per versioni compromesse
check_axios_rat.py Verifica della presenza di marcatori RAT in node_modules
claude_leak_lab_dc02.ps1 Riproduzione del laboratorio su Windows con Sysmon
docs/
threat_model.md Catene di attacco
mitre_mapping.md Copertura ATT&CK
ioc_list.md IOC
lab_validation.md Cosa è stato testato e come
assets/screenshots/ Screenshot Sysmon reali da DC02
LIMITATIONS.md Copertura e limitazioni
Elenco completo con pattern di rete e CVE in docs/ioc_list.md.
Jean Koumou - Blue Team
Licenza MIT.
| ID | Cosa rileva | Gravità |
|---|
| SC-001 | [email protected] o plain-crypto-js nelle installazioni npm | Critico |
| SC-002a | Connessioni in uscita di claude-code verso host non Anthropic | Alto |
| SC-002b | Processi pericolosi (shell, curl, python) generati da claude-code | Alto |
| SC-003 | File CLAUDE.md contenenti pattern di injection nel prompt di sistema | Medio |
| SC-004a | claude-code avviato con flag --daemon o argomenti KAIROS/autoDream | Alto |
| SC-004b | File MEMORY.md o .claude/ creati al di fuori delle directory di progetto | Medio |
| SC-005 | MEMORY.md scritto con contenuti di escalation dei privilegi (sempre consentito, salta conferma) | Alto |
| SC-006 | Commit Git contenenti nomi in codice interni di Anthropic o paternità AI non dichiarata | Medio |
| SC-007 | claude-code che accede a file sensibili al di fuori di CWD (CVE-2025-54794) | Critico |
| SC-008 | Comandi distruttivi o reverse shell generati da claude-code (CVE-2025-54795) | Critico |
| SC-009 | Payload XSS nelle richieste a sottodomini di claude.ai (ShadowPrompt) | Alto |
| SC-010 | Redirect aperto di claude.com concatenato con injection di prompt ?q= (Claudy Day) | Alto |
| SC-011 | curl generato da claude/cowork che carica file su api.anthropic.com | Alto |
| SC-012 | Strumenti di ricognizione/sfruttamento (nmap, mimikatz, hydra) generati da claude-code | Critico |
| SC-013a | Node.js eval + dump di process.env (indicatori di esecuzione RAT axios) | Critico |
| SC-013b | Beacon Node.js C2 verso porte non standard (rete RAT axios) | Critico |
| Tipo | Valore |
|---|
| Pacchetto npm | [email protected] |
| Pacchetto npm | [email protected] |
| Dipendenza npm | plain-crypto-js (qualsiasi versione) |
| Pacchetto npm | @anthropic-ai/[email protected] |
| Finestra temporale | 2026-03-31 00:21–03:29 UTC |
| Nomi in codice interni | Capybara, Fennec, Tengu, Numbat |
| Pattern di processo | claude-code --daemon / kairos |