garakとは?
garak は、言語モデルやチャットシステムが望ましくない形で失敗させられるかどうかを調べるコマンドラインのスキャナーです。45 のプローブモジュールが、プロンプトインジェクション、DAN 系などの jailbreak、エン コーディングの小細工、データ漏洩、パッケージのハルシネーション、有害性、誤情報を扱います。その後、検出器が各応答を判定し、garak はプローブと検出器の組ごとに失敗率を報告します。プロジェクトは自らを、LLM 向けの nmap や Metasploit になぞらえています。
対象にできるのは、Hugging Face のモデル、OpenAI、AWS Bedrock、Replicate、Cohere、Groq、NVIDIA NIM、llama.cpp のモデル、LiteLLM の背後にあるもの全般、そして短い YAML ファイルを通じたほぼあらゆる REST エンドポイントです。実行ごとに、各試行とその評価を含む JSONL レポートを書き出します。リリース 0.17.1 では、このレポートに hit@k の攻撃成功率が加わりました。
garak は独立したプロジェクトとして始まり、現在は NVIDIA の GitHub organisation にあります。ライセンスは Apache 2.0 で、Python 3.11 以降が必要です。2026年には 7 回のリリースがあり、最新は 10月16日の 0.17.1 です。
garakは使う価値があるか?
garak は、モデルのエンドポイントが既知の失敗モードにどれだけ簡単に追い込まれるかを調べるオープンツールとして、最も定着したものです。その出力は、セキュリティレビューで通用する種類のものです。プローブと検出器ごとの失敗率があり、すべての試行の JSONL ログが裏付けます。攻撃は公開された研究に基づき、NVIDIA による保守はリリースの頻度に表れています。2026年を通じてほぼ毎月リリースがあり、GitHub のスターは約 9,700 です。
新しいユーザーがつまずくのはデフォルト設定です。特に指定しなければ、garak はすべてのプローブを実行し、各プロンプトを 5 回送り(コア設定の generations: 5) 、各プローブをソフト上限の 256 プロンプトに抑え、リクエストを 1 件ずつ行います。この設定から私たちが計算すると、プローブあたり最大 1,280 回の呼び出しになり、フル実行では数万回になります。--spec で、たとえば probes.promptinject や probes.dan に絞り、並列リクエストを有効にすることで、定期スキャンの費用を抑えられます。
最大の強みは対象の幅広さです。Bedrock、NIM、LiteLLM、汎用 REST エンドポイントに対応するため、生のモデルだけでなく、デプロイ済みのアプリケーションをスキャンできます。システムプロンプトやモデルの前段にあるフィルターで結果が変わるため、これは重要です。
限界は設計から来ています。garak はテキストのエンドポイントを調べるもので、エージェントのツール、データストア、権限はモデル化しません。そのため、過剰なエージェンシーやツールの悪用(OWASP LLM06)には PyRIT、DeepTeam、または promptfoo のエージェントプラグインが必要です。ドキュメントはまだ作業中とされており、検出器のフラグは手がかりであって、確認された脆弱性ではありません。0.17.1 のリリースノートには 8 件の検出器の修正があり、その一つは FileDetector が未検査のファイルを合格と判定していた問題でした。スキャナーのスコアは検出器の質で決まることを思い出させます。
真価を発揮する場面
顧客向けチャットボットを承認する AppSec エンジニア
リリー ス前に、デプロイ済みのボットが既知の jailbreak に耐えることを示す
短い YAML ファイルで garak の REST ジェネレーターをステージングのエンドポイントに向け、dan、promptinject、encoding のプローブを実行します。JSONL レポートでプローブごとの失敗率が得られ、レビューに添付できます。費用はモデル呼び出しで、デフォルトでは 1 プロンプトあたり 5 回です。
ホスト型モデルから NVIDIA NIM 上のオープンウェイトへ移行する ML プラットフォームチーム
新しいモデルの安全性が後退していないことを確認する
絞り込んだ同じプローブセットを、両方のモデルにそれぞれのジェネレーター経由で実行し、失敗率を比較します。推論以外は無料ですが、デフォルトのフル実行は比較に必要な規模よりはるかに大きくなります。
AI 監査に備える銀行のモデルリスク責任者
再現可能なレッドチーミングのプロセスを示す
モデルやシステムプロンプトを変更するたびに、固定した garak のプローブセットを CI で実行するよう設定し、レポートを保管します。扱うのはモデルレベルの弱点だけなので、ツールの悪用や過剰なエージェンシーには、エージェントを考慮した別のテストが必要です。
導入前に確認すること
- 導入
- python -m pip install -U garak(Python 3.11 以降)を実行し、プロバイダーの API キーを設定して、たとえば garak --target_type openai --target_name <model> --spec probes.encoding を実行します。ローカルの Hugging Face の対象は自分のハードウェアで動きます。
- 連携
- Hugging Face、OpenAI、Bedrock(Converse API)、Replicate、Cohere、Groq、NVIDIA NIM、llama.cpp、LiteLLM、WebSocket、YAML 経由の任意の REST エンドポイント向けのジェネレーター。JSONL レポートと、ヒットの多いプロンプトを一覧にする analyse_log.py スクリプト。
- データとプライバシー
- プロンプトと応答は設定した対象にのみ送られ、レポートとログは garak_runs にローカル保存されます。Apache 2.0 は商用利用を認めており、README にテレメトリーの記述はなく、GitHub のセキュリティアドバイザリーは公開されていません。
- 大規模利用時のコスト
- ツールは無料で、支出は推論です。プローブあたり 5 回の生成と 256 プロンプトのソフト上限で、プローブあたり最大 1,280 回の呼び出しになります。絞り込まずに 45 のプローブモジュールを実行すると数万回に達することがあります。
- 制限
- 単一エンドポイントのテキストに焦点を当て、エージェントのツールや権限はモデル化しません。parallel_requests を設定しない限りリクエストは逐次です。未解決の issue は 287 件で、検出器の精度はリリースごとに修正が続いています。
良い点
- 公開された攻撃の 45 のプローブモジュールを 1 つの CLI で
- REST や LiteLLM を含むほぼあらゆるエンドポイントをスキャンできる
- JSONL レポートでプローブごとの失敗率がわかる
- Apache 2.0 で、ほぼ毎月リリース
気になる点
- テストするのはテキストのエンドポイントで、エージェントのツールや権限ではない
- デフォルトのフル実行では数万回の呼び出しが発生する
- 検出器のヒットは手作業での選別が必要
- ドキュメントはまだ不完全
おすすめの人
リリース前とモデル変更のたびに、LLM エンドポイントに対して再現可能なモデルレベルの脆弱性スキャンを行いたいチーム。
garakの代替
garak:よくある質問
- garakは使う価値が あるか?
- モデルレベルの弱点を調べる定番のオープンなスキャナーです。リリース前とモデルを入れ替えるたびに実行すべきですが、エージェントのツールや権限のテストと取り違えてはいけません。 評価は5点満点中4.3点です。
- garakの料金は?
- Apache 2.0 の下で無料のオープンソースです。支払うのはスキャンが行うモデル呼び出しの費用だけです。
- garakの欠点は?
- テストするのはテキストのエンドポイントで、エージェントのツールや権限ではない; デフォルトのフル実行では数万回の呼び出しが発生する; 検出器のヒットは手作業での選別が必要; ドキュメントはまだ不完全.
- garakは誰に向いているか?
- リリース前とモデル変更のたびに、LLM エンドポイントに対して再現可能なモデルレベルの脆弱性スキャンを行いたいチーム。
- チームや本番環境でgarakを使うと費用はいくらか?
- ツールは無料で、支出は推論です。プローブあたり 5 回の生成と 256 プロンプトのソフト上限で、プローブあたり最大 1,280 回の呼び出しになります。絞り込まずに 45 のプローブモジュールを実行すると数万回に達することがあります。
- garakは企業データを扱っても安全か?
- プロンプトと応答は設定した対象にのみ送られ、 レポートとログは garak_runs にローカル保存されます。Apache 2.0 は商用利用を認めており、README にテレメトリーの記述はなく、GitHub のセキュリティアドバイザリーは公開されていません。
- garakの代わりになるものは?
- 当サイトでレビューした中で最も近い代替はPyRIT, DeepTeam 、 promptfooです。
回答確認日:2026年10月23日
