人気のfast_logライブラリを装った悪意ある2つのRustクレートが発見され、開発者の環境からSolanaおよびEthereumのプライベートキーを窃取していたことが明らかになりました。これらの偽装クレートは、検出を回避するために正規のロギング機能を含んでいましたが、隠されたルーチンがソースファイルをスキャンしてウォレットキーを探し出し、ハードコードされたコマンド&コントロール(C2)エンドポイントに流出させていました。これら2つのクレートは、crates.ioから削除されるまでに合計8,424回ダウンロードされていました。
2025年5月25日、脅威アクターはfaster_logバージョン1.7.8とasync_printlnバージョン1.0.1をcrates.ioにアップロードしました。これらは、正規のfast_logパッケージのREADME、リポジトリリンク、および命名規則を模倣していました。Socketの脅威リサーチチームは、rustgurumanとdumbnbasedというエイリアスで公開されたfaster_logとasync_printlnという2つの偽造パッケージを特定しました。SocketのAIスキャナーは、タイポスクワッティングの兆候とデータ流出コードの存在を検出し、faster_logを既知のマルウェアとしてフラグ付けしました。Socketがこのインシデントを報告してから数時間以内に、Rust Security Response WGおよびRust Foundationと連携して運営されているCrates.ioのセキュリティチームは、分析のために悪意あるファイルを保全し、さらなるダウンロードを阻止するためにリストを削除し、rustgurumanおよびdumbnbasedのパブリッシャーアカウントをロックし、調査と是正措置を詳述した公式勧告を公開しました。
**攻撃の仕組み**
これらのクレートは、基本的なロギングライブラリとしてコンパイルされ機能しますが、以下の機能を持つ「パッカー」モジュールを含んでいました。
* Rustソースファイルから以下の3つのパターンをスキャンします。
* 生のキーマテリアルをエンコードする可能性のある角括弧で囲まれたバイト配列。
* Solanaキー形式に一致する32〜44文字のBase58文字列。
* Ethereumプライベートキーに典型的な0xプレフィックス付きの64進数文字列。
* 各一致をそのタイプ、正確な値、ファイルパス、行番号とともにJSONペイロードにパッケージ化します。
* Cloudflare Workersのサブドメイン(hxxps://mainnet.solana-rpc-pool.workers.dev/)に、Solana RPCエンドポイントを装ったHTTP POSTリクエストを介してペイロードを送信します。
悪意あるクレートは標準ライブラリと人気のreqwest HTTPクライアントのみに依存しているため、Linux、macOS、Windowsで同様に動作し、アプリケーションの実行時およびCIパイプライン内で実行できます。Crates.ioでfast_logを検索すると、正規のfast_logと並んで、偽装されたfaster_logとasync_printlnが表示されていました。正規のfast_logのメタデータをコピーし、コアロギング動作を維持することで、攻撃者は開発者による偶発的な受け入れの可能性を高めていました。
**推奨事項と展望**
このインシデントは、最小限のコード変更と名前の偽装によって引き起こされるサプライチェーン攻撃のリスクが高まっていることを浮き彫りにしています。一見無害なライブラリに隠された小さな悪意あるルーチンでも、開発者のワークステーションやCI環境を危険にさらす可能性があります。組織はこれをサプライチェーンセキュリティインシデントとして扱い、直ちに以下の措置を講じるべきです。
* プロジェクトおよびビルドシステムからfaster_logまたはasync_printlnのインストールをすべて削除し、関連するCI実行を一時停止します。
* Ethereumプライベートキー、Solanaシード、および引用符で囲まれた文字列またはバイト配列として表現されるその他の資格情報を含む、ソースリポジトリ、テストフィクスチャ、または構成ファイルに表示される可能性のあるすべてのシークレットをローテーションします。
* このキャンペーンで観察されたパターンを検出するために、開発者のラップトップ、CIサーバー、およびリポジトリホスティングシステム全体でファイルレベルのシークレットスキャンを実装します。
* 開発およびCIネットワークからのエグレス(外部への送信)トラフィックを制限し、信頼できる送信先のみを許可します。
* キーハーベストパターンに一致する「item_type」フィールドを持つJSONペイロードを含む異常なエンドポイントへのHTTP POSTに対する検出ルールを作成します。
将来の偽装パッケージから防御するために、セキュリティチームは多層的なソリューションを展開できます。
* Socket GitHub Appのようなツールを使用したリアルタイムのプルリクエストスキャンにより、マージ前に悪意あるコードをフラグ付けします。
* 偽装や危険な動作について警告するCLIスキャナーを使用したインストール前チェック。
* crates.ioページに注釈を付け、疑わしいメタデータやタイポスクワッティングの試みを強調表示するブラウザ拡張機能。
* 言語モデルやIDEプラグインからの悪意あるパッケージの提案を傍受するAI支援コーディング保護。
エコシステムが成熟するにつれて、攻撃者はその手法を洗練させ、ビルドスクリプトやマクロに悪意あるロジックを埋め込んだり、C2エンドポイントをローテーションしたり、ジオフェンシングを利用してデータ流出を通常のRPCトラフィックと混同させたりするでしょう。警戒、厳格なシークレット衛生、および多層的な防御は、現代の開発サプライチェーンを保護するために不可欠です。
元記事: [https://gbhackers.com/malicious-rust-crates-impersonate-fast_log/](https://gbhackers.com/malicious-rust-crates-impersonate-fast_log/)