メインコンテンツへスキップ
Supply Chain Attack Exposes Over 2 Billion

サプライチェーン攻撃で20億件以上の情報が流出

NPMのサプライチェーン攻撃により、週26億ダウンロード規模のライブラリが暗号資産ウォレットマルウェアに感染。開発者は依存関係の監査を推奨。

更新日
読了時間
9分
トピック
ニュース
Supply Chain Attack Exposes Over 2 Billion
広告

9月8日、NPMエコシステムにおいて大規模なソフトウェアサプライチェーン攻撃が発生し、広く利用されている複数のJavaScriptライブラリが侵害されました。この侵害は、Ledgerの最高技術責任者(CTO)であるCharles Guillemet氏が、信頼されていた開発者のNode Package Managerアカウントが乗っ取られたと警告したことで発覚しました。当初の推定では影響範囲は10億ダウンロード以上とされていましたが、その後の分析により、侵害されたパッケージの週間ダウンロード数は実際には26億を超えていることが判明しました。

Supply Chain Attack Exposes Over 2 Billion

Supply Chain Attack Exposes Over 2 Billion

Supply Chain Attack Exposes Over 2 Billion

この攻撃は、chalk、strip-ansi、color-convert、debugなど、複数の人気JavaScriptライブラリを保守している「qix」という開発者のアカウントを標的にしました。これらのライブラリは、サーバーサイドおよびフロントエンド環境の両方にまたがる数え切れないほどのプロジェクトで使用されています。攻撃者は偽のサポートメールを通じてアクセス権を獲得し、約18個のパッケージに悪意のあるアップデートをプッシュしました。自動化された依存関係のインストールにより、マルウェアは数時間のうちに急速に拡散しました。

Guillemet氏の説明によると、この悪意のあるコードは、トランザクション中に暗号資産ウォレットのアドレスを密かに書き換えるものでした。ソフトウェアウォレットを利用するユーザーは、書き換えられた受取先アドレスに気づかずにトランザクションを承認してしまうと、資金を失うリスクに直面していました。

Malware Crypto Clipper and MetaMask

セキュリティ研究者は、このマルウェアを「クリプトクリッパー」と分類しています。これはトランザクションの様々な段階でウォレットアドレスを置き換えるものです。ウォレットが検出されない場合、マルウェアはfetchやXMLHttpRequestといったブラウザ機能をフックし、アプリケーションデータ内のアドレスをスキャンして書き換えることで、分散型アプリケーション内の送信データを改ざんします。

MetaMaskのようなウォレット拡張機能が存在する場合、マルウェアは署名前にトランザクションを傍受します。メモリ上のウォレットアドレスを書き換えるため、ユーザーがトランザクションを確認する際には不正なアドレスが表示されます。マルウェアはレーベンシュタイン距離アルゴリズムを使用して元のものと酷似したアドレスを生成するため、改ざんを見抜くことは困難です。

Supply Chain Attack Exposes Over 2 Billion

Supply Chain Attack Exposes Over 2 Billion

First Signs of the Attack

開発者が最初に攻撃に気づいたのは、ビルドシステムが予期せぬエラーメッセージを返した時でした。error-exという依存関係を調査したところ、checkethereumwという不審な関数を含む難読化されたコードが見つかり、Ethereumウォレットが標的になっていることが示唆されました。アナリストは、このマルウェアがBitcoin、Ethereum、Solana、Tron、Litecoin、Bitcoin Cashなど、複数のブロックチェーンにまたがるウォレットアドレスへの参照を含んでいることを確認しました。

影響を受けたパッケージには、JavaScriptエコシステムで最も広く使用されているものが含まれています。chalkは週間3億ダウンロード以上、debugは3億5000万以上、strip-ansiは2億6000万以上のダウンロード数を誇ります。侵害されたライブラリを合計すると、毎週26億回以上ダウンロードされており、開発者コミュニティ全体への影響の大きさが浮き彫りとなりました。

Hardware vs Software Wallets

感染したライブラリの多くは暗号資産プロジェクトと直接関連しているわけではありませんが、依存関係チェーンに組み込まれているため、無関係なアプリケーションであっても侵害された可能性があります。暗号資産ウォレットや分散型アプリケーションとやり取りを行うプロジェクトは、最も高いリスクにさらされています。

Guillemet氏は、クリアサイニング機能を備えたハードウェアウォレットのユーザーは、承認前にすべてのトランザクションを検証できるため安全であると指摘しました。ソフトウェアウォレットのユーザーはより大きなリスクにさらされており、依存関係が完全にレビューされ安全が確保されるまで、細心の注意を払う必要があります。

Finding the Attacker and Funds Stolen

攻撃者の暗号資産アドレスは特定されており、パブリックブロックチェーンの透明性を利用して積極的に監視が行われています。この操作に関連付けられた主要なEthereumアドレスは 0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976 であり、その他にも複数のバックアップアドレスが存在します。報告時点では、盗まれた資金は移動されていません。この監視により継続的な分析が可能ですが、盗まれた資産の全容は依然として不明です。

Supply Chain Attack Exposes Over 2 Billion

Supply Chain Attack Exposes Over 2 Billion

JavaScript and Community Role

JavaScriptおよびweb3コミュニティは、このインシデントを封じ込めるために迅速に行動しました。侵害されたパッケージの悪意のあるバージョンは大部分がレジストリから削除されましたが、ロックファイル内に古いバージョンが残っているプロジェクトには依然としてリスクがあります。開発者は依存関係を監査し、安全なバージョンをロックし、クリーンなビルドを再インストールして、さらなる被害を防ぐよう強く推奨されています。

セキュリティ専門家は、開発者に対して認証情報のローテーション、NPMやGitHubなどのアカウントでの二要素認証の強制、厳格なバージョン管理を維持するためのnpm ciのような決定論的インストール手法の使用を推奨しています。ユーザーは、特にソフトウェアウォレットを利用する際、すべての暗号資産トランザクションを慎重に検証する必要があります。

Final Thoughts

今回のインシデントは、NPMエコシステムを襲った最も広範囲な侵害の一つに数えられます。コミュニティの対応は比較的迅速でしたが、この攻撃は現代のソフトウェアサプライチェーンの脆弱性と、オープンソースコンポーネントへの広範な依存がもたらすリスクを浮き彫りにしました。

Guillemet氏が強調したように、署名前にすべてのトランザクションを確認することは依然として不可欠です。この侵害は、アプリケーションのインフラストラクチャの奥深くに埋め込まれた小さなライブラリであっても、侵害されれば重大な攻撃ベクトルになり得ることを示しています。開発者にとってもユーザーにとっても、web3およびソフトウェア開発エコシステムにおけるセキュリティを維持するためには、継続的な警戒が今や不可欠な要素となっています。

広告