「Solana FakeFix」キャンペーンの最新情報が明らかになり、パッケージレジストリを悪用して開発者の機密情報を盗む、組織的なサプライチェーン攻撃の全容が浮かび上がりました。
このキャンペーンは、16本の悪意あるnpmパッケージと4本のPyPIパッケージ(関連活動を含めると計25本)で構成されています。これらはSolanaのツール群を装い、タイポスクワットによる名称を使用して、インストール時・インポート時に実行されるコードを通じ、ウォレット鍵・クラウド認証情報・ソース管理トークン・SSHキー・環境変数などの機密情報を収集していました。
攻撃者はソーシャルエンジニアリングと開発者が抱える課題を巧みに利用しました。複数のnpmパッケージは、@solana-labs/web3.js、@solana-labs/spl-toke、solana-web3-stable、solana-rpc-clientといった正規のSolanaエコシステム名に酷似した名前を使用し、「安定ビルド版」の修正パッチやコミュニティフォークとして自らを偽装していました。
脅威アクターは「PassWord1337」というアカウントを使ってGitHubのIssueにスパムを投稿し、既存パッケージの代替品として自作パッケージを宣伝。npmのアンインストール・インストールコマンドを提示してパッケージを乗り換えるよう誘導していました。
この手口は特に、依存関係の問題に悩む開発者やメンテナーを標的にしており、開発者やCIパイプラインが悪意あるライフサイクルフックを含むインストール処理を実行してしまう可能性を高めていました。
初期の配布手法は、npmのpostinstallスクリプトとPyPIのインポート時コード実行に依存していました。初期のnpm亜種は、postinstallフックを通じてインストール中に攻撃者が制御するJavaScriptを実行するだけで、ランタイムのインポートは不要でした。一方、Python亜種は_init_.pyにペイロードを配置し、単純なimport操作だけで情報収集と永続化が開始される仕組みになっていました。
収集対象となった情報は、開発者が日常的に扱う機密情報全般に及びます。具体的には、Solanaのキーペア(~/.config/solana/id.json、~/.solana/id.json)、ウォレットファイル、.envファイル、SSHプライベートキー、AWSの認証情報、そしてKEY、SECRET、MNEMONIC、TOKEN、AWS、GITHUB、CIといった名前を含む環境変数が対象となっていました。
窃取した情報はTelegramのC2チャンネルを通じて外部に送信されており、ボットトークンとチャットIDがハードコードされていました。後期の亜種では、インタラクティブなバックドアコマンド(/keys、/ssh、/env、/wallet、/sh、/cmd、/dieなど)、サンドボックス検知、トークン検証、自己更新機能も実装されていました。
JFrog Security Researchは最近、Solana FakeFixを特定しました。これはSolana開発者を標的とした、20本の悪意あるnpmおよびPyPIパッケージによるキャンペーンです。
このキャンペーンは、単純なバックドアからトロイの木馬化されたライブラリへと進化を遂げています。後期のnpmパッケージは、正規に見えるSolana JavaScriptバンドルを大部分そのまま含みながら、通常のエクスポート文やソースマップマーカーの後に悪意あるコードを追記していました。これにより、簡単なテストでは正規のパッケージに見える一方、内部には隠密な情報窃取の経路が維持されていました。
Solana FakeFixキャンペーンの詳細
ある亜種では、SolanaのRPCエンドポイントを再設定し、攻撃者が管理するアドレスに資金を送信することで、RPCの改ざんと資金の横領を試みていました。
攻撃者は複数のプロジェクトにまたがる9件のIssueを開き、@solana-labs/web3.jsを@solana/web3.js v2のコミュニティ管理によるドロップイン代替品として宣伝していました。
別のパッケージ「solana-mev-bot」は、暗号資産分野でよく見られるソーシャルエンジニアリングを活用していました。MEVボットを装い、ユーザーに秘密鍵の貼り付けを促すことで、アカウントの資金を引き出すために必要な認証情報を直接窃取する手口を使っていました。
JFrogのレポートでは、関連する別のキャンペーンについても詳述されています。「thermonuclear」というアカウントによってアップロードされた5本のnpmパッケージで構成される、CMSのWindowsローダーキャンペーンです。
これらのパッケージは、インストール時のフックを使ってPowerShellスクリプトをドロップ・実行し、Denoのインストールまたは起動、リモートJavaScriptの取得、Windowsを標的としたローダーやEXEドロッパーの起動を行っていました。
TelegramのAPIトラフィック、不審なRPCリダイレクト、記載されたホストからのDeno実行、EXEのダウンロードURLについて、ログを検索することをお勧めします。
このローダーは、動的な第2段階ペイロードの取得、レジストリのRunキーによる永続化、リモートC2サーバーとの通信をサポートしており、攻撃者はパッケージ側のローダーを変更することなくペイロードを入れ替えることができます。
対策は徹底的に行う必要があります。具体的には、影響を受けたパッケージを開発者のマシン・CIイメージ・内部キャッシュから削除すること、侵害された可能性があるSolanaウォレットとキーペアを監査・ローテーションすること、SSHキー・クラウドアクセスキー・トークンをローテーションすること、そしてパッケージ削除だけに頼らず、侵害されたCIランナーを信頼できるイメージから再構築することが求められます。
さらに、レジストリのセキュリティ対策も強化してください。インストール時のネットワークアクセスやライフサイクルスクリプトを高リスクとして扱い、名前が似通ったパッケージを精査し、重要なSDK依存関係に対してはプロベナンス(来歴)とメンテナーの確認を必須とすることが重要です。
翻訳元: https://gbhackers.com/solana-fakefix-campaign/