サイバーセキュリティ

MicrosoftによるChainDrop攻撃の分析:400以上のnpmパッケージに感染した自己増殖型ワーム

Microsoft Threat Intelligenceは、さまざまな組織が公開した400以上のパッケージに、認証情報を窃取するワームが潜伏していた大規模なnpmサプライチェーン攻撃を分析した。このマルウェアは開発者の秘密情報とCI/CD環境を収集し、npmおよびGitHubのトークンを使って悪意のあるバージョンを再公開し、さらなる拡散経路を開く。

2026-08-04
2 分で読めます
8 閲覧数
فريق تحرير certi.news
MicrosoftによるChainDrop攻撃の分析:400以上のnpmパッケージに感染した自己増殖型ワーム

Microsoft Threat Intelligenceは、表面上は互いに関係のない公開者に関連する400以上のパッケージに及ぶ、npmサプライチェーンへの大規模攻撃の詳細を明らかにした。その中には、keyvflat-cachecache-managerなど、企業向けソフトウェアエコシステムに含まれるパッケージもあった。悪意のあるリリースにはMini Shai-Huludワームの亜種が含まれていた。これはBunで構築された、高度に難読化されたJavaScriptペイロードであり、認証情報を窃取し、悪意のある更新を再公開することで自動的に拡散するよう設計されていた。

この攻撃が特に重要なのは、その動作方法にある。マルウェアは開発者の端末やビルド環境からトークンを盗むだけでなく、それらのトークンを利用してnpm、GitHub、Amazon Web Services、Kubernetes、HashiCorp Vaultにアクセスし、盗まれたIDに許可されたリソースと秘密情報を調査する。2026年8月4日に公開されたMicrosoftの分析によると、影響を受けたパッケージをインポートし、npmライフサイクルスクリプトを有効にしていたワークステーションまたはビルドエージェントは、侵害されたものとして扱うべきである。

開発環境内での早期実行

影響を受けたリリースには通常、パッケージのインストール完了前にsetup.mjsというファイルを実行するpreinstallスクリプトが追加されていた。このファイルは大規模で難読化されたBunパッケージを起動し、アプリケーションのテストが始まる前、または従来のセキュリティ検査の一部がこの段階に到達する前に、開発者の端末やビルドノード上でペイロードを実行できるようにする。

ワームはまず環境を調査し、開発者の端末上で動作しているのか、CI/CDジョブ内で動作しているのかを判定する。開発者の端末では、インストール完了後もバックグラウンドで実行を継続するために自分自身を切り離す。一方、CI/CD環境では、ワークフローの秘密情報、エージェントの認証情報、OpenID Connectによるデプロイ権限を利用するため、ジョブに結び付いたままになる。また、別のインスタンスが実行されていないかを確認し、Microsoftが確認したところ、ロシア語ロケールのシステムでは停止する。

認証情報の窃取と拡散への転用

ペイロードは、ローカルで利用可能な認証情報ファイル、環境変数、コマンド履歴、SSHキー、クラウドツールに加え、GitHub Actionsのランナーのメモリからデータを収集することから始める。特にGitHub CLIトークンの取得を試みる。その後、抽出した認証情報を使用してnpm、GitHub、AWS、Kubernetes、HashiCorp VaultのサービスAPIを呼び出し、権限を確認して追加の秘密情報を収集する。

結果は、AES-256-GCMを使用して圧縮JSON形式で暗号化され、AESキーはRSA-OAEP-SHA256で暗号化された後、攻撃者が制御するHTTPSエンドポイントに送信される。主要な通信経路が利用できない場合、GitHubをデータ流出の代替チャネルとして使用する。Microsoftによると、分析時点で稼働していたインフラストラクチャはnpm-cache[.]comを返し、過去の候補としてpypi-get[.]comおよびjs-mirror[.]comが確認された。

主な拡散メカニズムでは、npmトークンを調査し、パッケージへの書き込みや二要素認証の回避が可能かどうかを確認する。その後、侵害されたIDが利用可能な各パッケージの最新tarballファイルをダウンロードする。ワームは自身をアーカイブにコピーし、セットアップローダーとライフサイクルスクリプトを追加し、パッチ版のバージョン番号を引き上げてから再公開する。これにより、ソースリポジトリに対応するcommit、プルリクエスト、リリースタグが存在しないにもかかわらず、通常のpatch更新に見える悪意のあるリリースが出現する。

GitHubを介した追加の経路

ペイロードはGitHubトークンのスコープを確認し、書き込み可能なリポジトリを列挙し、ワークフローの実行によってさらなる秘密情報が露出する可能性のあるリポジトリを探す。また、GitHub Actionsを通じて公開されるnpmパッケージを、信頼された公開者として標的にする経路も含まれている。公開が正規のワークフローIDから行われるため、公開されたリリースに有効なprovenanceが付与される可能性がある。

ワームはリポジトリのブランチに設定ファイルを注入することもできる。対象には、ClaudeおよびVisual Studio Codeに関連する.claude/settings.json.claude/setup.mjs.vscode/tasks.json.vscode/setup.mjsなどのパスが含まれる。これらの変更は二次的な感染経路を提供し、元のパッケージのインストールが終了した後でも、ClaudeまたはVisual Studio Codeの使用中にペイロードを再実行できる。Microsoftは、GitHubの予備経路の一つが、トークン監視用コンポーネントのインストールも試み、監視対象のトークンが取り消された場合に条件付きで破壊的なハンドラーを実行すると述べた。

Microsoftの推奨事項

Microsoftは、npm CLIをバージョン12に更新し、min-release-age機能を使用することを推奨している。また、間接的な参照を含め、影響を受けた5つのリリースがないか、依存関係ツリー、ロックファイル、アーティファクトリポジトリ、CIキャッシュを確認する必要がある。既知の安全なバージョンを固定し、開発者の端末とビルドホスト上のnpmおよびyarnキャッシュを消去することも必要である。特に、侵害されたアーカイブが共有CIキャッシュに取り込まれている場合は重要である。

ビルドシステムまたはワークステーションが影響を受けたリリースをインポートしていた場合、第二段階の実行によってトークンが露出し、ビルドプロセスの完全性に影響する可能性があるため、クリーンな端末から認証情報と秘密情報をローテーションする必要がある。推奨事項には、Microsoft Defender Antivirusのクラウド保護、Microsoft Defender for Endpointの測定機能、Microsoft Defender for Containers、ならびに開発資産とCI資産全体に対するMicrosoft Defender XDRの調査ワークフローを有効にすることも含まれる。

対応は端末の検査だけに限定されない。ソフトウェアアーティファクトを生成する組織は、リリースプロセスの強化、トークンのスコープ、ワークフローの承認、保護された環境、リリースの出所証明、自動公開における異常な活動の検知メカニズムを見直す必要がある。これは、GitHub Actions OIDC権限を介したCI/CDパイプラインの悪用と整合するためである。修復後は、信頼できるベースラインからプロジェクトを再ビルドし、キャッシュとアーティファクトリポジトリから侵害の痕跡が消えていることを確認する。また、Math_Symbol.jsMath_init.js、またはmath_<guid>.jsに類似した名前のファイルなど、Node.jsの残存物がないか測定結果を確認し、ベースイメージと標準化されたビルダーを再構築する必要がある。

ニュースの出典
Microsoft Security Blog
原文を開く ↗
ف
著者

فريق تحرير certi.news

同じカテゴリー

おすすめ記事

すべてのニュースを見る