Torna agli aggiornamenti
New releaseSep 10, 2026

garak v0.17.0

Scanner di vulnerabilità LLM modulare che indaga su allucinazioni, perdita di dati, injection di prompt, jailbreak e tossicità utilizzando sonde statiche, dinamiche e adattive attraverso più provider di modelli.

Condividi

garak, scanner di vulnerabilità per LLM

Generative AI Red-teaming & Assessment Kit

garak verifica se un'applicazione basata su LLM può essere indotta a fallire in modi indesiderati. garak sonda allucinazioni, fuga di dati, prompt injection, disinformazione, generazione di tossicità, jailbreak e molte altre debolezze. Se conosci nmap o msf / Metasploit Framework, garak fa più o meno cose simili, ma per gli LLM.

garak si concentra sui modi per far fallire un LLM o un sistema dialogico. Combina sonde statiche, dinamiche e adattive per esplorare questo aspetto.

garak è uno strumento gratuito. Amiamo svilupparlo e siamo sempre interessati ad aggiungere funzionalità per supportare le applicazioni.

License Tests/Linux Tests/Windows Tests/OSX Documentation Status arXiv discord-img Code style: black PyPI - Python Version PyPI Downloads Downloads

Per iniziare

> Consulta la nostra guida utente! docs.garak.ai

> Unisciti al nostro Discord!

> Twitter: @garak_llm

> Slide del DEF CON slides!


Supporto LLM

attualmente supporta:

Installazione:

garak è uno strumento da riga di comando. È sviluppato su Linux e OSX.

Installazione standard con pip

Basta prenderlo da PyPI e dovresti essere pronto a partire:

python -m pip install -U garak

Installare la versione di sviluppo con pip

La versione standard di garak su pip viene aggiornata periodicamente. Per ottenere una versione più recente da GitHub, prova:

python -m pip install -U git+https://github.com/NVIDIA/garak.git@main

Clona dal sorgente

garak ha le proprie dipendenze. Puoi installare garak nel suo ambiente Conda dedicato:

conda create --name garak "python>=3.11,<=3.14"
conda activate garak
gh repo clone NVIDIA/garak
cd garak
python -m pip install -e .

OK, se è andato tutto bene, dovresti essere pronto!

Nota: se hai clonato prima del passaggio all'organizzazione GitHub NVIDIA, ma stai leggendo questo contenuto all'URI github.com/NVIDIA, aggiorna i tuoi remote come segue:

git remote set-url origin https://github.com/NVIDIA/garak.git

Per iniziare

La sintassi generale è:

garak <options>

garak deve sapere quale modello scansionare e, per impostazione predefinita, proverà tutte le probe che conosce su quel modello, utilizzando i rilevatori di vulnerabilità raccomandati da ciascuna probe. Puoi visualizzare un elenco delle probe usando:

garak --list_probes

Per specificare un generatore, usa le opzioni --target_type e, facoltativamente, --target_name. Il tipo di modello specifica una famiglia/interfaccia di modelli; il nome del modello specifica il modello esatto da utilizzare. La sezione "Intro to generators" qui sotto descrive alcuni dei generatori supportati. Una famiglia di generatori semplice è quella dei modelli Hugging Face; per caricarne uno, imposta --target_type su huggingface e --target_name sul nome del modello su Hub (ad es. "RWKV/rwkv-4-169m-pile"). Alcuni generatori potrebbero richiedere che una chiave API sia impostata come variabile d'ambiente, e ti avviseranno se ne hanno bisogno.

garak esegue tutte le probe per impostazione predefinita, ma puoi essere più specifico anche in questo. --spec probes.promptinject utilizzerà solo i metodi del framework PromptInject, ad esempio. Puoi anche specificare un singolo plugin invece di una famiglia di plugin aggiungendo il nome del plugin dopo un .; ad esempio, --spec probes.lmrc.SlurUsage utilizzerà un'implementazione di verifica per i modelli che generano insulti basata sul framework Language Model Risk Cards.

Per aiuto e ispirazione, trovaci su Twitter o discord!

Esempi

Verifica un modello commerciale per prompt injection basata sulla codifica (OSX/*nix) (sostituisci il valore di esempio con una vera chiave API OpenAI)

export OPENAI_API_KEY="sk-123XXXXXXXXXXXX"
python3 -m garak --target_type openai --target_name gpt-5-nano --spec probes.encoding

Verifica se la versione Hugging Face di GPT2 è vulnerabile a DAN 11.0

python3 -m garak --target_type huggingface --target_name gpt2 --spec probes.dan.Dan_11_0

Lettura dei risultati

Per ogni probe caricato, garak stamperà una barra di avanzamento durante la generazione. Una volta completata la generazione, viene fornita una riga che valuta i risultati di quel probe su ciascun detector. Se uno qualsiasi dei tentativi di prompt ha prodotto un comportamento indesiderabile, la risposta sarà contrassegnata come FAIL, e verrà indicato il tasso di fallimento.

Ecco i risultati con il modulo encoding su una variante di GPT-3: alt text

E gli stessi risultati per ChatGPT: alt text

Possiamo vedere che il modello più recente è molto più suscettibile agli attacchi di injection basati sulla codifica, mentre text-babbage-001 è risultato vulnerabile solo alle injection con codifica quoted-printable e MIME. Le cifre alla fine di ogni riga, ad esempio 840/840, indicano il numero totale di generazioni di testo e poi quante di queste sembravano comportarsi correttamente. La cifra può essere piuttosto alta perché viene effettuata più di una generazione per prompt - per impostazione predefinita, 10.

Gli errori finiscono in garak.log; l'esecuzione viene registrata in dettaglio in un file .jsonl specificato all'inizio e alla fine dell'analisi. C'è uno script di analisi di base in analyse/analyse_log.py che restituirà i probe e i prompt che hanno prodotto il maggior numero di hit.

Inviate PR e aprite issue. Buona caccia!

Introduzione ai generatori

Hugging Face

Categorie