5分で読めます
悪名高いShai-Huludワームの亜種がMicrosoftのコードリポジトリに大混乱をもたらし、CI/CDワークフローの障害を引き起こすとともに、ソフトウェアサプライチェーンへの脅威が高まっているという懸念が深刻化しています。
6月5日に展開されたこの攻撃は、セキュリティ研究者向けのオンラインコラボレーションプラットフォームであるOpen Source Malwareが最初に報告しました。2分足らずの間に、Microsoftが保有するGitHubリポジトリのうち主にAzure組織に属する73件が、GitHubによる自動的な利用規約違反スキャンによってオフラインにされました。
この対応により、影響を受けたGitHub Actionsを使用していた世界中の組織のCI/CDパイプラインが停止しました。最も顕著な例は、Azure Functionsのデプロイに使用されるGitHub ActionであるAzure/functions-actionです。
「[Azure/]functions-actionはバージョンをピン留めして回避できるようなライブラリではなく、他者のパイプライン内部で実行されるアクションです」とOpen Source Malwareは6月5日のブログ投稿に記しています。「GitHubがこれ(およびfunctions-container-actionも)を無効化すると、Azure/functions-action@v1を参照する世界中のあらゆるワークフローが解決できなくなりました。」
StepSecurityも同日に調査結果を公表し、Open Source Malwareの報告を裏付けるとともに、この攻撃をMini Shai-Huludワームの亜種であるMiasmaと結びつけました。Miasmaは今月初め、Red Hat npmパッケージへの一連の攻撃でも確認されています。
さらに注目すべきは、StepSecurityが今回のMiasmaワーム攻撃を先月発生したMicrosoftのPyPIパッケージへの侵害と結びつけた点です。これにより、同社のインシデント対応のあり方に疑問が浮上しています。
Microsoftを狙ったMiasmaワームの2度の攻撃
5月19日、MicrosoftのdurabletaskのPython SDKの汚染されたバージョン3つがPyPIに公開されました。通常は月間約40万回ダウンロードされているこのパッケージは、Microsoftが削除するまでおよそ35分間公開されていました。
同日公開されたブログ投稿の中で、StepSecurityの最高技術責任者(CTO)兼共同創業者であるAshish Kurmi氏は、汚染されたバージョンが「特に危険」だと指摘しました。その理由は、シークレットや認証情報を盗み取り、一部の地域では破壊的なワイパーも展開できる「rope.pyz」というモジュール型クラウド侵入フレームワークが含まれていたためです。
「攻撃者はMicrosoftの公式パッケージの正規の公開認証情報を侵害し、リポジトリのビルドパイプラインを完全に回避しました」とKurmi氏は記しています。「その後、Microsoftはこの侵害を確認し、影響を受けたバージョンを削除しました。」
当時、StepSecurityはPyPIパッケージへの侵害をTeamPCPの仕業と断定し、同グループが以前に行ったMini Shai-Hulud攻撃とインフラが重なっている点を指摘していました。最新の報告では、同社はMicrosoftのリポジトリへの侵害をTeamPCPの広範なサプライチェーンキャンペーンと結びつけ、今回の攻撃に含まれる悪意のあるコミットが、PyPIパッケージ侵害で使用されたのと同じコントリビューターアカウントから行われていたことを明らかにしました。
Kurmi氏は6月5日のブログ投稿で、このコントリビューターアカウントが繰り返し悪用された可能性として、いくつかのシナリオを挙げています。まず、5月19日のインシデント後にアカウントの認証情報が完全にローテーションまたは無効化されていなかった可能性。次に、Miasmaワームの伝播ループによってコントリビューターのアカウントが再び侵害された可能性。そして最後に、別のコントリビューターの認証トークンが使用され、攻撃者がGit Data APIを通じてコミット作成者のメタデータを偽装した可能性です。
Kurmi氏はDark Readingの取材に対し、攻撃者が最初の2つのシナリオを組み合わせた可能性が非常に高いと述べています。
「私たちの主要な見解は、ワーム自身の伝播ループによる再侵害であり、おそらく5月19日以降の不完全な認証情報のローテーションと組み合わさったものだと考えています」と同氏は述べています。「この2つは相互に排他的ではなく、むしろ相乗的に作用する傾向があります。一度でも被害範囲に入ったアカウントは自然な再感染候補となり得ます。これは、このワームがアカウント間を飛び移る様子を観察してきた私たちの知見とも一致しています。」
Dark ReadingはMicrosoftにコメントを求めましたが、同社はコントリビューターアカウントに関する質問には回答せず、代わりに声明を発表しました。「私たちの最優先事項は、お客様とより広いエコシステムを守ることです。悪意のあるコンテンツが含まれる可能性について調査する間、一部のリポジトリを一時的に削除しました。これらのリポジトリはすべて、審査後に復元されています。調査の一環として、影響を受けたリポジトリからコンテンツをダウンロードした可能性のある少数のお客様に通知しました」と同社は述べています。「引き続き調査を進め、お客様による対応が必要なことが新たに判明した場合は、既存のサポートチャネルを通じて直接ご連絡します。」
AIコーディングエージェントを標的にするMiasma
これまでのMiasmaおよびShai-Huludの攻撃が開発者のシークレットやクラウド認証情報を標的にしていたのに対し、今回のMicrosoftリポジトリに仕込まれた認証情報窃取マルウェアはAIコーディングエージェントに狙いを絞っていたとStepSecurityは指摘しています。具体的には、AnthropicのClaude Code、GoogleのGemini CLI、Cursor、そしてVisual Studio Codeが標的となっています。
StepSecurityの研究者が観察したもう一つの違いは、攻撃者が汚染されたパッケージレジストリではなく設定ファイルを使用した点です。これらのファイルは、開発者がAIコーディングツールや統合開発環境(IDE)を通じて侵害されたリポジトリを開いた際にコードを自動実行し、マルウェアを起動させます。
Kurmi氏によれば、脅威アクターによるこの意図的な戦術転換は、検知システムの回避を目的としたものです。侵害されたリポジトリをダウンロードしてもアラートは発生しません。なぜなら、そのリポジトリ自体は安全と見なされているからです。しかし、その後AIコーディングツールで開かれた時点でマルウェアが起動します。ほとんどのスキャナーはまだその段階を監視していないと、Kurmi氏は述べています。
「防御はパッケージマネージャーとそのインストール時フックを中心に構築されています。6月5日の攻撃はそれを完全に回避しました。ソースコードは一切変更されておらず、Claude Code、Gemini CLI、Cursor、VS Code向けの設定ファイルが植え付けられ、すべてが4.6MBのペイロード一つを指し示していました」と同氏は述べています。「パターンは一貫しています。攻撃者は最も監視が薄い信頼された攻撃面を見つけ、そこへ移動するのです。」
侵害されたリポジトリはGitHubの自動防御によって数時間以内にフラグが立てられ削除されましたが、StepSecurityによれば、その間の露出時間は無視できないものです。
「自己増殖するワームにとって、それがすべてです」とKurmi氏は述べています。影響を受けたリポジトリを取得し、対象となる環境のいずれかで開いた人物は即座に認証情報を抜き取られ、盗まれたトークンが次のコミットの送信と次のパッケージの再公開に利用されます。「つまり被害範囲は固定されるのではなく、拡大し続けるのです」と同氏は付け加えています。
その時間帯に何人の開発者アカウントが侵害されたかは不明であり、Kurmi氏も具体的な数字は誰にも出せないと述べています。しかし、価値の高い開発者がたった一人でも侵害されたリポジトリを開けば、次の攻撃の波を起こすのに十分な認証情報が手に入ります。だからこそ、迅速な検知が不可欠なのです。
StepSecurityは、6月2日以降に侵害されたリポジトリのいずれかをクローンし、前述のAIコーディングツールで開いた組織に対し、システムが侵害されたと見なして行動するよう強く求めています。そのような組織は、すべての認証情報をローテーションし、npmやPyPIパッケージを監査し、侵害の痕跡を示すログを確認すべきです。
同様の攻撃を防ぐためにStepSecurityが推奨する対策としては、クローンしたリポジトリにAIコーディングエージェントやその他のサードパーティツールの不審な設定ファイルがないか確認すること、すべてのコミットにレビューを必須とするブランチ保護ルールを有効化すること、CI/CDランナーからのアウトバウンドネットワークアクセスを制限してコマンド&コントロール(C2)ドメインへのトラフィックをブロックすること、などが挙げられます。
翻訳元: https://www.darkreading.com/application-security/miasma-supply-chain-worm-73-microsoft-repositories