
Strumento CLI che spiega le CVE in inglese semplice e scansiona i repository per valutare l'impatto. Alimentato da Claude.
"Questa CVE mi riguarda?" — risposta in secondi, non ore.
Sentinel prende un ID CVE, recupera dati da NVD, OSV.dev e MITRE, poi usa Claude per produrre un briefing chiaro e attuabile in 5 sezioni sulla vulnerabilità.
cd sentinel/
pip install -e .
# Richiesto: chiave API Anthropic
sentinel config set api-key sk-ant-...
# Opzionale: chiave API NVD (limiti più alti di frequenza)
sentinel config set nvd-key xxxxxxxx-xxxx-...
# Oppure usa le variabili d'ambiente
export ANTHROPIC_API_KEY=sk-ant-...
export NVD_API_KEY=xxxxxxxx-xxxx-...
# Spiega una CVE (report in 5 sezioni con output colorato nel terminale)
sentinel cve CVE-2024-3094
# Scegli la persona di output (vedi Persone più sotto)
sentinel cve CVE-2024-3094 --format exec # Riepilogo Esecutivo / CISO
sentinel cve CVE-2024-3094 -f engineer # Approfondimento tecnico dettagliato
sentinel cve CVE-2024-3094 -f devops # Focalizzato sull'infrastruttura
sentinel cve CVE-2024-3094 -f security # Report predefinito in 5 sezioni
# Funziona anche con scan
sentinel scan . --cve CVE-2024-3094 --format exec
# Output JSON
sentinel cve CVE-2024-3094 --json
# Output Markdown
sentinel cve CVE-2024-3094 --markdown
# Riepilogo breve di un paragrafo
sentinel cve CVE-2024-3094 --brief
# Salta cache, recupera dati freschi
sentinel cve CVE-2024-3094 --no-cache
# Modalità verbosa (mostra tempi e dettagli fonte)
sentinel cve CVE-2024-3094 -v
--format / -f)security (predefinito) — Analista di SicurezzaIl classico briefing di vulnerabilità in 5 sezioni:
exec — Dirigente / CISOUna lettura di 10 secondi per dirigenti impegnati. Severità a semaforo, impatto aziendale, un'azione da intraprendere. Nessun gergo.
🔴 CRITICA — CVE-2024-3094 (Backdoor XZ)
Una backdoor è stata inserita in una libreria di compressione Linux core utilizzata sulla maggior parte dei server.
Gli aggressori possono intercettare e modificare i dati su qualsiasi sistema che esegue xz 5.6.0-5.6.1.
È richiesto un downgrade immediato — stima 15-30 min per server, nessun downtime previsto.
Rischio: Compromissione della supply chain — alta severità, sfruttamento attivo
Impatto: Tutta l'infrastruttura Linux che esegue versioni interessate
Azione necessaria: Downgrade di xz alla 5.4.6. Verifica con `xz --version`.
engineer — Ingegnere del SoftwareApprofondimento tecnico dettagliato con versioni esatte, comandi di upgrade, pattern grep e passi di test:
devops — DevOps / SREFocalizzato sull'infrastruttura con container, K8s, CI/CD e monitoraggio:
Sentinel rileva dipendenze nelle configurazioni di build delle app mobili che gli scanner standard non trovano:
# Scansiona un progetto Android
sentinel scan ./my-android-app --cve CVE-2024-XXXX
# Scansiona un progetto iOS
sentinel scan ./my-ios-app --cve CVE-2024-XXXX
# Scansiona un progetto Flutter
sentinel scan ./my-flutter-app
Caratteristiche:
$firebaseBomVersion) da gradle.properties e blocchi ext {}libs.versions.toml)Firebase/Analytics)Scansiona il tuo cluster Kubernetes per immagini container vulnerabili:
# Scansiona tutti i namespace
sentinel scan --k8s
# Scansiona namespace specifico
sentinel scan --k8s --namespace production
# Controlla una CVE specifica nel cluster
sentinel scan --k8s --cve CVE-2024-3094
# Genera SBOM per tutte le immagini in esecuzione
sentinel scan --k8s --sbom
# Scansiona un'immagine specifica (nessuna connessione al cluster necessaria)
sentinel scan --k8s --image nginx:1.25
Sentinel necessita di accesso in sola lettura. Applica il manifest RBAC minimale:
kubectl apply -f config/k8s-rbac.yaml
Questo crea un ServiceAccount sentinel-readonly con solo permessi get e list su pod, namespace, deployment, replicaset, daemonset e statefulset. Nessun accesso in scrittura.
Determina se una CVE colpisce effettivamente il tuo codice tracciando se le funzioni vulnerabili sono raggiungibili dai punti di ingresso:
# Analisi completa con interpretazione Claude
sentinel scan . --cve CVE-2024-22195 --execution-path
# Solo locale (nessun dato inviato esternamente)
sentinel scan . --cve CVE-2024-22195 --execution-path --local-only
Verdetti:
| Modalità | Dati inviati esternamente |
|---|---|
--local-only | Nessun dato — analisi AST puramente locale |
| Default | Solo metadati sanitizzati: nomi di funzioni, nomi di import, archi del grafo delle chiamate (lista nodi/archi), descrizione CVE. Mai codice sorgente. |
Tutti i dati inviati a Claude sono registrati in ~/.sentinel/audit.log per revisione.
sentinel cache clear # Cancella tutti i dati nella cache
La configurazione è memorizzata in ~/.sentinel/config.json. Cache in ~/.sentinel/cache.db.
sentinel config set api-key <key>
sentinel config set nvd-key <key>
sentinel config set model <model-name>
sentinel config get api-key
Sentinel include un server FastAPI che accetta comandi da Slack, Microsoft Teams, Telegram e una API REST generica.
sentinel server start # Porta predefinita 8080
sentinel server start --port 9090 # Porta personalizzata
sentinel server start --workers 4 # Più worker
sentinel server status # Controlla se in esecuzione
# Spiega una CVE
curl -X POST http://localhost:8080/api/cve \
-H "Content-Type: application/json" \
-d '{"cve_id": "CVE-2024-3094"}'
# Scansiona un repository
curl -X POST http://localhost:8080/api/scan \
-H "Content-Type: application/json" \
-d '{"repo_url": "https://github.com/user/repo", "cve_id": "CVE-2024-3094"}'
# Controllo di integrità
curl http://localhost:8080/health
sentinel setup slack # Guida interattiva di configurazione
config/slack-manifest.ymlexport SLACK_SIGNING_SECRET=<signing-secret>
export SLACK_BOT_TOKEN=xoxb-<bot-token>
https://<your-domain>/slack/commandshttps://<your-domain>/slack/events/sentinel cve CVE-2024-3094 o @Sentinel cve CVE-2024-3094sentinel setup teams # Guida interattiva di configurazione
https://<your-domain>/teams/webhookexport TEAMS_WEBHOOK_SECRET=<base64-hmac-secret>
@Sentinel cve CVE-2024-3094sentinel setup telegram # Guida interattiva di configurazione
export TELEGRAM_BOT_TOKEN=<bot-token>
curl -X POST "https://api.telegram.org/bot<TOKEN>/setWebhook" -d '{"url":"https://<YOUR_DOMAIN>/telegram/webhook"}'/cve CVE-2024-3094, /scan <repo> --cve CVE-XXXXcd docker/
# Imposta le variabili d'ambiente nel file .env o esportale
docker compose up -d
# Con reverse proxy nginx:
docker compose --profile with-nginx up -d
| Sezione | Cosa risponde |
|---|
| 🔍 Cos'è | Spiegazione in linguaggio semplice |
| 💥 Come sfruttarla | Vettore d'attacco, riepilogo PoC, difficoltà |
| 🚨 Chi deve preoccuparsi | Software interessato, versioni, ecosistemi |
| 🛡️ Come applicare la patch in sicurezza | Passi di rimedio, link alla patch |
| ✅ Cosa testare | Passi di verifica dopo la patch |
| Sezione | Focus |
|---|
| 📦 Librerie e Versioni Interessate | Intervalli di versione esatti, catene di dipendenze |
| 🔧 Rimedio a Livello di Codice | Comandi di upgrade specifici, modifiche di configurazione |
| 🔍 Cosa Cercare con Grep | Pattern da cercare nel tuo codebase |
| 🧪 Come Testare la Correzione | Comandi di verifica, test di regressione |
| ⚠️ Modifiche Rottura | Deprecazioni, differenze comportamentali |
| Sezione | Focus |
|---|
| 🏗️ Infrastruttura Interessata | Immagini di base, container, servizi cloud |
| 🚀 Impatto sul Deploy | Strategia di aggiornamento rolling, valutazione downtime |
| 🔄 Piano di Rollback | Come tornare indietro se la patch causa problemi |
| 📊 Monitoraggio e Rilevamento | Log, alert, rilevamento dello sfruttamento |
| 🚨 Passi di Risposta agli Incidenti | Passo dopo passo se sfruttato attivamente |
| Ecosistema | File Analizzati | File Lock (preferito) |
|---|
| Android (Gradle) | build.gradle, build.gradle.kts, gradle/libs.versions.toml | — |
| iOS (CocoaPods) | Podfile | Podfile.lock |
| iOS (Swift PM) | Package.swift | Package.resolved |
| Flutter (Dart) | pubspec.yaml | pubspec.lock |
| Endpoint | Method | Descrizione |
|---|
/health | GET | Controllo di integrità |
/api/cve | POST | API REST — spiega una CVE |
/api/scan | POST | API REST — scansiona un repository |
/slack/commands | POST | Slack slash commands |
/slack/events | POST | Slack Events API |
/teams/webhook | POST | Teams outgoing webhook |
/telegram/webhook | POST | Telegram bot webhook |