マルウェア混入のNPMパッケージ「B-tree」、ダウンロード数が数百万件に到達

NPMのエコシステムがまたしてもサプライチェーン攻撃の被害に遭いました。悪意あるパッケージが数百万件のダウンロード数を記録していたことが、Checkmarxの報告で明らかになっています。

現在も進行中とみられるこのキャンペーンは、セキュリティソリューションに検知されやすいインストールスクリプトを使う代わりに、パッケージのJavaScriptプロトタイプコード内に悪意あるトリガーを隠すという手法で、NPMの最近の防御策を回避することに成功しています。

攻撃者は、拡散速度が速くすぐに検知されやすい人気パッケージを標的にするのではなく、正規に見えるGitHubリポジトリを作成することで信頼を築くという手口を取りました。

今回の悪意あるパッケージ「indexed-btree」は、正規のB-tree/インデックス作成ユーティリティである「sorted-btree」を模倣したもので、検知されるまでに週間ダウンロード数200万件に達していたとCheckmarxは述べています

このパッケージの信頼性を高めるため、攻撃者はGitHubアカウントを作成し、indexed-btreeリポジトリに一見正規に見えるコミットを追加していました。

Checkmarxは次のように指摘しています。「GitHubリポジトリの作成は、攻撃者が通常わざわざ行わない作業です。しかも今回の攻撃者は抜け目なく、悪意あるコードをリポジトリに含めていません。さらに、多数のコミットを重ねることで、正規のリポジトリらしく見せかけることにも一役買っています」

攻撃者は、ライブラリの主要関数である「BTree.prototype.set」メソッド内に悪意あるコードを潜ませ、マルウェアの第1段階を構成するJavaScriptコードを起動させるようにしていました。

このコードが実行されると、マルウェアはシステム情報を収集し、あらかじめハードコードされたSlackチャンネルとTelegramのチャットに送信します。さらに、コマンド&コントロール(C&C)として機能するSepolia上にデプロイされたブロックチェーンコントラクトに接続し、そのコントラクトから第2段階のペイロードを抽出・復号したうえで、痕跡を消去します。

Checkmarxによると、この攻撃者が使用したスマートコントラクトは、以前にも「mutex-forge」パッケージで確認されていたものだといいます。また、攻撃者はこれまでに109ETH(約30万ドル相当)を稼ぎ出したとみられています。

このサプライチェーン攻撃キャンペーンに関連するパッケージは、indexed-btreeのほかにも、ordered-kv-index、btree-leaderboard、priority-slot-queue、btree-range-store、btree-core、btree-time-index、btree-lru-cache、neighbor-key-map、sliding-score-windowなどが確認されており、削除された時点で合計500万件を超えるダウンロード数に達していました。

Checkmarxは「この進行中のキャンペーンは、耐障害性の高いC&Cインフラと、パッケージコード内部に隠された悪意あるコードを備えており、組織にとって現在進行形の脅威となっています」と警鐘を鳴らしています。

翻訳元: https://www.securityweek.com/malicious-b-tree-npm-package-accumulates-millions-of-downloads/

本記事は securityweek.com の記事を翻訳・要約したものです。