こんにちは、ブロックチェーン開発者とミームトークン愛好家の皆さん!もしあなたが dApp を開発していたり、Ethereum や他の EVM 対応チェーン上で次のバイラルなミームコインをローンチしようとしているなら、今クリプトコミュニティで話題になっている緊急のセキュリティ警報を必ず確認してください。
暗号系のコメント投稿者で計算機科学者の MartyParty (@martypartymusic) が X(旧 Twitter)である衝撃的な告発を投下しました。彼のスレッドによれば、巧妙な JavaScript のサプライチェーン攻撃についてで、開発者はビルドを直ちに確認し、侵害された NPM パッケージをロールバックするよう警告しています。ここではわかりやすく、実行可能な形で段階的に整理します。
このサプライチェーン攻撃って何が起きているの?
サプライチェーン攻撃とは、多くの開発者が頼りにしている信頼されたツールやライブラリに攻撃者が悪意あるコードを仕込み、それがプロジェクト全体に広がる手法です。今回の被害対象は NPM パッケージの error-ex で、JavaScript アプリのエラーハンドリングを改善する便利な小さなライブラリです。週ごとのダウンロード数が数百万にのぼるほど人気があるため、攻撃者にとって格好の標的になっています。
MartyParty の投稿によると、error-ex のバージョン 1.3.2 には高度に難読化されたコードが含まれており(目的を隠すためにコードがスクランブルされている)、index.js の 9 行目あたりから掘り下げると "checkethereumw" という疑わしい関数が見つかります。これは Ethereum のウォレットをスキャンし、EVM 環境で資金を巻き上げるようなマルウェアに見えます。共有されたコードスニペットは次の通りです:
javascript
const _0x112fa8=_0x180f;(function(_0x13c8b9,_0_35f660){const _0x15b386=_0x180f,_0x66ea25=_0x13c8b9();while(!![]){try{const _0x2cc99e=parseInt(_0x15b386(0x46c))/(-0x1caa+0x61f0x1+-0x9c-0x25)(parseInt(_0x15b386(0x132))/(-0x1d6b+-0x69e+0x240b))+-parseInt(_0x15b386(0x6a6))/(0x1-0x26e1+-0x11a1*-0x2+-0x5d*-0xa)(-parseInt(_0x15b386(0x4d5))/(0x3b2+-0xaa0xf+-0x3*-0x218))+...
// And a ton more unreadable lines
怖い話ですよね。攻撃者はおそらく fetch 呼び出しを使って盗んだデータを自分のサーバーに送信していたはずです。MartyParty は jdstaerk の詳細な Substack 記事をリンクしており、そこで彼らはビルド失敗('fetch' に関する ReferenceError)を通じて問題を発見した経緯を説明しています。Substack の記事ではバージョン番号に若干の違いが記載されていますが、核心は同じで:このマルウェアは dApp のように暗号関連のセットアップを標的にしています。
驚くべきダウンロード数:どれほど広範囲に影響があるのか?
過去 7 日間における error-ex のダウンロード数を見てみてください—MartyParty が共有したスクリーンショットは状況を如実に示しています:
| バージョン | ダウンロード数(過去7日間) |
|---|---|
| 1.3.2 | 46,708,538 |
| 1.3.1 | 442,092 |
| 1.3.0 | 26,598 |
| 1.2.0 | 110 |
| 1.1.2 | 12 |
危険なバージョンのダウンロードが 4,670 万回超?これは尋常ではなく、多くのプロジェクトが影響を受けうることを示しています。もしあなたの React ベースの dApp やミームトークンのフロントエンドがこのパッケージを(直接または間接的に)取り込んでいるなら、露出している可能性があります。
ミームトークン開発者とブロックチェーン開発者にとってなぜ重要なのか
ミームトークンはハイプとコミュニティ、素早いローンチに依存することが多く、Ethereum、Base、Polygon、Binance Smart Chain といった EVM チェーン上で作られることが一般的です。多くのプロジェクトは UI に React などの JavaScript フレームワークを使い、NPM 依存関係を取り込みます。もし開発マシンや CI/CD パイプラインが悪質なバージョンをインストールしてしまえば、攻撃者は秘密鍵を盗んだりウォレットを空にしたり、プロジェクト全体を乗っ取ることが可能になります。
たとえばホットな新しいミームコインをローンチした直後に、日常的なエラーハンドリング用ライブラリの隠しバックドアで資金が消えたらどうしますか?この攻撃は Ethereum に特定のものですが、任意の EVM チェーンに適応可能であり、ミームトークンの作成者には大きなリスクをもたらします。スマートコントラクトのセキュリティだけでなく、開発ツールの安全性も同様に重要だという教訓です。
今すぐプロジェクトを守るための手順
慌てる必要はありませんが、迅速に行動してください。MartyParty の助言は明確です:もし error-ex を使用している dApp 開発者であれば、直ちに 1.3.1 にロールバックしてアプリを再ビルドしてください。簡単なガイドは次の通りです:
依存関係を確認する:プロジェクトで
npm ls error-exを実行して、使用中のバージョンを確認します。パッケージをロールバックする:
package.jsonを更新するか、NPM の overrides を使って安全なバージョンに固定します。Substack の例(ツイートの推奨に合わせて調整):json
{
"overrides": {
"error-ex": "1.3.1"
}
}その後、
node_modulesとpackage-lock.jsonを削除し、npm installを実行します。より安全なインストール手法に切り替える:パイプラインでは
npm installの代わりにnpm ciを使用してロックされたバージョンに固着し、不意なアップグレードを避けます。定期的に監査する:
npm audit、Snyk、Dependabot のようなツールで脆弱性スキャンを実行しましょう。コードレビュー時にロックファイルの変更を注意深く確認してください。
より詳細な対処法については、完全な Substack 記事 と error-ex の NPM ページ を参照してください。
まとめ:クリプトのジャングルでは警戒を怠るな
この事件はオープンソースエコシステムにおける脆弱な信頼関係を浮き彫りにします—1 アカウントの侵害(今回のケースではおそらくフィッシングによる)が数十億回のダウンロードにまで波及しかねません。ミームトークンの作成者にとって、シンプルな pump.fun クローンをコーディングしているときでも、セキュリティを最優先に扱うべきだという警鐘です。
警報を鳴らしてコミュニティの安全を保つために行動した MartyParty に感謝します。もし被害に遭った、あるいは有益な情報がある場合はコメントで共有してください。ブロックチェーンの世界では知識が力であり、セキュリティこそが最高のミームです。どうか安全に行動してください!
ミームトークンが初めてであったり、ブロックチェーンに関するさらなる知見を得たい場合は、Meme Insider の knowledge base をご覧ください。