
悪意あるNPMパッケージが秘密鍵を窃取、Solanaユーザーの資産が盗難被害
TechFlow厳選深潮セレクト

悪意あるNPMパッケージが秘密鍵を窃取、Solanaユーザーの資産が盗難被害
悪意のあるオープンソースプロジェクトがバックドアを仕込んだNPMパッケージを導入し、ユーザーの秘密鍵を窃取した結果、Solanaウォレットの資産が盗まれた。
著者:Thinking
編集:Liz
背景概要
2025年7月2日、ある被害者がスローミスト(SlowMist)セキュリティチームに連絡し、自身のウォレット資産が盗まれた原因について分析支援を要請しました。事件の発端は、前日にGitHub上でホストされているオープンソースプロジェクト「zldp2002/solana-pumpfun-bot」を利用したことによるものでした。
分析プロセス
我々は直ちにこの事件の調査を開始しました。まず当該プロジェクトのGitHubリポジトリ(https://github.com/zldp2002/solana-pumpfun-bot)を確認したところ、Star数およびFork数が比較的高いものの、各ディレクトリ内のコードのコミット時期はすべて約3週間前に集中しており、明らかな異常が認められました。これは通常のプロジェクトには見られる継続的な更新履歴が欠如していることを示しています。

本プロジェクトはNode.jsベースであり、依存パッケージを分析した結果、「crypto-layout-utils」というサードパーティ製パッケージが導入されていることが判明しました。

さらに調査を進めると、この依存パッケージはすでにNPM公式サイトから削除されており、package.jsonに記載されたバージョンはNPM公式の履歴にも存在しませんでした。このことから、当該パッケージは疑わしいコンポーネントである可能性が高いと判断され、現在ではNPM公式レジストリからのダウンロードは不可能となっています。では、被害者はどのようにしてこの悪意ある依存パッケージを入手できたのでしょうか?

プロジェクトをさらに深く調査した結果、package-lock.jsonファイル内に重要な手がかりが見つかりました。攻撃者は「crypto-layout-utils」のダウンロードリンクを https://github.com/sjaduwhv/testing-dev-log/releases/download/1.3.1/crypto-layout-utils-1.3.1.tgz に書き換えていたのです。

我々はこの疑わしい依存パッケージ「crypto-layout-utils-1.3.1」をダウンロードし、解析を行いました。その結果、このコードは「jsjiami.com.v7」を使用して高度に難読化されていたため、分析が困難になっていました。


難読化を解除した結果、これは明らかに悪意のあるNPMパッケージであることが確認されました。「crypto-layout-utils-1.3.1」には、被害者のPC上のファイルをスキャンする機能が実装されており、ウォレットや秘密鍵に関連する内容またはファイルを検出した場合、攻撃者が管理するサーバー(githubshadow.xyz)にアップロードするようになっています。
悪意あるNPMパッケージによる機密ファイルおよびディレクトリのスキャン:

悪意あるNPMパッケージによる秘密鍵情報を含むファイルのアップロード:

さらに攻撃手法を調査したところ、プロジェクト作成者(https://github.com/zldp2002/)は複数のGitHubアカウントを制御しており、それらを使って悪意あるプロジェクトをForkし、悪意あるプログラムを配布すると同時に、Fork数とStar数を水増しすることで他のユーザーの注目を集め、より広範な拡散を図っていた可能性があります。

我々は、同様の悪意ある行動を示す複数のForkプロジェクトも特定しました。その一部のバージョンでは、別の悪意あるパッケージ「bs58-encrypt-utils-1.0.3」が使用されていました。
この悪意あるパッケージは2025年6月12日に作成されており、攻撃者はこの時点で既に悪意あるNPMパッケージおよび悪意あるNode.jsプロジェクトの配布を開始していたと考えられます。しかし、NPMが「bs58-encrypt-utils」を削除した後、攻撃者は今度はNPMパッケージのダウンロードリンクを差し替える方法に切り替えたとみられます。

また、我々はチェーン上におけるマネーロンダリング防止・追跡ツール「MistTrack」を用いて分析した結果、攻撃者の一つのアドレスが盗んだコインを取引所FixedFloatへ送金していたことも確認できました。

まとめ
今回の攻撃では、攻撃者は正当なオープンソースプロジェクト(solana-pumpfun-bot)を装い、ユーザーに悪意あるコードのダウンロードと実行を誘導しました。プロジェクトの人気を高めるという偽装工作のもと、ユーザーは全く警戒せずに悪意ある依存関係を持つNode.jsプロジェクトを実行してしまい、結果としてウォレットの秘密鍵が漏洩し、資産を盗まれる事態となりました。
この一連の攻撃チェーンは、複数のGitHubアカウントによる協調的かつ大規模な展開により、信頼性を高め、非常に巧妙な欺瞞を可能としています。さらに、社会工学的手法と技術的手法を組み合わせた攻撃は、組織内部においても完全な防御が極めて困難です。
我々は、開発者および一般ユーザーに対して、出所が不明なGitHubプロジェクトには極めて高い警戒を払うよう強く推奨します。特にウォレットや秘密鍵を取り扱う場面ではなおさらです。どうしても実行やデバッグが必要な場合は、独立した環境で、機密データを持たないマシンを使用することをお勧めします。
悪意ある依存パッケージに関する情報
悪意あるNode.jsプロジェクトのGitHubリポジトリ:
2723799947qq2022/solana-pumpfun-bot
2kwkkk/solana-pumpfun-bot
790659193qqch/solana-pumpfun-bot
7arlystar/solana-pumpfun-bot
918715c83/solana-pumpfun-bot
AmirhBeigi7zch6f/solana-pumpfun-bot
asmaamohamed0264/solana-pumpfun-bot
bog-us/solana-pumpfun-bot
edparker89/solana-pumpfun-bot
ii4272/solana-pumpfun-bot
ijtye/solana-pumpfun-bot
iwanjunaids/solana-pumpfun-bot
janmalece/solana-pumpfun-bot
kay2x4/solana-pumpfun-bot
lan666as2dfur/solana-pumpfun-bot
loveccat/solana-pumpfun-bot
lukgria/solana-pumpfun-bot
mdemetrial26rvk9w/solana-pumpfun-bot
oumengwas/solana-pumpfun-bot
pangxingwaxg/solana-pumpfun-bot
Rain-Rave5/solana-pumpfun-bot
wc64561673347375/solana-pumpfun-bot
wj6942/solana-pumpfun-bot
xnaotutu77765/solana-pumpfun-bot
yvagSirKt/solana-pumpfun-bot
VictorVelea/solana-copy-bot
Morning-Star213/Solana-pumpfun-bot
warp-zara/solana-trading-bot
harshith-eth/quant-bot
悪意あるNPMパッケージ:
crypto-layout-utils
bs58-encrypt-utils
悪意あるNPMパッケージのダウンロードリンク:
https://github.com/sjaduwhv/testing-dev-log/releases/download/1.3.1/crypto-layout-utils-1.3.1.tgz
悪意あるNPMパッケージがデータを送信するサーバー:
githubshadow.xyz
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














