セキュリティ
ご安心を、今回はバグバウンティプログラムを通じたものです
あるAIがSnowflakeのコードにバグを混入させ、その後、攻撃用エージェントである別のAIが人間の介入なしに自律的にそのバグを発見し、悪用して認証情報を窃取しました。
幸いにも今回は、またしても起きた暴走AIエージェントが悪事を働いたという類の事案ではありませんでした。これはSnowflakeのHackerOneを通じた脆弱性開示プログラムの枠内で承認された調査であり、Wizが報告したのと同じ日にSnowflakeは欠陥を修正し、翌日には影響を受けた認証情報をローテーションしています。
Wizのレッドエージェント、すなわち攻撃的セキュリティ向けに設計されたAI駆動の自律型攻撃者は、6月23日に公開リポジトリを定常的にスキャンしている最中にGitHub Actionsワークフローの欠陥を発見しました。このスクリプトインジェクション脆弱性はsnowflakedb/snowflake-connector-netに存在し、未認証のユーザーが細工したタイトルでGitHubのIssueを開くだけで、GitHub Actionsランナー内で任意のコマンドを実行できる状態になっていました。
そして、そのバグは5日前にAIが意図せず混入させたものだったことが判明しました。
AIコーディングアシスタントであるGitHub Copilot Autofixは、6月18日に当該コミットの共同作成者となっており、その際、リポジトリに既存していたサニタイズ済み入力パターンを削除し、シェルスクリプト内で直接的な文字列展開に置き換えたことで、run:ブロックにスクリプトインジェクションのバグを持ち込んでいました。
Wizの脅威エクスポージャー責任者であるGal Nagli氏は月曜日のブログで、「私たちはIssueのタイトルを細工し、テンプレート展開後にechoの文字列から抜け出してJiraの認証情報を帯域外コールバック経由で外部に持ち出せるようにしました」と述べています。
この認証情報により、WizはSnowflakeのエンジニアリング、セキュリティコンプライアンス、バグバウンティ追跡の各プロジェクトへの読み取りアクセス権を得ていました。
Wizは6月23日にこのワークフロー脆弱性をクラウドデータプラットフォーム企業に報告し、Snowflakeは同日中にパッチを適用しました。あわせてJiraトークンを失効・ローテーションし、監査ログを通じて、5日間の露出期間中に当該エンドポイントへアクセスしたサードパーティがWizのみであったことも確認しています。
Snowflakeの広報担当者は本紙The Registerに対し、この開示について「直ちに調査・是正を行い、調査の結果、不正アクセスの証拠は確認されませんでした」と述べました。「私たちはWizと協力し、こうした学びを業界全体で共有することで、こうしたセキュリティのベストプラクティスの幅広い採用を促していきます」
Wiz側は、脆弱性調査および概念実証(PoC)エクスプロイトのテスト中にアクセスしたデータをすべて削除したとしており、今回の事案は、開発者によるAI利用が拡大するなかで、人間によるコードレビューだけでは脆弱性を迅速に発見するには不十分であることを証明するものだと私たちに語りました。
Nagli氏は「今回の事案は、ソフトウェア開発において急速に浮上しつつある現実を浮き彫りにしています。すなわち、AIコーディングアシスタントが意図せずワークフローインジェクションの脆弱性を持ち込みうること、そして自律型のAIエージェントがそれを野放しの環境で瞬く間に表面化させうることです」と記しています。
もちろん、Google傘下の同社にはこう発言する側の思惑もあるでしょう。とはいえ、それが事実でないということにはなりません。®