
agent-opfor v0.10.2
AIエージェントおよびMCPサーバー向けのオープンソースの敵対的エミュレーション
AIエージェント、LLMアプリ、MCPサーバーのためのオープンソース adversary emulation
実際の攻撃者のようにAIをテスト — あなたのCLI、IDE、またはチームの誰でも使えるブラウザ拡張機能から。
Webサイト · ドキュメント · GitHub · ブラウザ拡張機能 · Discord
OPFORは_Opposition Force_(対抗部隊)の略です — 訓練で敵役を演じる部隊を指す軍事用語で、本物の攻撃が来る前にその感触を軍隊全員が学べるようにするものです。ツールの名前もその考えに由来しています:AIエージェントをより良く守るためには、まず攻撃しなければなりません。
なぜこれを作ったのか
私たちは過去10年間に90のスタートアップ向けに130の製品をリリースしてきました。この18ヶ月間で、ほぼすべての製品にAIエージェントが組み込まれていました — そしてどのチームもテストの際に同じ壁にぶつかりました。
そこでOPFORを構築しました。最初は自分たちのために。今はオープンソースです。
Apache 2.0。インドから開発。
クイックスタート
npm install -g @keyvaluesystems/agent-opfor-cli
export OPENAI_API_KEY=your-key # または GEMINI_API_KEY, ANTHROPIC_API_KEY など
ワンステップ — セットアップウィザードを実行し、すぐにスキャンを開始:
opfor run
ツーステップ — 再利用可能な設定を保存し、CIにコミット:
opfor setup # ウィザードが設定を .opfor/configs/ に保存
opfor run --config .opfor/configs/<file> # 保存した設定に対していつでも実行
https://github.com/user-attachments/assets/a6a3cff2-2cf9-4486-944e-ac0163e7ea04
opforの機能
OpforはAIエージェントの全表面 — プロンプト、ツール、MCPサーバー、メモリ、マルチターン推論 — をレッドチームテストします。OWASP LLM Top 10、OWASP Agentic AI Top 10、OWASP MCP Top 10、OWASP API Security、EU AI Actバイアススイートに対応した標的型攻撃を生成し、対象に発射して、各応答をLLMで判定します。
この分野のレッドチームツールのほとんどは、一つのことに特化しています — プローブライブラリ、開発者向け評価ツール、プログラムによるフレームワークなど。Opforはより広い範囲を一つのツールでカバーします:
- 非開発者向けブラウザ拡張機能 — チームの誰でもデプロイされたチャットボットをレッドチームテスト可能、コード不要、環境変数不要、YAML不要
- MCPサーバーとしてopforを実行 — CursorやClaude Desktop内のAIコーディングエージェントに、自然言語で他のエージェントをレッドチームテストさせる
- フルOWASPカバレッジを一つのツールで — LLM Top 10、Agentic AI Top 10、MCP Top 10、API Security Top 10
- ブラックボックスなし — すべての攻撃プロンプト、リクエスト、レスポンス、判定結果がログに記録され、再現可能、監査可能、フォーク可能
- モデルだけでなくエージェント向けに設計 — ツール呼び出し、MCP、メモリ、マルチターン状態を最初から考慮
- トレース対応 — LangfuseやNetraと統合し、LLM判定者がエージェントの内部動作(発言だけでなく)を把握可能
opforを実行する5つの方法
チーム内の異なるメンバーには異なるエントリポイントが必要です。Opforは5つを提供します。
| モード | 方法 | 最適な用途 |
|---|---|---|
| 🖥️ CLI | opfor setup → opfor run | エンジニア、CI/CD、ターミナルファーストのワークフロー |
| 🌐 ブラウザ拡張機能 | 拡張機能をインストールし、任意のチャットインターフェースでアイコンをクリック | プロダクトマネージャー、デザイナー、QA、セキュリティアナリスト — コードを書けない・書きたくない人 |
| 🤖 MCPサーバー | CursorやClaude Desktopでopforを登録し、チャットで指示 | 他のエージェントをテストするAIコーディングエージェント |
| ⚡ スキル | /opfor-setup · /opfor-run · /opfor-mcp-setup · /opfor-mcp-run | IDE内でワンコマンドテストを望む開発者 |
| 📦 SDK | npm install @keyvaluesystems/agent-opfor-sdk、コード内で run / hunt を呼び出し | プログラムによるレッドチームテストとカスタムワークフロー |
5つすべてが同じ評価器、攻撃テンプレート、判定ロジックを共有しています。
→ CLIリファレンス · ブラウザ拡張機能のセットアップ · MCPセットアップ · スキルのセットアップ · SDKリファレンス · セッション管理
動作の仕組み
スキャンを実行すると、opforは:
- ターゲット情報を取得 — エージェントに接続し、利用可能なツール、MCPエンドポイント、機能を検出
- カテゴリごとに攻撃を計画 — 選択したスイート内の各評価器に対して標的型プロンプトを生成
- 攻撃をエミュレート — マルチターンの敵対的会話(実際のリクエスト、実際のレスポンス)を実行
- 判定器で評価 — LLM判定器が各レスポンスを合格/不合格+理由で分類
- レポートを生成 — HTML(閲覧用)、JSON(CI/CD用)、すべての成果物が再現可能な形で記録
各実行結果は .opfor/reports/run-report-<compactTs>-<slug>-<shortId>/ のサブフォルダに保存され、<slug>-report.html と <slug>-report.json が含まれます。自律型 opfor hunt の実行結果は hunt-report-<compactTs>-<slug>-<shortId>/ に同様の構成で保存されます。
評価器のカバレッジ
Opforには業界標準に対応した厳選スイートが同梱されています。スイートを選択するか、個別の評価器を実行します。
| スイートID | 標準 | 焦点 |
|---|---|---|
owasp-llm-top10 | OWASP LLM Top 10 (2025) | プロンプトインジェクション、ジェイルブレイク、機密情報開示、システムプロンプト漏洩 |
owasp-agentic-ai | OWASP Agentic AI Top 10 | 過剰なエージェンシー、ツールの誤用、エージェント目標の乗っ取り、メモリ汚染 |
owasp-mcp-top10 | OWASP MCP Top 10 (2025) | 秘密情報の露出、スコープ昇格、ツール説明インジェクション、SSRF |
owasp-api | OWASP API Security Top 10 | BOLA、BFLA、SQLインジェクション |
eu-ai-act-bias | EU AI Act — Bias | 年齢、性別、人種、障害 |
トレース対応テスト
opforを可観測性スタックに接続すると、LLM判定器は最終応答だけでなく、すべてのツール呼び出し、検索、中間推論ステップを確認できます。opforは標準で Langfuse と Netra と統合されています。
"telemetry": {
"provider": "langfuse",
"langfuse": { "baseUrl": "https://cloud.langfuse.com" }
}
これにより、入出力テストでは見逃されるもの — ツール呼び出しに漏れ込んでもユーザーには届かないPII、応答テキストは変わらないMCPのスコープ昇格、許可されていないデータを取得してもきれいな返信を生成するエージェント — をキャッチできます。
自律型レッドチーミング
opfor hunt は設定ファイルを完全にスキップします。エンドポイントと目的を与えれば、マルチエージェントシステム(司令官、オペレーター、偵察)が適応的な攻撃キャンペーンを自律的に実行します:偵察、戦略、マルチターンプロービング、レポート。opfor run とは異なり、エージェントはClaude上でのみ動作します(Claude APIキー、claude setup-token、またはローカルの claude login セッション経由)— ターゲットは何でも構いません。
opfor hunt \
--endpoint "https://your-agent.com/v1/chat" \
--objective "ジェイルブレイク、システムプロンプト漏洩、安全バイパスを見つけてください。"
--ui を追加すると、ライブダッシュボードで攻撃ツリーの展開を確認できます。
→ 完全リファレンス
ブラウザ拡張機能 — チャットボットのレッドチームテスト
ブラウザ拡張機能は、opforのコード不要のパスです。Chrome Web Storeからインストールし、任意のチャットインターフェースを開いてopforアイコンをクリック、スイートを選択して実行するだけです。
https://github.com/user-attachments/assets/80c2692f-b18b-4899-99df-e7eb8d50b02a
チャットインターフェースを自動検出し、あなたが入力しているかのように攻撃プロンプトを送信し、応答を監視し、完了時にHTMLレポートをダウンロードします。CLI不要、ターゲット設定不要、YAML不要。
これは、ターミナルを開かないプロダクトチームの半分のためのパスです。
→ Chrome Web Storeからインストール · セットアップガイド
SDK — コードにレッドチーミングを埋め込む
SDKはopforのプログラムによるパスです。@keyvaluesystems/agent-opfor-sdk をインストールし、run または hunt を呼び出すと、構造化された結果が返ってきます。CLI不要、設定ファイル不要、サブプロセス不要。
import { Opfor } from "@keyvaluesystems/agent-opfor-sdk";
const opfor = new Opfor({ apiKey: process.env.ANTHROPIC_API_KEY });
const results = await opfor.run({
target: { url: "https://api.example.com/chat" },
suite: "owasp-llm-top10",
});
CI、テストスイート、またはTypeScriptから離れずにレッドチーミングが必要な場所ならどこでも使用できます。
例
| 例 | 説明 |
|---|---|
| vanilla-chat | プレーンなカスタマーサポートチャットボット — LLMレベルの脆弱性をテスト |
| customer-support | PostgreSQLを使用するツール呼び出しエージェント — BOLA、BFLA、RBAC、PIIをテスト |
| vulnerable-server | 意図的な脆弱性を含むサンプルMCPサーバー |
対応LLMプロバイダ
| プロバイダ | 環境変数 | デフォルトモデル |
|---|---|---|
| Groq | GROQ_API_KEY | llama-3.3-70b-versatile |
| OpenAI | OPENAI_API_KEY | gpt-4o-mini |
| Anthropic | ANTHROPIC_API_KEY | claude-3-5-haiku-20241022 |
GOOGLE_GENERATIVE_AI_API_KEY | gemini-2.0-flash | |
| OpenAI互換 | OPFOR_API_KEY + baseURL | LiteLLM, OpenRouter, Azure, Ollama |
貢献
プルリクエストを提出する際の行動規範とプロセスについては、CONTRIBUTING.mdをお読みください。
作者
KeyValue Software Systems のチームによって構築されました。お問い合わせは [email protected] まで。
セキュリティ
opforは自分が所有している、またはテストを許可されているシステムでのみ使用してください。opfor自体の脆弱性を報告するには、SECURITY.mdを参照してください。公開Issueは開かないでください。
ライセンス
OpforはApache 2.0ライセンスの下で提供されています。詳細はLICENSEファイルをご覧ください。
❤️を込めて KeyValue が制作