セキュリティ企業Wizの研究チームは、自律型AIエージェント「Red Agent」を用い、データウェアハウス企業Snowflakeの公開リポジトリに存在した脆弱性を発見し、実際に侵入を実演したと発表しました。脆弱性はGitHub Actionsのワークフロー設定に起因するもので、Jiraの認証情報が外部に流出する経路が存在していました。問題のコードには「Copilot Autofix」の共同作成者表記があり、AIが脆弱なコードを書いたのかを巡ってGitHubとWizの見解が対立しています。
背景と文脈
Wizはクラウド環境のセキュリティリスクを可視化する製品を手掛ける企業です。同社の研究チームは、人手を介さずに脆弱性の発見から攻撃までを自律的に実行するAIエージェント「Red Agent」を開発し、実際の攻撃能力を検証する取り組みを進めています。今回の検証対象となったのは、データウェアハウス製品を提供するSnowflakeが公開しているリポジトリ「snowflake-connector-net」です。
このリポジトリのGitHub Actions(コードのビルドやテストを自動化するCI/CDの仕組み)のワークフロー設定ファイルには、GitHubのIssue(課題管理用の投稿)のタイトルがそのままシェルコマンドとして実行されてしまう欠陥がありました。これはコマンドインジェクション(外部から与えた文字列が意図せずコマンドとして実行されてしまう脆弱性)と呼ばれる類型に当たります。
この欠陥を悪用すると、本来は非公開のはずの環境変数が流出する可能性がありました。具体的にはSnowflakeの社内Jiraへの接続に使うJIRA_BASE_URLやJIRA_USER_EMAIL、JIRA_API_TOKENといった情報です。Wizはこの経路を実際に突破できるかどうかを、Red Agentを使って検証しました。今回の検証は、外部の攻撃者を装う侵入テストではなく、責任ある開示を前提とした自社研究として実施されています。公開リポジトリという誰でも閲覧・投稿できる場に潜む設定不備を、AIエージェント自身に見つけさせる点が従来の手動診断との大きな違いです。
技術/ビジネス面

Red Agentの攻撃は、人間の介入なしに一連の流れを自律的にこなした点が特徴です。まず攻撃用のコードを仕込んだIssueタイトルを投稿しましたが、最初の試行はbashのエラーで失敗しました。Red Agentはこのエラー内容を自ら分析し、ペイロード(攻撃コード本体)を書き直して再試行しています。
最終的にRed Agentは、Jiraの認証情報をBase64形式にエンコードしたうえで、外部に設置した待ち受けサーバー(out-of-band listener)へ流出させることに成功しました。発見から攻撃、失敗の分析、再試行までを自動でこなすループが実証された形です。
もう一つの焦点は、脆弱性を生んだコードの責任の所在です。問題のコードを加えたコミット(変更履歴)には、共同作成者として「Copilot Autofix powered by AI」という表記がありました。Wizはこの表記をAIが脆弱なコードを書いた証拠として発表しています。一方GitHubは社内調査の結果、脆弱性につながった変更は人間が書いたものであり、Copilotによるレビューや貢献はなかったと反論しており、両社の見解は現時点でも一致していません。
なお、Snowflakeは6月23日に脆弱性を修正し、6月24日にはJiraのトークンを無効化・再発行しました。監査ログを確認した結果、異常なクエリはすべてWiz自身のテスト用アドレスから発信されたものであり、悪意ある第三者による実害は確認されていません。
これからどうなるか
今回の実演は、攻撃側・防御側の双方でAIエージェントが「発見・攻撃・分析・再試行」のループを自律的に回せることを示した事例です。防御目的の研究であっても、攻撃者が同様の手法を使えば実被害につながりかねない点は変わりません。今後は同種の自律型AIエージェントを使った攻撃・検証が、セキュリティ業界の標準的な手法として広がっていく可能性があります。開発者としては、自社のGitHub Actionsのワークフローに同種のコマンドインジェクションのリスクがないか、Issueタイトルなど外部入力をそのままコマンドに渡していないかを点検する契機にすべきです。
加えて、コミット履歴上の「AIが共同作成者」という表記だけでは、AIが実際にコードへどこまで関与したかを正確に判断できないという課題も浮き彫りになりました。AIコーディング支援ツールが加えた変更をどう記録し、誰がレビューして承認したかを追跡できる体制を整えることは、今後のガバナンス上の重要な論点になりそうです。自社のリポジトリでAIコーディング支援ツールを使っている場合は、コミット履歴上の表記だけを信頼せず、実際の変更内容を人手で確認する運用を検討する価値があります。
まとめ
Wizの自律型AI「Red Agent」がSnowflakeの脆弱性を発見・侵入実演した一件は、AIエージェントの攻撃能力と、コード変更の責任所在をめぐる課題を同時に示しました。実害はなかったものの、脆弱なコードをAIが書いたのかを巡るGitHubとWizの見解対立は続いています。両者の主張を踏まえ、開発現場ではワークフローの点検とAI関与の記録確認が求められます。
参考リンク
アイキャッチ画像: Photo by Kerde Severin on Unsplash
