JavaScriptエコシステムを揺るがしたNPMサプライチェーン攻撃の全貌 / 安全が確認されたビットコインウォレットと実務ガイド
BlockstreamアプリはJavaScriptやNPMを使用していません。
BlockstreamアプリおよびBlockstream Jadeは、現在進行中のNPM JavaScriptサプライチェーン攻撃の影響を受けていません。
いつも通り、送金先・受取先のアドレスは必ず確認してください。
こんにちは!yutaro です。
多くの皆さんが心配されているように「大規模なNPMサプライチェーン攻撃」が発生しましたが、幸いなことに早期発見され、現時点で沈静化に向かっているようです。
そこで本日の「BTCインサイト」では、今回の一連の騒動とそこから得られる実務ガイドについて、有識者のX投稿やYouTubeを要約・編集してお届けいたします。
JavaScriptエコシステムを揺るがしたNPMサプライチェーン攻撃の全貌
Don’t trust, verify! ──安全が確認されたビットコインウォレットと実務ガイド
【スポンサー】Lightning Base
Lightning Base でTrezor Safe3とTrezor Safe5の取り扱いを開始しました。
オンラインで匿名配送、もしくは Tokyo Bitcoin Base の物理ショップにて対面で購入することが可能です!
Trezorはハードウェアウォレットのパイオニア企業とも知られ、最新のモデルはセキュアエレメントに対応、ビットコインを含む多くのコインの保管が可能です。
Lightning Baseでは現状国内唯一のTrezorの正規代理店として、国内ユーザー向けに匿名配送で安全、迅速に商品をお届けします。
ビットコインの長期保管にはビットコインに特化した最新ウォレットJade Plusを、アルトコインも同時に管理したいユーザーはTrezorをお勧めします。
TrezorやJadeの購入はLightning Baseからどうぞ。
JavaScriptエコシステムを揺るがしたNPMサプライチェーン攻撃の全貌
(※本記事は、Charles Guillemet氏のX投稿およびJD氏のニュースレター報告をもとに要約・編集したものです)
攻撃の発端:開発者アカウントの乗っ取り
人気開発者 qix
のNPMアカウントがフィッシングメール経由で乗っ取られました。
攻撃者はこれを利用して、chalk
や strip-ansi
など、JavaScriptエコシステムの基盤的パッケージに不正コードを仕込みました。
改ざんされたパッケージはすでに 週10億回以上ダウンロードされている 計算になり、広範囲に影響を及ぼすリスクがありました。
悪意あるコードの仕組み:暗号資産を狙う「クリプトクリッパー」
攻撃の中核は「クリプトクリッパー」と呼ばれるマルウェアです。
アドレスすり替え(受動型攻撃)
fetch
やXMLHttpRequest
を改ざんし、送受信データを盗み見る。ビットコイン、イーサリアム・ソラナなど複数チェーンのアドレスを保持し、視覚的に似た攻撃者アドレスへすり替える。
トランザクション改ざん(能動型攻撃)
ブラウザやウォレット拡張機能を検知すると、送金前に宛先を攻撃者のアドレスへ差し替え。
利用者が確認画面で細部を見落とすと、そのまま資金を奪われる。
偶然の発覚:ビルドエラーが警告に
攻撃は非常に巧妙でしたが、古いNode.js環境で fetch
関数が未定義だったためビルドが失敗。
この 小さなエラー が原因でマルウェアの存在が露見し、早期に発覚しました。
もし最新環境で実行されていれば、検知が遅れ被害が拡大していた可能性があります。
影響範囲と現在の対応
影響を受けた主なパッケージとダウンロード数(週次)は以下の通りです:
chalk
: 約3億回strip-ansi
: 約2.6億回color-convert
: 約1.9億回error-ex
: 約4,700万回
すでに多くのパッケージから悪意あるコードは削除され、NPMセキュリティチームと開発者が対応中です。
ただし、依存関係やlockfileに改ざん版が残っている可能性があるため、開発者は必ず監査を行う必要があります。
今後への教訓と推奨対応
今回の攻撃は、攻撃者のミスによって被害が最小限に留まりましたが、ソフトウェアサプライチェーンの脆弱性を浮き彫りにしました。
開発者が取るべき対策
package.json
のoverrides
機能を使い、安全なバージョンを固定するCI/CD環境で依存関係の厳格なチェックを導入する
不審なコードやビルドエラーを軽視せず、早期に調査する
ユーザーが取るべき対策
ハードウェアウォレットを利用し、署名前にアドレスを必ず確認する
ソフトウェアウォレットや取引所に資金を置き続けるリスクを認識する
今回のケースは「ほぼ失敗に終わった攻撃」でしたが、次回も同じように幸運が続く保証はありません。
開発者・ユーザーともに、セキュリティ意識を常に高めておくことが重要です。
(※原文は以下より)
Charles Guillemet氏(X投稿):https://x.com/P3b7_/status/1965094840959410230 / https://x.com/P3b7_/status/1965336272550899932
JD氏(Substack記事):https://x.gd/qQFLH
Don’t trust, verify! ──安全が確認されたビットコインウォレットと騒動で実務ガイド
(※本記事は、BTC Sessionss氏のX投稿およびYouTube動画をもとに要約・編集したものです)
教訓(何を“検証”すべきか)
最終確認はデバイス画面
送金前に、ハードウェア機器のスクリーンに表示される宛先アドレスと、あなたが意図した宛先をフル文字列で照合。1文字でも違えば署名しない。アプリの“土台”も検証対象
公式が「影響なし」と出していても、あなたの環境の依存関係(バージョン/ロックファイル)が安全とは限らない。
再インストール・ハッシュ検証・署名付き配布の確認を習慣化。運用フローでリスクを分散
高額送金はテスト送金(少額)→ 本送金の二段階。
取引用ホット(小額)と長期保管コールド(大部分)を物理的・論理的に分離。
可能ならPSBTやQR経由(エアギャップ)を活用し、接点を最小化。
影響なしと確認されたプロジェクト(現時点の公表ベース)
重要:以下は「今回のNPM攻撃の影響なし」等の発表・設計方針に基づく整理です。常に最新の公式アナウンスで再検証してください(Don’t trust, verify!)。
デスクトップ/クライアント
Sparrow(@SparrowWallet)
Wasabi(@wasabiwallet)
Electrum(@ElectrumWallet)
Specter(@SpecterWallet)
ハードウェア/DIY
Blockstream Jade (@BlockstreamJade)
COLDCARD(@COLDCARDwallet)
Foundation Passport(@FOUNDATIONdvcs)
Krux(@selfcustodykrux)
SeedSigner(@SeedSigner)
Bitcoin Keeper(@bitcoinKeeper_)
BitBox02(Shift)(@BitBoxSwiss)
Trezor(@Trezor)
neutron(@neutron__me)
モバイル/サービス・その他
Blockstream(Jade/Aqua 含む)(@Blockstream / @AquaBitcoin)
Nunchuk(@nunchuk_io)
BlueWallet(@bluewalletio)
Phoenix(@PhoenixWallet)
Cove(@covewallet)
Blitz Wallet(@BlitzWalletApp)
Bull Bitcoin(@BullBitcoin_)
追加のプロジェクトは、各公式Xアカウントの最新スレッドで随時確認を。
あなた自身でできる“Verify”チェックリスト
送金直前:
受取側が提示したアドレス(フル文字列)を控える
ハードウェア画面に表示された宛先と一文字ずつ照合
不一致なら署名しない/やり直す
環境健全性:
ウォレットの正規配布サイトから再取得(ストア偽装に注意)
署名・ハッシュでバイナリ検証(提供されている場合)
依存関係のロックファイル再生成、不要パッケージの削除
運用ルール:
高額はテスト送金 → 本送金
コールド保管はオフライン前提+バックアップ
受取時も“自分の受取アドレス”をデバイス画面で確認し共有
(※原文は以下より)