研究者が「Comment and Control」という名前のプロンプトインジェクション攻撃方法の詳細を公開しました。この方法は、複数の人気のあるAIコードセキュリティおよび自動化ツールに対して機能することが判明しています。
この攻撃方法は、セキュリティエンジニアおよび脆弱性研究者であるAonan Guanによって発見され、ジョンズ・ホプキンス大学の研究者Zhengyu LiuとGavin Zhongの協力を得ました。
水曜日に公開されたブログ記事で、Guanは、この攻撃が複数の広く使われているAIエージェント、すなわちAnthropicのClaude Code Security Review、GoogleのGemini CLI Action、およびGitHub Copilot Agentに対して機能することが確認されたと述べました。
研究者たちは、GitHub Actions上のこれらのツールに関連するAIエージェントが、PRのタイトル、コメント、イシュー本文を含む特別に作成されたGitHubコメントを使用してハイジャックできることを発見しました。
自動化されたセキュリティレビュー用に設計されたClaude Code Security Reviewの場合、研究者たちは、攻撃者が特別に作成されたPRタイトルを使用してAIエージェントをだまし、任意のコマンドを実行させ、認証情報を抽出し、それらをセキュリティ検査またはGitHub Actionsログのエントリとして公開する方法を示しました。
ルーチンのコーディングタスク用の自律的なエージェントとして機能するGemini CLI Actionの場合、研究者たちはプロンプトインジェクションタイトルを持つイシューコメント、および特別に作成されたイシューコメントを使用してガードレールをバイパスし、完全なAPIキーを取得しました。
GitHub Copilot Agentを狙ったComment and Control攻撃では、専門家たちはペイロードを隠すHTMLコメントを活用して、環境フィルタリングをバイパスし、シークレットをスキャンし、ネットワークファイアウォールをバイパスしました。
Comment and Control攻撃は、攻撃者の悪意のあるプロンプトがGitHub Actionsワークフローによって自動的にトリガーされるため、深刻な脅威となる可能性があります。ただし、Copilotの場合を除き、攻撃者のイシューを被害者が手動でCopilotに割り当てる必要があります。
「このパターンは、信頼されていないGitHubデータを取得し、本番環境のシークレットと同じランタイムで実行ツールにアクセスできるAIエージェント、およびGitHub Actionsを超えて、信頼されていない入力を処理して、ツールとシークレットにアクセスできるエージェント(Slackボット、Jiraエージェント、メールエージェント、デプロイメント自動化など)に適用される可能性が高いです。インジェクション表面は変わりますが、パターンは同じです」とGuanは説明しました。
調査結果はAnthropic、Google、およびGitHubに報告され、すべてがそれを確認しました。Anthropicは問題を「重大」に分類し、いくつかの軽減策を実装し、研究者に100ドルのバグ報奨金を授与しました。Googleは1,337ドルのバグ報奨金を支払いました。
GitHubは研究者に500ドルを授与し、彼らの仕事が「いくつかの素晴らしい内部討論を引き起こした」と述べましたが、セキュリティ問題を既知のアーキテクチャ上の制限に分類しました。
「これは、3つの主要なAIエージェント全体における単一のプロンプトインジェクションパターンの最初の公開クロスベンダーデモンストレーションです。3つの脆弱性はすべて同じパターンに従います。信頼されていないGitHubデータ→AIエージェントが処理→エージェントがコマンドを実行→認証情報がGitHub自体を通じて流出」とGuanは述べました。
「より深い問題はアーキテクチャ上のものです。これらのAIエージェントには、信頼されていないユーザー入力を処理するのと同じランタイムで、強力なツール(bash実行、git push、APIコール)とシークレット(APIキー、トークン)が与えられています。複数の防御レイヤーが存在する場合でも(モデルレベル、プロンプトレベル、およびGitHubの追加の3つのランタイムレイヤー)、ここでのプロンプトインジェクションはバグではなく、エージェントが処理するよう設計されたコンテキストであるため、すべてをバイパスできます」と彼は付け加えました。