11月5日、海外の技術メディアarsTECHNICAが「NPMに投稿された数百のコードライブラリが開発者のマシンにマルウェアをインストールしようとする」と題した記事を公開した。この記事では、NPMリポジトリを通じて配布される悪意のあるコードライブラリがどのように開発者のシステムに感染し、情報を不正に収集する手口について詳しく紹介されている。
以下に、その内容を紹介する。
Phylumの調査によると、悪意のあるパッケージは特定のIPアドレスに接続し、感染拡大の手口を隠すために、過去に利用されたアドレスの履歴も残している。これらのデータはイーサリアムブロックチェーン上に保存されており、イーサリアムの特性により、すべての過去の値が不変の履歴として記録され続けるという。
過去に使用されたIPアドレスの一覧
• 2024-09-23 00:55:23Z: hxxp://localhost:3001
• 2024-09-24 06:18:11Z: hxxp://45.125.67[.]172:1228
• 2024-10-21 05:01:35Z: hxxp://45.125.67[.]172:1337
• 2024-10-22 14:54:23Z: hxxp://193.233[.]201.21:3001
• 2024-10-26 17:44:23Z: hxxp://194.53.54[.]188:3001
これらのアドレスは、感染が開始された時間ごとに異なるものであり、攻撃者が歴史的に使用したIPアドレスを確認できる。この手法により、攻撃者はシステムに潜伏し、特定のアドレスに接続し続けることで監視を逃れようとする。
悪意のあるパッケージは、主にVercelパッケージ形式を利用して配布されており、マシンのメモリ上で実行される。このパッケージは、再起動ごとに自動的に起動するよう設定されており、イーサリアムのコントラクトから取得したIPアドレスに接続して、さらなるJavaScriptファイルをダウンロードし、システム情報を送信する。
Phylumの研究者によれば、以下の情報が攻撃者に送信される。
• GPU情報
• CPU情報
• メモリ量
• ユーザー名
• OSバージョン
この攻撃は「タイポスクワッティング」という手法を用いており、正規のパッケージ名に似た名前でユーザーを誘引し、不正なパッケージをインストールさせるものである。この手法は、正規パッケージとよく似たスペルの名前を使用し、ダウンロードの際のタイプミスを狙っている。タイポスクワッティングは悪意のあるウェブサイトにユーザーを誘導するために長年利用されてきたが、近年では悪意のあるコードライブラリをインストールさせる手段としても使われるようになった。
開発者はパッケージをダウンロードする際、名前を慎重に確認することが重要である。悪意のあるパッケージの名前は、 PuppeteerやBignum.jsコード ライブラリ、暗号通貨を扱うさまざまなライブラリに似通った文字列を使用しており、Phylumのブログに詳しく掲載されている。
詳細はHundreds of code libraries posted to NPM try to install malware on dev machinesを参照していただきたい。