
skill-scanner v2.0.13
Scanner di sicurezza per le abilità degli agenti
Skill Scanner
Uno scanner di sicurezza best-effort per AI Agent Skills che rileva prompt injection, esfiltrazione di dati e pattern di codice malevolo. Combina rilevamento basato su pattern (YAML + YARA-X), analisi AST e dataflow, un opzionale LLM-as-a-judge, e un livello decisionale CEL limitato su fatti tipizzati dei rilevatori.
Importante: Questo scanner fornisce un rilevamento best-effort, non una copertura completa o esaustiva. Una scansione che non restituisce risultati non garantisce che una skill sia priva di tutte le minacce. Vedi Ambito e Limitazioni di seguito.
Supporta i formati OpenAI Codex Skills e Cursor Agent Skills seguendo la specifica Agent Skills. Con --lenient, scansiona anche formati non standard come Claude Code .claude/commands/*.md e repository di skill in markdown piatto.
Punti salienti
- Rilevamento Multi-Engine - Analisi statica, dataflow comportamentale, analisi semantica LLM e scansione basata su cloud per una copertura a più livelli, best-effort
- Decisioni CEL tipizzate - Lo scanner principale utilizza il runtime ufficiale
cel-gov0.32.0 per correlare fatti limitati dopo il rilevamento deterministico e prima dell'analisi LLM opzionale - Revisione dei risultati - Il Meta-analyzer opzionale correla, prioritizza e può filtrare i risultati; la validazione dell'accuratezza abbinata rimane in sospeso
- Pronto per CI/CD - Output SARIF per GitHub Code Scanning, workflow GitHub Actions riutilizzabile, codici di uscita per fallimenti di build
- Hook pre-commit - Integrazione con il framework standard pre-commit per scansionare le skill prima di ogni commit
- Estensibile - Architettura a plugin per analizzatori personalizzati
Unisciti al Cisco AI Discord per discutere, condividere feedback o connetterti con il team.
Ambito e Limitazioni
Skill Scanner è uno strumento di rilevamento. Identifica pattern di rischio noti e probabili, ma non certifica la sicurezza.
Limitazioni principali:
- Nessun risultato ≠ nessun rischio. Una scansione che restituisce "Nessun risultato" indica che non sono stati rilevati pattern di minaccia noti. Non garantisce che una skill sia sicura, benigna o priva di vulnerabilità.
- La copertura è intrinsecamente incompleta. Lo scanner combina rilevamento basato su firme, analisi semantica basata su LLM, analisi del dataflow comportamentale, servizi cloud opzionali e pacchetti di regole configurabili. Sebbene questo approccio migliori la copertura, nessuno strumento automatizzato può rilevare ogni tecnica, specialmente attacchi nuovi o zero-day.
- Possono verificarsi falsi positivi e falsi negativi. Le modalità di consenso e la meta-analisi possono aiutare a rivedere i risultati, ma nessuna configurazione elimina tutte le classificazioni errate. Adatta la policy di scansione alla tua tolleranza al rischio.
- La revisione umana rimane essenziale. La scansione automatizzata è una componente di una strategia di difesa in profondità. Le distribuzioni ad alto rischio o in produzione dovrebbero abbinare i risultati dello scanner alla revisione manuale del codice e/o alla modellazione delle minacce.
Evidenze attuali di modernizzazione
Il benchmark finale di sviluppo core + CEL contiene 5.256 pacchetti malevoli e 1.338
pacchetti benigni di MaliciousSkillBench. Rispetto a origin/main, lo scanner
attuale ha aumentato l'F1 dal 32,92% al 47,73% e il recall dal 19,88% al 31,43%, riducendo
al contempo il tasso di falsi positivi benigni dal 3,59% all'1,05%. La precisione è del 99,16%.
Cinque esecuzioni CEL-shadow sono state esatte e deterministiche; CEL ha valutato 154 candidati
senza proporre una soppressione né ricorrere a un fallback.
Lo split bloccato source-disjoint è più debole: TP=65, FP=42, TN=503 e FN=774,
per una precisione del 60,75%, un recall del 7,75%, un F1 del 13,74% e un FPR del 7,71%. Questo migliora l'F1
rispetto a origin/main (7,40%) ma peggiora l'FPR (3,67%), quindi non supera il
gate di promozione. Ogni regola CEL inclusa rimane pertanto in shadow; questa
modifica non promuove alcuna soppressione CEL.
I controlli di compatibilità e supplementari hanno rilevato risultati CEL-OFF/CEL-SHADOW identici su 111 skill ufficiali Codex, Claude Code e Cursor (30 pacchetti MEDIUM+ e 8 HIGH/CRITICAL), con cinque esecuzioni stabili. Il set hard-negative NotInject ha avuto 0/339 corrispondenze actionable. HarmfulSkillBench ha avuto 7/200 pacchetti actionable e 6/200 HIGH+ con un campione in quarantena, mentre OpenSkillRisk ha avuto 76/263 pacchetti actionable con due quarantene host. Questi ultimi due sono diagnostici di recall solo positivi e non possono misurare precisione o FPR. I risultati ATR opzionali sono al di fuori dell'ambito di questa release. Vedi Valutazione e Rollout del Rilevamento per metodologia, provenienza, intervalli di confidenza e limitazioni.