2025年9月、10億ダウンロードの故宮サプライチェーン攻撃で何が起きたのか?
2025-09-09 15:15

BitcoinWorld 2025年9月の10億ダウンロードNPMサプライチェーン攻撃で何が起こったのか?2025年9月9日現在、JavaScriptエコシステムは、人気開発者qixのNPMアカウントを侵害した大規模なサプライチェーン攻撃に対応している。この侵害により、chalk、strip-ansi、color-convert など、広く使われている数十のパッケージの悪意のあるバージョンが公開された。影響を受けたパッケージの合計の週間ダウンロード数は10億を超え、オープンソースの歴史において最も重大なセキュリティインシデントの一つとなっている。最初の発見この攻撃は、CI/CDパイプラインにおける暗号化されたビルドの失敗、具体的にはReferenceError: fetch is not definedによって最初に検出された。このエラーは、グローバルフェッチ関数を持たない古いNode.js環境で、マルウェアがフェッチコールを介してデータを流出させようとした試みが失敗したために発生した。根本的な原因攻撃者は qix NPM アカウントを制御し、主要なライブラリの悪意のあるパッチバージョンを公開できるようにしました。大きな影響侵害されたパッケージは、無数のプロジェクトの基本的な構成要素であり、依存関係ツリーの奥深くに埋もれていることが多い。影響を受けた主なパッケージとそのおおよその週間ダウンロード数は以下の通り: chalk : ~ 300 million strip-ansi :~ 2億6,100万color-convert : ~ 1億9,300万color-name : ~ 1億9,100万is-core-module : ~ 6,900万error-ex : ~ 4,700万simple-swizzle : ~ 2,600万has-ansi :~ 1,200万 NPM攻撃によるCrypto-Clipperマルウェアはどのようにして資金を盗むのか?この悪質なコードは、洗練された「クリプト・クリッパー」と呼ばれ、ユーザーの取引やウォレットとのやり取りを標的として暗号通貨を盗むように設計されています。クリプト・クリッパーは、2つの戦略を駆使して活動します:パッシブ・アドレス・スワッピング:このマルウェアは、ブラウザのネイティブ・フェッチおよびXMLHttpRequest関数を「モンキー・パッチ」して、すべてのネットワーク・トラフィックを傍受します。攻撃者が所有するビットコイン(BTC)、イーサリアム(ETH)、ソラナ(SOL)、トロン(TRX)、ライトコイン(LTC)、ビットコインキャッシュ(BCH)などの通貨のウォレットアドレスのリストが含まれています。スクリプトは、レーベンシュタイン距離アルゴリズムを使用して、ユーザーの正規のアドレスと最も類似している攻撃者のアドレスを見つけ、人間の目による置換の検出を困難にします。アクティブ・トランザクション・ハイジャック:マルウェアがwindow.ethereumをチェックすることでMetaMaskのようなブラウザベースのウォレットを検出すると、ウォレットの通信方法(リクエスト、送信)をハイジャックします。ユーザーがトランザクションを開始すると、マルウェアはメモリ内のデータを変更し、正規の受信者のアドレスをハードコードされた攻撃者のアドレスに置き換えます。その後、ユーザーは無意識のうちに不正な取引にサインし、資金を攻撃者に振り向ける。攻撃の追跡ブロックチェーンの透明性により、このような不正取引の監視が可能になる。攻撃者が使用した主要なイーサリアムアドレスの1つは、0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976です。侵害されたウォレットの完全なリストは、GitHubのGistで公開されています。プロジェクトを保護するために、開発者はどのような手段を取ることができるでしょうか?NPM とオープンソースコミュニティは、悪意のあるバージョンを削除することで攻撃を修復するために積極的に取り組んでいますが、プロジェクトの依存関係やロックファイルに侵害されたパッケージがまだ存在している可能性があります。プロジェクトを保護するために、開発者は直ちに以下の重要なステップを踏む必要があります:依存関係の監査 :プロジェクトの package-lock.json または yarn.lock ファイルを直ちにチェックし、影響を受けたパッケージの使用を確認します。安全なバージョンに固定する:package.jsonファイルのoverrides機能を使って、侵害されたパッケージの既知の安全なバージョンを使うようにnpmに強制する。これは、依存関係を修正するために重要です。package.jsonの設定例:JSON { "name" : "your-project" , "version" : "1.0.0" , "overrides" : { "chalk" : "5.3.0" , "strip-ansi" : "7.1.0" , "color-convert" : "2.0.1" , "color-name" : "1.1.4" , "is-core-module" : "2.13.1" , "error-ex" : "1.3.2" , "has-ansi" : "5.0.1" }}。クリーンアップと再インストール : オーバーライドを追加したら、node_modulesフォルダとpackage-lock.jsonファイルを削除します。その後、npm install を実行して、ピン留めされた安全なバージョンの新しいクリーンなロックファイルを生成します。これにより、プロジェクトの環境に脆弱なコードが残らないようになります。qix NPM アカウントの危殆化は、なぜサプライチェーンのセキュリティにとって重大な脅威なのでしょうか?qix NPM アカウントの危殆化は、攻撃者が悪意のあるコードを非常に人気のある、基盤となる JavaScript パッケージに注入することを可能にしたため、重大な脅威です。これらのライブラリは通常、直接依存するものではなく、何百、何千もの他のパッケージによって取り込まれます。この広大で目に見えない依存関係ツリーは、悪意のあるコードが最小限の摩擦で何百万ものアプリケーションや開発者のマシンに広がる可能性があることを意味し、オープンソースのエコシステム内に内在する信頼を武器にした。クリプト・クリッパー」とは何か、また2025年9月のNPM攻撃とどのような関係があるのか?クリプト・クリッパー」とは、暗号通貨取引をハイジャックするマルウェアの一種です。NPM 攻撃の文脈では、chalk や strip-ansi などのパッケージに注入された悪意のあるコードがクリプト・クリッパーとして機能します。これはウェブトラフィックとクリップボードデータを静かに監視し、特に暗号ウォレットアドレスを探します。ユーザーがトランザクションをコピーまたは開始すると、クリッパーは正規の受信者アドレスを攻撃者のものと交換し、資金を再ルーティングして、ユーザーがすぐに気づかないうちに金銭的な損失を引き起こします。単純な構築ミスが、どのようにして高度なサプライチェーン攻撃を暴くことができるのか?この攻撃では、一見些細なビルド・エラーであるReferenceError: fetch is not definedが、根深い問題を示す最初の指標となった。このエラーは、マルウェアのデータ流出の試みが、古いNode.js環境には存在しない最新のブラウザ機能に依存していたために発生しました。ペイロードの実行に失敗したことで、悪意のあるコードが可視化され、単純な設定の不一致や古い環境であっても、巧妙で難読化された攻撃のトリップワイヤーとして不注意に機能する可能性があることが浮き彫りになりました。qix NPMアカウント攻撃は、オープンソースのエコシステムが、その協力的な性質にもかかわらず、洗練されたサイバー脅威の主要な標的であることを明確に思い出させるものである。今回露呈した脆弱性は、単なる技術的な欠陥ではなく、サードパーティに依存する信頼に起因するシステム的なリスクである。組織は、基本的なセキュリティ対策にとどまらず、CI/CDパイプラインの強化、厳格な依存関係管理ポリシーの導入、セキュリティ優先の企業文化の醸成など、積極的かつ警戒的な姿勢を採用しなければならない。今すぐ行動を起こさなければ、プロジェクトは、知的財産、ユーザーデータ、金融資産を大規模に危険にさらす可能性のある同様の脅威にさらされることになる。この投稿は、BitcoinWorldに最初に掲載され、Keshav Aggarwalによって書かれました。
https://bitcoinworld.co.in/what-happened-in-the-billion-download-npm-supply-chain-attack-of-september-2025/