AIエージェントがGitHub Actionsに重大なサプライチェーンリスクを生む

新たに特定された一連の脆弱性により、GitHub ActionsおよびGitLab CI/CDパイプラインが危険にさらされており、セキュリティ研究者は、この脅威が実用的であり、すでに実際のワークフローで観測されていると警告している。 

PromptPwndと名付けられたこの問題は、開発者の作業負荷を軽減することを目的としたAIエージェントが、プロンプトインジェクションによって操作され、シークレットの漏えい、リポジトリデータの改ざん、サプライチェーンの完全性の侵害を引き起こしうることを示している。

これは「…AIプロンプトインジェクションがCI/CDパイプラインを侵害できることを実証した、初の現実世界での確認事例だ」と、Aikido Securityの研究者は述べている。  

フォーチュン500企業はすでに影響を受けている

これまでに少なくとも5社のフォーチュン500企業が影響を受けており、さらに多くの企業が気づかないまま曝露されている可能性を示す兆候がある。 

この脆弱性は、Gemini CLI、Claude Code Actions、OpenAI Codex、GitHub AI InferenceといったAI搭載のGitHub Actionsが、信頼できないユーザー入力を処理するよう構成され、かつ高い権限を持つリポジトリトークンを保有している場合に表面化する。

組織が、課題のトリアージ、PRラベリング、コード要約などにAI駆動の自動化を急速に採用する中で、これらのエージェントツールはCI/CDパイプラインの奥深くに組み込まれつつある。 

その結果、ユーザーが制御するテキストが、特権コマンド実行への入口となる新たな攻撃面が生まれている。

PromptPwndがユーザー入力を攻撃に変える仕組み

本質的には、PromptPwndは予測可能なワークフローを悪用する。信頼できない課題タイトル、プルリクエストの説明、コミットメッセージなどが、そのままLLMのプロンプトに挿入されるのだ。 

モデルは悪意あるテキストを指示として誤解釈する可能性があり、そして重要なことに、これらのAIエージェントはしばしばgh issue edit、シェルコマンド実行、リポジトリ変更機能といったツールにアクセスできる。

AikidoによるGoogle Gemini CLIに対する概念実証(PoC)は、そのメカニズムを示している。 

悪意ある課題には、AIに対して課題本文を変更し、機密値を埋め込むよう指示する隠し命令が含まれていた。

ワークフローが課題テキストをプロンプトに直接渡し、かつGEMINI_API_KEYGOOGLE_CLOUD_ACCESS_TOKENGITHUB_TOKENといったトークンを露出させていたため、AIは利用可能なツールを呼び出し、シークレットを公開の課題スレッドに漏えいさせてしまった。 

Googleは、研究者による責任ある開示から4日以内にこの欠陥を修正した。

この脆弱性は特定のCVEに紐づいてはいないが、不適切な入力の無害化や不要な特権での実行に関するCWEカテゴリに密接に対応している。 

高度なエクスプロイトチェーンは不要であり、必要なのは細工されたユーザー入力と、誤った構成または過度に権限を与えられたAIエージェントだけである。

PromptPwndが成立する理由

PromptPwndが成功するのは、3つの基盤的なセキュリティ上の失敗が重なるためである。

  • 信頼できないユーザー制御コンテンツが、AIプロンプトに直接注入されている
  • AI生成出力が、CI/CDワークフロー内で信頼できるコードや指示として誤って扱われている
  • AIエージェントに、高権限トークンやツールアクセス(シェルコマンド実行能力など)が付与されている。 

これらの条件が揃うと、攻撃経路は単純になる。プロンプト操作がAIの誤解釈を引き起こし、それが特権ツールの実行を誘発し、最終的にはリポジトリの侵害やシークレットの流出につながる。 

書き込み権限が必要なワークフローもある一方で、外部ユーザーによる課題の起票だけでトリガーされるものもあり、その場合は、機会的なドライブバイ攻撃に対して完全に開放されてしまう。

AI駆動パイプラインを保護する方法

組織がCI/CDパイプラインにAI駆動の自動化を取り入れるにつれ、従来のセキュリティ制御では対処できない新たな攻撃面も同時に引き受けることになる。

この新たなリスクを軽減するには、セキュリティチームはAIエージェントの動作方法、受け取る入力、実行を許可されるアクションに対して、より厳格な制御を適用しなければならない。

  • AIエージェントの権限を制限する。シェル実行、課題編集、PRの変更などの高リスクツールは、絶対に必要な場合を除き無効化する。
  • ワークフロートリガーを制限することで、AI駆動のアクションが信頼できるコラボレーターに対してのみ実行されるようにし、公開の課題やPR作成によって自動的に起動されないようにする。
  • 信頼できないすべてのユーザー入力をサニタイズする。AIプロンプトに到達する前に無害化し、検証されるまではAI生成出力をすべて信頼できないものとして扱う。
  • AI出力を検証またはレビューする。人間による承認ステップ、許可リスト化されたコマンド、分離されたサンドボックス環境などを用いて、実行前に確認する。
  • トークンの露出を減らす。GitHubトークンのスコープを絞り、短命な認証情報を使用し、可能な場合はIP許可リストを適用する。
  • AIエージェントのアクティビティを監視およびログ取得する。プロンプト、出力、ツール実行を含め、予期しない編集やワークフロー呼び出しなどの異常を検知する。
  • ワークフローとサードパーティAI統合を定期的に監査する。プロンプトインジェクションリスク、過剰な権限を持つアクション、安全でないデフォルト設定がないかをスキャンする。

AIエージェントを取り巻く制御を強化することで、組織はプロンプトインジェクションやワークフローの悪用が大規模な侵害につながる可能性を低減できる。

CI/CDパイプラインにおけるAIリスクは高まっている

PromptPwndは、自動化、AI、開発者向けツールがますます融合する進化中のエコシステムにおける、さらなる警告サインである。 

組織がCI/CDパイプラインにAIをより深く組み込むにつれ、攻撃者はプロンプトインジェクションを武器化する新たな機会を見出している。無害に見える自然言語入力を、特権アクションや機密データ露出への経路へと変えてしまうのだ。 

この変化は、AIエージェントをもはや無害なヘルパーとして扱うことはできないことを明確に示している。むしろ、厳格なセキュリティ制御と継続的な監視を要する高権限の自動化コンポーネントとして統治しなければならない。 

多くの点で、こうした新たなAI駆動リスクは、組織がゼロトラストのマインドセットを採用すべき理由を再確認させるものだ。すなわち、いかなるユーザー、システム、自動エージェントも、先天的に信頼されるべきではないという前提である。

翻訳元: https://www.esecurityplanet.com/threats/ai-agents-create-critical-supply-chain-risk-in-github-actions/

ソース: esecurityplanet.com