NVIDIA SkillSpector: come controllare una skill AI
Lo scanner trova rischi prima dell'installazione, ma il punteggio va letto insieme a permessi, provenienza e codice
SkillSpector analizza una skill prima che venga installata e cerca istruzioni nascoste, accessi eccessivi, esfiltrazione di dati, dipendenze vulnerabili e altri comportamenti rischiosi. È utile soprattutto per skill di terze parti con script, rete o accesso a credenziali. Un risultato basso non dimostra però che la skill sia sicura: controlla sempre l'intera directory, interpreta i finding nel contesto e limita i permessi durante la prima esecuzione.
SkillSpector basta per sapere se una skill è sicura?
No. SkillSpector è un controllo preventivo per skill di Codex, Claude Code e altri agenti: segnala istruzioni e codice sospetti prima dell'installazione. Usalo sulle skill di terze parti, soprattutto se includono script o accesso alla rete. Un punteggio basso riduce il rischio evidente, ma non sostituisce la verifica della provenienza, dei permessi e del comportamento in sandbox.
- Scansiona la directory completa, non soltanto il file SKILL.md.
- Parti dall'analisi statica e usa quella semantica quando serve confrontare scopo dichiarato e comportamento.
- Blocca l'installazione sui finding critici; sui finding medi verifica se l'accesso è davvero necessario.
Confronto rapido
| Criterio | Scansione statica | Scansione con LLM |
|---|---|---|
| Che cosa cerca | Stringhe sospette, API pericolose, dipendenze vulnerabili, flussi di dati, permessi dichiarati e firme YARA | Differenze tra descrizione e comportamento, trigger vaghi, istruzioni mascherate e rischi che richiedono contesto |
| Dove avviene l'analisi | Sul computer, senza inviare la skill a un modello | Sul provider configurato; prima di usarla verifica dove finiranno istruzioni, script e riferimenti della skill |
| Velocità e costo | Rapida e senza costo API | Più lenta e soggetta al costo o ai limiti del modello scelto |
| Falsi positivi | Più probabili quando rete, file o credenziali sono necessari allo scopo dichiarato | Può ridurre il rumore, ma il giudizio del modello non è deterministico né infallibile |
| Quando usarla | Sempre come primo filtro, anche in CI | Quando il risultato statico è ambiguo o devi confrontare ciò che la skill promette con ciò che fa |
Tre scansioni in pratica
Abbiamo eseguito SkillSpector 2.3.11 in modalità statica il 26 luglio 2026. I casi mostrano perché il numero da 0 a 100 non va letto senza aprire i finding e capire che cosa dovrebbe fare la skill.
Fixture ufficiale sicura
Solo SKILL.md, senza script eseguibili · 0 finding
Risultato del test
0/100, SAFE
Come interpretarlo
Non sono emersi pattern statici, ma il report dichiara l'analisi incompleta perché il passaggio LLM è stato saltato
Un report pulito è un buon primo segnale. Non certifica l'assenza di comportamenti che lo scanner non vede.
Fixture ufficiale malevola
SKILL.md e script Python con comportamenti intenzionalmente rischiosi · 6 finding
Risultato del test
93/100, DO_NOT_INSTALL
Come interpretarlo
La combinazione di accessi e trasmissione dei dati giustifica il blocco prima dell'installazione
I finding critici o numerosi non vanno normalizzati con una baseline finché non hai capito e rimosso il comportamento.
Skill reale di automazione email
Istruzioni e uno script che accede a Gmail tramite API · 3 finding
Risultato del test
22/100, CAUTION
Come interpretarlo
L'accesso alle credenziali può essere coerente con lo scopo, ma richiede controllo di scope, destinazione dei dati e conferme
CAUTION non significa automaticamente skill malevola. Significa che devi verificare se ogni capacità segnalata è necessaria e limitata.
Perché una skill è una superficie di attacco
Una skill può contenere istruzioni, script, riferimenti e asset che l'agente usa con i tuoi permessi. Se l'agente può leggere file, avviare comandi o chiamare servizi esterni, una skill installata senza controllo può trasformare una procedura utile in un accesso stabile a dati e strumenti. Il rischio non è solo nel codice: anche una frase dentro SKILL.md può chiedere all'agente di ignorare un limite o inviare informazioni altrove.
- Uno script può leggere variabili d'ambiente, chiavi API o file fuori dal progetto.
- Un'istruzione può ampliare lo scopo senza dichiararlo nella descrizione.
- Una dipendenza non fissata può cambiare dopo la review.
- Un trigger troppo generico può attivare la skill in task che non la richiedono.
Che cosa fa SkillSpector
SkillSpector accetta directory locali, repository Git, URL, archivi zip e singoli file. La scansione statica cerca pattern di prompt injection, esfiltrazione, escalation dei privilegi, dipendenze rischiose, abuso dei tool e altre classi di problemi. Può inoltre interrogare OSV.dev per le vulnerabilità note e produrre report per terminale, JSON, Markdown o SARIF.
- Il report assegna un punteggio di rischio, una severità e una raccomandazione.
- JSON e SARIF permettono di inserire la scansione in una pipeline CI.
- Una baseline può sopprimere finding già accettati, ma va legata a regole o impronte precise.
- La scansione segnala rischi prima dell'installazione: non isola né controlla la skill durante l'esecuzione.
# Primo controllo locale, senza inviare contenuti a un LLM
skillspector scan ./mia-skill --no-llm
# Report JSON da conservare o confrontare in CI
skillspector scan ./mia-skill --no-llm --format json --output skillspector-report.json
# Analisi statica e semantica con il provider configurato
skillspector scan ./mia-skillCome leggere il punteggio senza farti ingannare
Apri sempre i singoli finding. Lo stesso accesso alla rete può essere sospetto in una skill che promette di formattare testo e necessario in una skill che legge issue da GitHub. Controlla file, riga, categoria e capacità coinvolta; poi confrontali con la descrizione e con i permessi che sei disposto a concedere.
- SAFE: nessun pattern rilevato nella modalità eseguita, non garanzia assoluta.
- CAUTION: serve una decisione umana sulle capacità segnalate.
- DO_NOT_INSTALL: blocca l'installazione finché i finding non sono rimossi o spiegati con evidenze verificabili.
- Analisi incompleta: il report può aver controllato tutti i file ma saltato il passaggio semantico o la ricerca live delle vulnerabilità.
Quando aggiungere l'analisi semantica
La modalità con LLM serve quando il problema non è una stringa pericolosa evidente, ma il rapporto tra scopo e comportamento. Può riconoscere che una chiamata a GitHub è coerente con una skill per le pull request oppure notare che una skill di formattazione legge credenziali senza motivo. Prima di attivarla, considera che il contenuto della skill può essere inviato al provider configurato.
- Usala sui finding statici ambigui, non per sostituire la lettura del codice.
- Evitala su skill riservate se non hai approvato provider, retention e trattamento dei dati.
- Conserva modalità, modello e versione nel report: una nuova esecuzione può dare un giudizio diverso.
- Se vuoi un controllo ripetibile in CI, tieni la scansione statica come gate separato.
I limiti che restano dopo un report pulito
SkillSpector non esegue la skill in una sandbox per osservare che cosa farà davvero. La documentazione segnala limiti su contenuti non inglesi, attacchi nelle immagini, binari cifrati e comportamento a runtime. Una ricerca del 2026 ha inoltre mostrato che tecniche di impacchettamento e offuscamento possono eludere molti scanner di skill. Per questo un punteggio basso deve restare uno strato della difesa, non il permesso automatico a installare.
- Controlla autore, repository, cronologia e commit che stai installando.
- Preferisci dipendenze fissate e script leggibili.
- Verifica eventuali firme, ma ricorda che una firma prova integrità e provenienza, non sicurezza.
- Esegui la prima prova con directory, rete e credenziali limitate.
Una procedura pratica prima dell'installazione
Per una skill breve scritta dal tuo team può bastare una review manuale affiancata dalla scansione statica. Alza il livello quando la skill arriva da terzi, contiene script, usa shell o rete, legge credenziali oppure può modificare file senza conferma. In questi casi il gate deve fermare davvero l'installazione, non limitarsi ad allegare un report.
- 1. Scarica o clona la skill senza installarla nell'agente.
- 2. Scansiona la directory completa in modalità statica.
- 3. Apri i finding e confrontali con scopo, trigger e permessi dichiarati.
- 4. Aggiungi l'analisi semantica se restano discrepanze difficili da giudicare.
- 5. Verifica provenienza, firma e dipendenze della versione esatta.
- 6. Installa prima in un ambiente limitato e osserva file, rete e comandi richiesti.
Quando SkillSpector è utile e quando è troppo
Il vantaggio cresce con la capacità della skill di agire. Una checklist in solo Markdown, scritta e revisionata dal tuo team, ha una superficie ridotta e si controlla rapidamente anche a mano. Una skill scaricata da un marketplace, con script e accesso a servizi, merita invece almeno una scansione statica e una review dei permessi. Per repository condivisi conviene aggiungere il controllo alla CI e fallire la pipeline sui finding ad alta severità.
- Uso personale, skill corta e senza script: review manuale più scansione statica.
- Skill di terze parti con rete o shell: scansione completa e prova isolata.
- Team con catalogo interno: report versionato, baseline motivata e gate in CI.
- Skill con segreti o azioni irreversibili: non affidarti a un solo scanner.
Domande frequenti
Un punteggio 0 significa che la skill è sicura?
No. Significa che la modalità eseguita non ha trovato i pattern che conosce. Verifica anche provenienza, permessi, dipendenze e comportamento della skill, soprattutto quando contiene script o usa la rete.
SkillSpector invia la skill a un modello AI?
Non con l'opzione --no-llm: i file non vengono inviati a un modello, anche se la ricerca delle dipendenze vulnerabili può interrogare OSV.dev. La modalità semantica usa invece il provider configurato, quindi verifica endpoint, trattamento dei dati e costi prima di analizzare contenuti riservati.
Posso scansionare soltanto SKILL.md?
Sì, ma non è il controllo consigliato per una skill completa. Punta alla directory principale, così lo scanner vede anche script, riferimenti, configurazioni e dipendenze dove può trovarsi il comportamento rischioso.
Funziona con le skill di Codex e Claude Code?
Sì. SkillSpector analizza il pacchetto della skill e non dipende da un solo agente. Resta comunque necessario controllare quali permessi e strumenti il client specifico concederà durante l'esecuzione.
Quanto costa usare SkillSpector?
Il progetto è open source con licenza Apache 2.0 e la scansione statica non richiede un'API LLM. L'analisi semantica può avere costi o limiti legati al provider e al modello configurati.
La newsletter di QualeAI
Resta sempre aggiornato sul mondo AI
Ricevi aggiornamenti editoriali sui nostri approfondimenti, tool AI, modelli e workflow da conoscere.
