WizのRed Agentは、Snowflakeのリポジトリにあった脆弱なGitHub Actionsワークフローを悪用し、最終的にJiraの認証情報を窃取しました。
クラウドセキュリティ企業Wizが開発した自律型AIセキュリティエージェントが、SnowflakeのGitHub Actionsパイプラインに存在した重大な脆弱性を発見・悪用しました。この脆弱性については、以前GitHub Copilotがコード変更をレビューしていたにもかかわらず、見逃されていました。
脆弱性を含んでいたコードは、GitHub Copilotが関与していたプルリクエスト(PR)の一部でしたが、Wizはコーディングアシスタント自体がこの脆弱性を作り込んだのかどうかは不明であると説明しています。「Copilotはマージされたこのプルリクエストとコード変更をチェックした共著者であり、重大な脆弱性に気づくことなく『問題なし』と判定していました」と、Wizの研究者たちはブログの投稿で述べています。
この攻撃経路は、Wizの自律型セキュリティ調査ツール「Red Agent」によって特定・悪用され、最終的にはSnowflake内部のJira認証情報へのアクセスに成功しました。
Wizは当初、この開示内容がCopilotが欠陥のあるコードの作成に関与したことを示唆しているかのように受け取られ、批判にさらされました。同社は後に説明を補足する形で内容を更新しています。「あらゆるプルリクエストに複数のエージェントが関与し、スキャンや更新を行う世界では、人間とAIの明確な線引きがますます難しくなっています。単にPRの共著者を見るだけでは不十分です」と、Wizの共同創業者兼CTOであるAmi Luttwak氏はCSOに語りました。
Snowflakeは、WizがHackerOneのプログラムを通じて報告したのと同じ日である6月23日に、この脆弱性を修正しました。Snowflakeの広報担当者はCSOに対し、この脆弱性は「直ちに調査・修正され、調査の結果、不正アクセスの痕跡は見つかりませんでした」と述べています。
各種の対策をすり抜けて悪用された脆弱性
WizのRed Agentは、Snowflakeの「snowflake-connector-net」リポジトリ内にある「jira_issue.yml」ワークフローにこの脆弱性を発見しました。
このワークフローは、誰かがGitHub上でissueを作成するたびに実行され、issueのタイトルをシェルコマンドの一部として使用していました。PR#1218で導入された変更によりこの入力の処理方法が変わり、攻撃者がこのワークフローを通じて独自のコマンドを注入・実行できるようになっていた、と研究者らは説明しています。
このワークフローには、信頼できないユーザーによる悪用を防ぐための保護機構も組み込まれていました。しかし、この機構はプルリクエスト向けに構築されたものだったのに対し、今回の悪用は「issue」の処理を対象としていたため、意図した通りには機能せず、結果としてどのGitHubユーザーもこのチェックをすり抜けられる状態になっていました。
この脆弱性は、PR#1218がマージされた6月18日に実際に有効化されました。Wizによると、GitHub Advanced Securityは最終版のコードをスキャンし、問題のワークフローを抽出していたものの、このインジェクションの脆弱性を検出できていませんでした。
Red Agentが認証情報をハッキング
WizのRed Agentは、Snowflakeのgithub組織を自律的にスキャンしている最中にこの脆弱性を発見しました。その後、シェルの「echo」ステートメントを突破し、Jiraの認証情報を外部のリスナーへ送信するよう細工したissueタイトルを作成しました。
研究者らによると、Red Agentによる最初の悪用の試みは構文エラーにより失敗しましたが、エージェントはそのエラーを分析してペイロードを修正し、2回目の試行ですべて自力で悪用に成功したとのことです。
この悪用が成功したことで、GitHub Actionsのランナーはbase64でエンコードされたJira認証情報を含む帯域外コールバックを送信しました。Wizはこの認証情報を使ってSnowflake内部のAtlassian環境に認証を通し、エンジニアリング、セキュリティコンプライアンス、バグバウンティ関連のプロジェクトへの読み取りアクセス権を取得しました。
Wizによると、この脆弱性はRed Agentが発見するまでの5日間、有効な状態のままになっていたとのことです。Snowflakeは6月23日にこのワークフローを修正し、より安全な入力処理方式に戻すとともに、翌日には影響を受けたJiraの認証情報をローテーションしました。Snowflakeによる法医学的調査では、この脆弱性が露出していた期間中にWiz以外の第三者によるアクセスの痕跡は確認されていません。また、Wizは概念実証(PoC)テスト中にアクセスしたすべてのデータを安全に削除したことも確認済みです。
Shweta has been writing about enterprise technology since 2017, most recently reporting on cybersecurity for CSO online. She breaks down complex topics from ransomware to zero trust architecture for both experts and everyday readers. She has a postgraduate diploma in journalism from the Asian College of Journalism, and enjoys reading fiction, watching movies, and experimenting with new recipes when she’s not busy decoding cyber threats.