「AIエージェントキャッチアップ #38 - Agentic Radar」を開催しました

ジェネラティブエージェンツの大嶋です。

「AIエージェントキャッチアップ #38 - Agentic Radar」という勉強会を開催しました。

generative-agents.connpass.com

アーカイブ動画はこちらです。

www.youtube.com

Agentic Radar

今回は、Agentic Workflowのセキュリティスキャナー「Agentic Radar」を扱いました。

Agentic RadarのGitHubリポジトリはこちらです。

github.com

今回のポイント

Agentic Radarとは

Agentic Radarは、Agentic Workflowのセキュリティスキャナーです。 OpenAI Agents SDKやLangGraph、CrewAIなどのフレームワークを使ったコードをスキャンし、プロンプトインジェクションなどの脆弱性を特定します。

Agentic Radarには主に2つの機能があります。

  1. scan:静的解析により、コードベースから潜在的な脆弱性を検出
  2. test:動的テストにより、実際の攻撃シナリオで脆弱性を検証

scanの実行

scanコマンドは、プロジェクトのコードを静的に解析して脆弱性を検出します。

以下のように、使用しているフレームワークとコードが配置されたディレクトリを指定して実行します。

agentic-radar scan openai-agents -i ./src/customer_service/

実行すると、以下のようなレポートが出力されます。

レポートでは、ワークフローが可視化されたり、使われているシステムプロンプトや検出された脆弱性が一覧化されています。

scanコマンドに--harden-promptsをつけると、LLMによるプロンプトの改善提案も生成されます。

testの実行

testコマンドは、実際に攻撃ペイロードを使用して脆弱性を検証します。

以下のように、フレームワークとエントリーポイントのファイルを指定して実行します。

agentic-radar test openai-agents ./src/customer_service/main.py

実行すると、いくつかの攻撃が試され、その後以下のようにレポートが出力されます。

なお、testコマンドは現状OpenAI Agents SDKのみ対応しています。

Agentic Radarのscanの仕組み

Agentic Radarのscanでは、以下のようにワークフローが可視化されます。

この仕組みが気になったのでコードを読んでみたところ、Pythonのastモジュールを使用して構文解析していました。

https://github.com/splx-ai/agentic-radar/blob/main/agentic_radar/analysis/openai_agents/parsing/agents.py

たとえばOpenAI Agents SDKのエージェントは、以下のように実装します。

agent = Agent(
    name="...",
    instructions="...",
    tools=[...],
)

Agentic Radarは、Agentクラスのインスタンス化を検出し、そこからツールの使用やプロンプトの流れを解析しているようでした。

このように構文解析でエージェントの動作を解析するため、LangGraphの場合はシステムプロンプトの抽出ができないといった制限があるようです。

脆弱性の検出

Agentic Radarのscanでの脆弱性の検出方法は、フレームワークによって異なっていました。

OpenAI Agents SDKの場合、脆弱性を検出するプロンプトでLLMが呼び出される挙動のようでした。

LangGraphやCrewAIの場合は、組み込みのツールに分類が定義されており、その分類に従って脆弱性とマッピングされるようでした。

そのため、LangGraphやCrewAIでは、組み込みツールのみが脆弱性検出の対象となり、現状ユーザーが独自に作成したツールは脆弱性の検出の対象外となるようです。

参考

次回のご案内

以上、今回は「Agentic Radar」をキャッチアップしました。

次回は「AIエージェントキャッチアップ #39 - OpenHands-Versa」ということで、マルチモーダルなブラウジング機能を持つコーディングエージェント「OpenHands-Versa」がテーマです!

generative-agents.connpass.com

ご興味・お時間ある方はぜひご参加ください!

また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!