Qu’est-ce que garak ?
garak est un scanner en ligne de commande qui vérifie si un modèle de langage ou un système de chat peut être amené à échouer de manières que vous ne voulez pas. Ses 45 modules de sonde couvrent l'injection de prompt, les jailbreaks comme la famille DAN, les astuces d'encodage, la fuite de données, l'hallucination de paquets, la toxicité et la désinformation. Des détecteurs jugent ensuite chaque réponse, et garak rapporte un taux d'échec pour chaque paire de sonde et de détecteur. Le projet se compare à nmap et Metasploit, mais pour les LLM.
Il peut viser les modèles Hugging Face, OpenAI, AWS Bedrock, Replicate, Cohere, Groq, NVIDIA NIM, les modèles llama.cpp, tout ce qui est derrière LiteLLM, et presque n'importe quel endpoint REST via un court fichier YAML. Chaque exécution écrit un rapport JSONL avec chaque tentative et son évaluation ; la version 0.17.1 a ajouté un taux de succès d'attaque hit@k à ce rapport.
garak a commencé comme un projet indépendant et vit désormais dans l'organisation GitHub de NVIDIA. Il est sous licence Apache 2.0, a besoin de Python 3.11 ou plus récent, et a eu sept versions en 2026, la dernière étant 0.17.1 le 16 octobre.
garak vaut-il le coup ?
garak est l'outil ouvert le plus établi pour découvrir avec quelle facilité un endpoint de modèle peut être poussé dans des modes d'échec connus, et sa sortie est du genre qu'une revue de sécurité accepte : un taux d'échec par sonde et détecteur, adossé à un log JSONL de chaque tentative. Ses attaques viennent de recherches publiées, et la maintenance de NVIDIA se voit dans la cadence, avec des versions environ mensuelles tout au long de 2026 et environ 9 700 étoiles GitHub.
Les réglages par défaut sont ce sur quoi les nouveaux utilisateurs trébuchent. Sauf indication contraire, garak lance chaque sonde, envoie chaque prompt cinq fois (generations: 5 dans la config du cœur), plafonne chaque sonde à un maximum souple de 256 prompts et fait les requêtes une à la fois. Selon notre arithmétique à partir de cette config, c'est jusqu'à 1 280 appels par sonde et des dizaines de milliers pour une exécution complète. Restreindre avec --spec, par exemple à probes.promptinject ou probes.dan, et activer les requêtes parallèles est ce qui rend un scan planifié abordable.
Son ampleur de cibles est la principale force. Bedrock, NIM, LiteLLM et les endpoints REST génériques signifient que vous pouvez scanner l'application déployée plutôt que seulement le modèle brut, ce qui compte parce que le prompt système et les éventuels filtres devant le modèle changent le résultat.
Les limites découlent de sa conception. garak sonde un endpoint de texte ; il ne modélise pas les outils, les magasins de données ou les permissions de votre agent, si bien que l'agence excessive et le mauvais usage des outils (OWASP LLM06) ont besoin de PyRIT, DeepTeam ou des plugins d'agent de promptfoo. La documentation est encore décrite comme un travail en cours, et un signalement de détecteur est une piste, pas une vulnérabilité confirmée. Les notes de la 0.17.1 listent huit correctifs de détecteur, dont un qui a arrêté FileDetector de noter un fichier non examiné comme un succès, un rappel que les scores d'un scanner ne valent que ses détecteurs.
Là où il fait la différence
Un ingénieur AppSec qui valide un chatbot face au client
Montrer que le bot déployé résiste aux jailbreaks connus avant le lancement
Pointez le générateur REST de garak vers l'endpoint de staging avec un court fichier YAML et lancez les sondes dan, promptinject et encoding. Le rapport JSONL donne des taux d'échec par sonde à joindre à la revue ; le coût est les appels de modèle, cinq par prompt par défaut.
Une équipe plateforme ML qui passe d'un modèle hébergé à des poids ouverts sur NVIDIA NIM
Vérifier que le nouveau modèle n'a pas régressé sur la sécurité
Lancez le même ensemble de sondes restreint contre les deux modèles via leurs générateurs et comparez les taux d'échec. Gratuit à part l'inférence, même si une exécution complète par défaut est bien plus grande qu'une comparaison n'en a besoin.
Un responsable des risques de modèle dans une banque qui prépare un audit IA
Démontrer un processus de red-teaming répétable
Planifiez un ensemble de sondes garak fixe en CI à chaque changement de modèle ou de prompt système et archivez les rapports. Il ne couvre que les faiblesses au niveau du modèle, si bien que le mauvais usage des outils et l'agence excessive ont besoin d'un test séparé conscient des agents.
Avant de vous engager
- Mise en route
- python -m pip install -U garak (Python 3.11 ou plus récent), définissez la clé d'API du fournisseur et lancez, par exemple, garak --target_type openai --target_name <modèle> --spec probes.encoding. Les cibles Hugging Face locales tournent sur votre propre matériel.
- Intégrations
- Générateurs pour Hugging Face, OpenAI, Bedrock (API Converse), Replicate, Cohere, Groq, NVIDIA NIM, llama.cpp, LiteLLM, WebSocket et tout endpoint REST via YAML ; rapports JSONL plus un script analyse_log.py qui liste les prompts avec le plus de signalements.
- Données et confidentialité
- Les prompts et réponses ne vont qu'à la cible que vous configurez ; les rapports et logs restent locaux dans garak_runs. Apache 2.0 autorise l'usage commercial, le README ne décrit aucune télémétrie, et aucun avis de sécurité GitHub n'a été publié.
- Coût à grande échelle
- L'outil est gratuit ; la dépense est l'inférence. Cinq générations et un plafond souple de 256 prompts par sonde signifient jusqu'à 1 280 appels par sonde, si bien qu'une exécution non restreinte sur 45 modules de sonde peut atteindre des dizaines de milliers d'appels.
- Limites
- Focus texte sur un seul endpoint sans modèle des outils ou permissions d'agent ; les requêtes sont séquentielles sauf si parallel_requests est défini ; 287 issues ouvertes ; la précision des détecteurs est encore corrigée version par version.
Les points forts
- 45 modules de sonde d'attaques publiées dans un seul CLI
- Scanne presque n'importe quel endpoint, y compris REST et LiteLLM
- Taux d'échec par sonde dans un rapport JSONL
- Apache 2.0 avec des versions environ mensuelles
Les points faibles
- Teste les endpoints de texte, pas les outils ou permissions d'agent
- Les exécutions complètes par défaut font des dizaines de milliers d'appels
- Les signalements de détecteur ont besoin d'un triage manuel
- Documentation encore incomplète
Idéal pour
Les équipes qui veulent un scan de vulnérabilités répétable au niveau du modèle d'un endpoint LLM avant le lancement et après chaque changement de modèle.
Alternatives à garak
garak : questions fréquentes
- garak vaut-il le coup ?
- Le scanner ouvert de référence pour les faiblesses au niveau du modèle : lancez-le avant le lancement et après chaque changement de modèle, mais ne le prenez pas pour un test des outils et permissions de votre agent. Nous lui donnons 4.3 sur 5.
- Combien coûte garak ?
- Gratuit et open source sous Apache 2.0. Vous ne payez que les appels de modèle qu'un scan effectue.
- Quels sont les inconvénients de garak ?
- Teste les endpoints de texte, pas les outils ou permissions d'agent; les exécutions complètes par défaut font des dizaines de milliers d'appels; les signalements de détecteur ont besoin d'un triage manuel; documentation encore incomplète.
- À qui s’adresse garak ?
- Les équipes qui veulent un scan de vulnérabilités répétable au niveau du modèle d'un endpoint LLM avant le lancement et après chaque changement de modèle.
- Combien coûte garak pour une équipe ou en production ?
- L'outil est gratuit ; la dépense est l'inférence. Cinq générations et un plafond souple de 256 prompts par sonde signifient jusqu'à 1 280 appels par sonde, si bien qu'une exécution non restreinte sur 45 modules de sonde peut atteindre des dizaines de milliers d'appels.
- garak est-il sûr pour les données de l’entreprise ?
- Les prompts et réponses ne vont qu'à la cible que vous configurez ; les rapports et logs restent locaux dans garak_runs. Apache 2.0 autorise l'usage commercial, le README ne décrit aucune télémétrie, et aucun avis de sécurité GitHub n'a été publié.
- Quelles sont les meilleures alternatives à garak ?
- Les alternatives les plus proches que nous avons testées sont PyRIT, DeepTeam et promptfoo.
Réponses vérifiées le 23 oct. 2026.