Google製ADK for Pythonの欠陥、エージェント間攻撃を招く

GoogleのオープンソースAgent Development Kit(ADK) for Pythonに存在する一連の欠陥を悪用したプロンプトインジェクションにより、AIエージェント同士を互いに武器化することが可能になっていました。この手法はソフトウェアサプライチェーンを混乱させる恐れがあり、この新興技術がもたらす新たな攻撃ベクトルをまたひとつ示す形となりました。

Pillar Securityの研究者らは、ADKのadk-pythonリポジトリに存在するこれらの欠陥を発見しました。8月4日に公開されたレポートによると、この欠陥を悪用すれば、ワークフロー内の低権限かつ公開向けのエージェントが、より高い権限を持つエージェントに実行されうるコマンドを発生させることが可能でした。つまり、プルリクエストやissueといった潜在的に悪意ある信頼できないテキストが、リポジトリへの権限を持つ信頼済みAIエージェントによって実行されてしまう可能性があったのです。

Pillarのサイバーセキュリティ研究者であるDan Lisichkin氏は今週、レポートの中でこう記しています。「Pillar Securityの研究者は、実際の本番環境で稼働するマルチエージェントシステムにおいて、エージェント間攻撃の実践的かつ現実的な最初の事例を特定しました。これは、これまで本番システムで確認されたことのない種類の攻撃です」。

Pillarによると、この攻撃が特に問題視される理由は、GitHubのプルリクエストに埋め込まれたプロンプトインジェクションを利用し、異なる権限レベルを持つ2つのAIエージェント間の信頼境界を悪用した点にあります。研究者らが作成した概念実証(PoC)エクスプロイトでは、プルリクエストをレビューする公開向けのAIエージェントを操作し、特権的な操作を実行できるメンテナー専用のAIエージェントを起動させられることが示されました。

Lisichkin氏によれば、これにより開発プロセス、ひいてはソフトウェアサプライチェーンに影響を及ぼす継続的インテグレーション(CI)/継続的デリバリー(CD)ワークフロー内で、悪意あるコードを承認あるいは実行させる経路が生まれてしまいます。同氏は、一方のAIエージェントを利用してもう一方を攻撃できるこのシナリオが、「無害な自動化を、ソフトウェアサプライチェーンの侵害につながりかねない経路へと変えてしまった」と記しています。

攻撃の流れと対策

Googleの ADK for Pythonはこれまでに9,000万回以上ダウンロードされており、Googleの大規模言語モデル(LLM)であるGeminiを扱う開発者に広く利用されています。Pillarは、この欠陥が6月上旬に報告されて以降、Googleがそれぞれ7月9日と7月21日に迅速に修正を行ったことを評価しています。

Googleは、Dark Readingが本日行ったコメント依頼に対し、即座には回答しませんでした。

レポートによると、研究者らは具体的に、悪意を埋め込んだプロンプトによってエージェントを誘導し、特殊な形式の@gemini-cliコマンドを投稿させられることを示しました。Lisichkin氏は「そのコメントはディスパッチャーワークフローによって認識され、より高い権限を持つGeminiベースの自動化処理へと転送されました」と記しています。

今回の発見は、AIエージェント同士の相互作用が、新たな権限昇格攻撃の攻撃対象領域として台頭しつつあることを示しています。Pillarの発見は、自律型LLM攻撃の登場に続く形で明らかになったものであり、防御側がAIエージェントやシステムを守る上で対処すべき脅威の種類がまたひとつ増えたことを意味します。

今回の欠陥は、LLMやAIエージェントに対する一般的な攻撃ベクトルであるプロンプトインジェクションの問題として位置づけられていますが、データベースガバナンス企業Liquibaseのマーケティング担当バイスプレジデント、Ryan McCurdy氏によれば、企業のAIエージェント活用において本当に問題となるのは「委任(delegation)」だといいます。

「企業各社は、異なるツール・権限・権限レベルを持つ複数のAIエージェントをソフトウェア開発プロセスに組み込み始めています」と同氏は述べます。「今回の調査結果は、各エージェントを個別に統制するだけでは不十分であることを示しています。組織は、あるエージェントが別のエージェントに何をさせられるのかについても理解する必要があります」。

McCurdy氏によると、今回の欠陥は企業がAIエージェントの挙動を設計する上での新たなセキュリティ上の考慮事項を浮き彫りにしました。「低権限のエージェントが、自力では回避できない制御を、より高権限のエージェントを利用して回避できてしまうようなことがあってはなりません」と同氏は述べています。

今後のエージェント保護に向けて

Pillarの Lisichkin氏によると、今回の欠陥発見から得られるより大きな教訓は、AIエージェントがセキュリティチームが長年拠り所としてきた前提の一部を変えつつあるという点です。従来、システムは信頼できる権限を持つユーザーしかアクセスできない場合に安全とみなされてきました。しかし、信頼できないコンテンツを読み取り、かつ認証情報にアクセスできるAIエージェントは、より機密性の高いシステムへの橋渡し役となりうるのです。

同氏は次のように記しています。「今回の侵害は、その継ぎ目に潜んでいました。すなわち、一つのエージェントが権限境界を越えて別のエージェントを動かせてしまう能力、そして各権限が『できるように見えること』と、攻撃者が他の要素と連鎖させた際に『実際にできてしまうこと』との間のギャップです。個々のコンポーネントを前提に構築された脅威モデルでは、これを完全に見逃してしまいます。エージェント間の境界、委任、なりすまし、トリガーといった要素は、今や攻撃対象領域における第一級の構成要素であり、そのようにモデル化する必要があります」。

Lisichkin氏によると、CISOやセキュリティチームにとってこれが意味するのは、まずエージェント型ワークフローがすでにどこで稼働しているかを把握することです。特に、プルリクエストやissue、チケット、メール、サポートチャットなど信頼できないコンテンツを処理しつつ、同時に認証情報を保持しているようなワークフローには注意が必要です。

同氏によれば、より優れた防御策を構築するには、これらのエージェントが攻撃者に影響を受けうる存在であることを前提に、ツールや権限を絞り込み、エージェント自身の独自IDを付与し、人間のアカウントや長期間有効な認証情報に紐づく広範なアクセス権を与えるのではなく、スコープを限定することが求められます。Lisichkin氏はさらに、プロンプトインジェクションでは偽装できない認可チェックなしに、低権限のエージェントがより高権限のエージェントを起動できないようにすることも組織は徹底すべきだと付け加えています。

翻訳元: https://www.darkreading.com/vulnerabilities-threats/flaws-google-apk-python-agent-to-agent-attack

ソース: darkreading.com