NPM サプライチェーン攻撃:IconBurst 混入のモジュールが 27,000回以上もダウンロード

NPM supply-chain attack impacts hundreds of websites and apps

2022/07/05 BleepingComputer — NPM のサプライチェーン攻撃は、2021年12月からたどる必要がある。そのとき、難読化された Javascript コードを含む、数十の悪意の NPMモジュールが用いられ、数百の下流にあるデスクトップ・アプリケーションと Web サイトが危険にさらされた。

サプライチェーン・セキュリティ企業である ReversingLabs の研究者たちの報告によると、このキャンペーン (IconBurst) の背後にいる脅威アクターたちは、umbrellajs や ionic.io といった、人気の NPM パッケージを探す開発者を感染させるために、タイポスクワッティングを用いていたという。

たとえば、このキャンペーンで使用された悪意の NPM パッケージの1つ (icon-package) は、17,000以上のダウンロード数を誇り、シリアライズされたフォームデータを、攻撃者が管理する複数のドメインに流出させるよう設計されている。

ReversingLabs のリバースエンジニアである Karlo Zanki は、「IconBurst は、typo-squatting (正規のパッケージと類似した、あるいは、スペルミスのパッケージが公開リポジトリ経由で提供される) を利用している。さらに、データの流出に使用されたドメインの類似性から、このキャンペーンにおけるさまざまなモジュールは、単一のアクターにより制御されていることが示唆される」と述べている。

IconBurst malicious packages
A partial list of IconBurst malicious NPM packages (ReversingLabs)

現在もダウンロード可能な悪意のモジュールの一部

2022年7月1日に、ReversingLabs チームが NPM セキュリティ・チームに連絡を取り、調査結果を報告したが、悪意のパッケージ (IconBurst 入り) の一部は、依然として NPM レジストリで提供されている。

Zanki は、「有名なパッケージのうち、いくつかは NPM から削除されたが、この報告の時点では、まだ大半が、ダウンロード可能だ。オープンソースのライブラリやモジュール内に存在する、悪意のコードを検出する能力を持つ開発組織は非常に少ないため、私たちが気づくまでの数ヶ月間にわたって、この攻撃は持続していた」と述べている。

研究者たちにより、IconBurst サプライチェーン攻撃に使用された悪意のパッケージ・リストがまとめられたとしても、感染したアプリやウェブページを介して、2021年12月以降に盗み出されたデータや認証情報については知る術がなく、その影響は確定していないようだ。

現時点では、それぞれの悪意の NPM モジュールがインストールされた回数が、唯一の指標となっているが、ReversingLabs の統計は非常に驚くべきものとなっている。

Zanki は、「この攻撃の全容はまだ分かっていないが、私たちが発見した悪意のパッケージは、何千もの Web サイトだけではなく、下流のモバイル/デスクトップ・アプリで使用されていると思われる。NPM モジュールにバンドルされた悪意のコードは、未知の数のモバイルおよびデスクトップ・アプリと Web ページ内で実行され、膨大な量のユーザーデータを採取している。私たちのチームが特定した悪意の NPM モジュールは、合計で 27,000回以上ダウンロードされている」と述べている。

タイポスクワッティングによるサプライチェーン攻撃とのことですが、似たような話としては、6月12日の「PyPI パッケージ keep に含まれるタイプミス:悪意の依存関係とパスワード窃取」があります。ただし、こちらは、開発者のミススペルに起因するものであり、悪意があったわけではないようです。ただし、そのミススペルのせいで、悪意のライブラリを取り込んでしまい、結果として似たような状況を作り出しています。その一方で、4月7日の「Google と GitHub が協力:ソフトウェアの真正性確保によりサプライチェーン攻撃に対抗」では、パッケージへの悪意のコード注入などを防ぐ試みが進められています。安心して利用できる、OSS リポジトリが必要ですね。

%d bloggers like this: