著者: 考える
編集者:リズ
背景概要
2025年7月2日、ある被害者がSlowMistセキュリティチームに連絡し、ウォレット資産の盗難原因の分析支援を求めました。この事件は、被害者が前日にGitHubでホストされていたオープンソースプロジェクト(zldp2002/solana-pumpfun-bot)を使用したことが原因で、その後、暗号化された資産が盗まれました。
分析プロセス
私たちは直ちにこのインシデントの調査を開始しました。まず、プロジェクトのGitHubリポジトリ(https://github.com/zldp2002/solana-pumpfun-bot)にアクセスしました。スターとフォークの数は比較的多いものの、各ディレクトリへのコード投稿時期が過去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に被害者のコンピュータファイルをスキャンするロジックを実装していました。ウォレットや秘密鍵に関連するコンテンツやファイルが見つかった場合、それらは攻撃者が管理するサーバー(githubshadow.xyz)にアップロードされます。
悪意のある NPM パッケージは機密ファイルとディレクトリをスキャンします。

悪意のある NPM パッケージは、秘密鍵を含むコンテンツまたはファイルをアップロードします。

攻撃手法の調査を継続しています。プロジェクト作者(https://github.com/zldp2002/)は、複数のGitHubアカウントを所有し、悪意のあるプロジェクトをフォークして悪意のあるプログラムを配布している疑いがあります。同時に、プロジェクトのフォーク数とスター数を増やすことで、より多くのユーザーの注意を惹きつけ、悪意のあるプログラムの配布範囲を拡大しようとしています。

また、同様の悪意のある動作をする複数の Fork プロジェクトも特定しました。その一部は別の悪意のあるパッケージ bs58-encrypt-utils-1.0.3 を使用していました。
悪意のあるパッケージは2025年6月12日に作成されました。攻撃者はこの時点で既に悪意のあるNPMおよび悪意のあるNode.jsプロジェクトの配布を開始していたと推測されます。しかし、NPMがbs58-encrypt-utilsを削除した後、攻撃者は配布用のNPMパッケージのダウンロードリンクを置き換えました。

さらに、オンチェーンのマネーロンダリング対策および追跡ツールであるMistTrackを使用して分析したところ、攻撃者のアドレスの1つがコインを盗んだ後、その資金を取引プラットフォームFixedFloatに送金したことが分かりました。

要約する
この攻撃では、攻撃者は正当なオープンソースプロジェクト(solana-pumpfun-bot)を装い、ユーザーを騙して悪意のあるコードをダウンロードさせ、実行させました。プロジェクトの人気を高めるという名目で、ユーザーは何の警告もなく、悪意のある依存関係を含むNode.jsプロジェクトを実行しました。その結果、ウォレットの秘密鍵が漏洩し、資産が盗難されました。
攻撃チェーン全体は複数のGitHubアカウントが連携して行われるため、拡散範囲が拡大し、信頼性が高まり、非常に巧妙な欺瞞行為となります。同時に、この種の攻撃はソーシャルエンジニアリングと技術的手段の両方を駆使するため、組織内で完全に防御することは困難です。
開発者とユーザーは、特にウォレットや秘密鍵の操作に関しては、未知のGitHubプロジェクトに細心の注意を払うことをお勧めします。どうしても実行とデバッグが必要な場合は、機密データを含まない独立したマシン環境で実行とデバッグを行うことをお勧めします。
悪意のある依存パッケージに関する情報
悪意のある Node.js プロジェクトの GitHub リポジトリ:
2723799947qq2022/ソラナ・ポンプファン・ボット
2kwkkk/ソラナポンプファンボット
790659193qqch/ソラナポンプファンボット
7arlystar/solana-pumpfun-bot
918715c83/ソラナ・ポンプファン・ボット
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/ソラナポンプファンボット
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/ソラナ・ポンプファン・ボット
wj6942/solana-pumpfun-bot
xnaotutu77765/solana-pumpfun-bot
yvagSirKt/solana-pumpfun-bot
VictorVelea/solanaコピーボット
Morning-Star213/Solana-pumpfun-bot
ワープザラ/ソラナトレーディングボット
ハーシス・イーサ/クオントボット
悪意のある NPM パッケージ:
暗号レイアウトユーティリティ
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
