はじめに
NVIDIA Garakは、大規模言語モデル(LLM)の脆弱性を検出するために特別に設計されたオープンソースツールです。Garakは、サイバーセキュリティにおけるnmapに似ていますが、LLMのセキュリティ評価に焦点を当てています。
関連ツール:https://github.com/msoedov/agentic_security
機能一覧
- 脆弱性スキャンファントム、データリーク、ヒントインジェクションなど、LLMの様々な潜在的脆弱性を検出します。
- ジェネレーティブAIの評価様々な文脈における生成AIモデルの性能評価。
- 対話システムのテスト潜在的なセキュリティ問題を特定するために、様々な入力の下で対話システムの応答をテストします。
- マルチモデル対応Hugging Face、OpenAI、Replicate、その他のジェネレーティブモデルに対応。
- コマンドラインツールコマンドラインから操作でき、LinuxとOSXシステムで利用可能です。
- ロギングスキャニングのプロセスと結果を詳細に記録し、その後の分析と改善に役立てる。
ヘルプの使用
設置プロセス
- 標準設置::
- PyPIからpipを使ってインストールする:
python -m pip install -U garak
- PyPIからpipを使ってインストールする:
- 開発版のインストール::
- GitHubから最新バージョンを入手する:
python -m pip install -U git+https://github.com/NVIDIA/garak.git@main
- GitHubから最新バージョンを入手する:
- ソースからのクローニング::
- Conda環境を作成し、依存関係をインストールする:
conda create --name garak "python>=3.10,<3.12" condaでgarakをアクティブにする gh repo clone NVIDIA/garak cd garak python -m pip install -e .
- Conda環境を作成し、依存関係をインストールする:
使用方法
- 基本的な使い方::
- Garakはスキャンする機種を知る必要があり、デフォルトではその機種の既知のプローブをすべて表示する。プローブのリストを表示するには、次のコマンドを使用します:
garak --list_probes
- ジェネレーターのタイプとモデル名を指定します:
garak --model_type huggingface --model_name RWKV/rwkv-4-169m-pile
- 特定のプローブを実行する:
garak --model_type openai --model_name gpt-3.5-turbo --probes encoding
- Garakはスキャンする機種を知る必要があり、デフォルトではその機種の既知のプローブをすべて表示する。プローブのリストを表示するには、次のコマンドを使用します:
- 結果を読む::
- 各プローブが完了すると、Garakはプログレスバーを生成し、完了時に評価結果を出力する。プローブを試行した結果、動作に問題があった場合、その応答はFAILと表示され、失敗率が示される。
- ログとレポート::
- エラーはgarak.logファイルに記録され、実行時の詳細は.jsonlファイルに記録されます。これはanalyse/analyse_log.pyスクリプトを使って分析することができます。
- 典型例::
- 感知 チャットGPT コードインジェクション攻撃に対する脆弱性:
export OPENAI_API_KEY="sk-123XXXXXXXXXXXXXX" python3 -m garak --model_type openai --model_name gpt-3.5-turbo --probes encoding
- 感知 チャットGPT コードインジェクション攻撃に対する脆弱性:
- プラグイン開発::
- 基底クラスを継承し、新しいコードをテストするために必要なメソッドをオーバーライドする:
インポート garak.probes.mymodule p = garak.probes.mymodule.MyProbe() python3 -m garak -m test.Blank -p mymodule -d always.Pass
- 基底クラスを継承し、新しいコードをテストするために必要なメソッドをオーバーライドする: