PyRITとは?
PyRIT(Python Risk Identification Tool)は、生成AIシステムのセキュリティと安全性を評価するためのMicrosoftのオープンフレームワークです。テスト対象システムであるtargets、攻撃プロンプトを変換するconverters、応答を判定するscorers、そしてすべての会話、スコア、結果をSQLiteまたはAzure SQLに保存するmemoryというモジュール構造で構築されています。
ドキュメントによると、Crescendo、TAP(tree of attacks with pruning)、Skeleton Keyなど、単一ターンおよび複数ターンの攻撃を標準ですぐに実行できます。Targetsには、OpenAI、Azure、Anthropic、Google、Hugging Faceの各モデル、カスタムHTTPまたはWebSocketエンドポイント、Playwright経由で操作するWebアプリケーションが含まれます。Scorersはtrue/false、リッカート尺度、分類、またはカスタムに対応し、LLM、Azure AI Content Safety、または独自コードによって動作します。Scenarioフレームワークは、コンテンツの有害性、心理社会的リスク、データ漏洩に関する標準的な評価を、数百件の目的にわたって実行します。
Pythonライブラリとして利用できるほか、pyrit_scanおよびpyrit_shellコマンドラインツール、あるいは人間主導のレッドチーム演習向けローカルWebインターフェースであるCoPyRIT経由でも利用可能です。リポジトリはAzure/PyRITからmicrosoft/PyRITへと移管されました。MITライセンスで提供されており、バージョン1.1.0が2026年9月4日にリリースされました。
PyRITは使う価値があるか?
PyRITは、モデルの弱点が単一のプロンプトではなく一連の会話の中にある場合に活用すべきオープンソースのツールキットです。Crescendo、TAP、Skeleton Keyがあらかじめ用意された攻撃手法として同梱されています。攻撃者モデルが対話を誘導し、対象が屈服した時点をscorerが判定します。garakのプローブライブラリはより多くのワンショット攻撃を網羅していますが、PyRITのように会話の途中で適応することはありません。
設計はレッド チームの実務ツールそのものです。Targets、converters、scorersは交換可能なパーツであり、すべての会話、スコア、結果はSQLite、Azure SQL、またはメモリに保存されます。そのため、攻撃を再実行することなく、後から別の判定基準で結果を再スコアリングできます。localhost:8000上のpyrit_backendで起動するCoPyRITは手動テスト用のブラウザインターフェースを追加し、PlaywrightターゲットによりPyRITはAPIだけでなく実際のWebチャットフロントエンドに対しても攻撃を行えます。2026年7月の1.0リリース、それに続く1.0.1、そして9月4日の1.1.0によって、同年初頭の0.13や0.14を経てインターフェースが安定した系統になりました。
コストとなるのは作業負荷とトークンです。エンドポイントとキーは~/.pyrit/.envに、メモリ設定は~/.pyrit/.pyrit_confに配置され、複数ターン攻撃の各ターンで対象、攻撃者モデル、そして通常はLLM scorerに対して課金されます。プロジェクト側はシナリオごとの推定トークン数を公開していません。LLM判定器は採点を誤ることがあるため、検出結果をバグレポートにする前には人間による確認が必要です。Azure AI Content SafetyによるスコアリングとAzure SQLメモリはMicrosoftのクラウドを優遇していますが、どちらも必須ではありません。
導入検討者が比較すべき相手はgarakではなくpromptfooです。promptfooはレッドチームテストをプロダクトチームがCIで実行するYAMLファイルに落とし込みますが、PyRITはトランスクリプトを読み取って攻撃を調整する専任担当者を前提としています。両者は異なる課題に対応しており、チャットボットを毎週リリースするチームであれば両方が必要になることも十分にあります。
真価を発揮する場面
公開前の顧客向けチャットボットをテストする銀行のAIレッドチームリード
単一プロンプトのスキャンでは見落とされる複数ターンの脱獄(jailbreak)を発見すること
ステージング環境のチャットにHTTPまたはPlaywrightターゲットを向け、独立した攻撃者モデルでCrescendoとTAPを実行し、レポート用にすべてのトランスクリプトをSQLiteに保存します。ソフトウェアは無料ですが、ターゲット、攻撃者、scorerに対するモデル呼び出し費用が発生し、プロジェクトからその見積もりは公開されていません。
顧客の電子メールを読み取るLLMエージェントを担当するSaaS企業のセキュリティエンジニア
信頼できない入力に隠された指示によってエージェントがデータを漏洩しないか検証すること
convertersを使用して攻撃テキストをエンコードし、エージェントのエンドポイントに対してScenarioフレームワークのデータ漏洩評価を実行します。LLM判定器は誤認することがあるため、起票する前に各検出結果を手作業で確認します。
社内審査委員会に対してAIレッドチーム演習の証拠を提 示する必要があるモデルリスク管理者
テスト内容と不合格項目の再現可能な記録を保持すること
永続メモリに各会話、スコア、結果が保存されるため、モデルのアップグレード後に同じ評価を再実行して比較できます。ライセンス費用ではなくエンジニアの工数コストが発生します。有料版やベンダーサポート契約はありません。
導入前に確認すること
- 導入
- Python 3.10から3.14(ドキュメントの推奨は3.13)環境でpip install pyritを実行し、~/.pyrit/.envにエンドポイントキーを配置します。ターゲットまたは攻撃者モデルを自前でホストしない限りGPUは不要です。pyrit_scanを使用すると、airt.scamなどのパッケージ化されたシナリオをコマンドラインから実行できます。
- 連携
- OpenAI、Azure、Anthropic、Google、Hugging Faceの各モデル、カスタムHTTPおよびWebSocketエンドポイント、Playwrightを介したブラウザフロントエンド向けのtargetsがあります。ScorersにはLLM、Azure AI Content Safety、または独自コードを使用できます。
- データとプライバシー
- MITライセンスに基づきローカルで動作します。プロンプトは設定されたターゲット、攻撃者モデル、scorerモデルにのみ送信され、結果はSQLite、メモリ、または任意でAzure SQLに保持されます。ドキュメントにテレメトリに関する記載はなく、GitHubに公開されたセキュリティアドバイザリもありません。脆弱性はMicrosoftのMSRCに報告されます。
- 大規模利用時のコスト
- 有料版はありません。コストはモデル呼び出しです。複数ターン攻撃の各ターンで3者への課金が発生するため、数百の目的にわたってシナリオを実行すると費用が増加しますが、シナリオあたりのトークン数は公開されていません。
- 制限
- 未解決のIssueとPull Requestが137件あります。テストは1つの宣言型ファイルではなくPythonとドットファイルで定義されるため、CIでの運用にはpromptfooよりも手間がかかります。また、Content SafetyによるスコアリングにはAzureリソースが必要です。
良い点
- CrescendoやTAPなどの組み込みの複数ターン攻撃
- プラグイン可能なtargets、converters、scorers
- 結果の共有や再スコアリングのための永続メモリ
- 人間主導のレッドチーム演習向けWeb UI
気になる点
- Pythonの知識と本格的な設定作業が必要
- 攻撃者モデルとscorerモデルにより、攻撃ごとに独自のトークン消費が加算
- LLMベースのスコアには人間によるレビューが必要
- 一部の拡張機能がAzureサービスに依存
おすすめの人
複数ターンのエスカレーションやWebフロントエンドを含め、チャットボットやエージェントのレッドチーム演習を詳細に実施する必要があるセキュリティエンジニアに適しています。
PyRITの代替
PyRIT:よくある質問
- PyRITは使う価値があるか?
- チーム内に駆動用のPythonを書く担当者がいれば、PyRITはチャットボットを破綻させる時間のかかる段階的な会話を自動化してくれます。 評価は5点満点中4.2点です。
- PyRITの料金は?
- MITライセンスに基づく無料でオープンソースのソフトウェアです。攻撃やLLMベースのScorersで使用されるモデル呼び出しの費用が発生します。
- PyRITの欠点は?
- Pythonの知識と本格的な設定作業が必要; 攻撃者モデルとscorerモデルにより、攻撃ごとに独自のトークン消費が加算; LLMベースのスコアには人間によるレビューが必要; 一部の拡張機能がAzureサービスに依存.
- PyRITは誰に向いているか?
- 複数ターンのエスカレーションやWebフ ロントエンドを含め、チャットボットやエージェントのレッドチーム演習を詳細に実施する必要があるセキュリティエンジニアに適しています。
- チームや本番環境でPyRITを使うと費用はいくらか?
- 有料版はありません。コストはモデル呼び出しです。複数ターン攻撃の各ターンで3者への課金が発生するため、数百の目的にわたってシナリオを実行すると費用が増加しますが、シナリオあたりのトークン数は公開されていません。
- PyRITは企業データを扱っても安全か?
- MITライセンスに基づきローカルで動作します。プロンプトは設定されたターゲット、攻撃者モデル、scorerモデルにのみ送信され、結果はSQLite、メモリ、または任意でAzure SQLに保持されます。ドキュメントにテレメトリに関する記載はなく、GitHubに公開されたセキュリティアドバイザリもありません。脆弱性はMicrosoftのMSRCに報告されます。
- PyRITの代わりになるものは?
- 当サイトでレビューした中で最も近い代替はgarak, DeepTeam 、 promptfooです。
回答確認日:2026年10月26日
