概要:ブロックチェーンを悪用する新手法
Golangベースの情報窃取マルウェア「SharkStealer」が、コマンド&コントロール(C2)通信を隠蔽するために、Binance Smart Chain(BSC)Testnetを秘密のデッドドロップメカニズムとして利用していることが確認されました。このマルウェアは「EtherHiding」パターンを採用し、Ethereum RPCコールを通じてスマートコントラクトから暗号化されたC2詳細を取得し、メモリ内でペイロードを復号化して通信を開始します。これにより、正当なブロックチェーントラフィックに紛れ込み、検出を困難にしています。
従来のC2チャネルは、専用のドメインやIPアドレスに依存しており、これらは特定されればシンクホール化されたりブロックされたりする可能性があります。しかし、SharkStealerはこの手法を回避し、BSC Testnetノードに対してeth_callリクエストを発行することで、回復力のあるリポジトリとして機能するスマートコントラクトに問い合わせを行います。
EtherHidingの仕組み
SharkStealerのEtherHiding実装は、以下の簡潔なワークフローに従います。
- RPCインタラクション:マルウェアはBSC TestnetのHTTP RPCエンドポイント(例:
https://data-seed-prebsc-1-s1.binance.org:8545
)に接続し、指定されたコントラクトアドレスに対してeth_callメソッドを呼び出します。 - データ取得:スマートコントラクト関数は、16バイトの初期化ベクトル(IV)とAES-CFBで暗号化されたC2ペイロードの2つの要素からなるタプルを返します。
- メモリ内復号化:SharkStealerにハードコードされたAESキーが、取得したIVと組み合わされてAES-CFB復号化を実行し、C2ドメインまたはIPアドレスを含む平文を抽出します。
- C2接続:復号化されたエンドポイントに対してネットワーク接続を確立し、侵害されたホストからデータを窃取する準備をします。
この手法により、攻撃者は重要な通信データの保存をブロックチェーンにオフロードし、使い捨てのWebインフラへの依存を減らします。これにより、テイクダウン操作が複雑化します。C2を妨害するには、ブロックチェーン取引を傍受するか、スマートコントラクトを無効化する必要があり、これにはブロックチェーンオペレーターやノードプロバイダーとの調整が求められます。
検出と対策:IoCと監視の重要性
セキュリティチームは、潜在的なSharkStealer感染を調査する際に、以下の侵害の痕跡(IoC)に注意を払う必要があります。
- BSC Testnet RPCエンドポイント:
https://data-seed-prebsc-1-s1.binance.org:8545
- スマートコントラクトアドレス:
0xE7E24F1A3D9C5B7E8A6D2F4C3B9A8E5F1D2C3B4
- 埋め込みAESキー(16進数):
0123456789ABCDEF0123456789ABCDEF
- 復号化方法:返されたIVを使用したAES-CFB
- サンプルC2ドメイン:
attacker-c2.example.com
- サンプルC2 IP:
198.51.100.23
ネットワークログを監視する際には、特に単一のコントラクトアドレスへの繰り返しの呼び出しなど、eth_callリクエストの異常なパターンがアラートをトリガーするはずです。ホストベースの検出では、YARAルールを活用して、SharkStealerバイナリ内のハードコードされたAESキーや対応する復号化ルーチンを特定できます。
ブロックチェーン上にデータが存在するため、アナリストは悪意のある取得と正当なユーザーアクティビティを区別することがより困難になります。これは、公開台帳インフラストラクチャに対する悪用の傾向が高まっていることを示しています。ブロックチェーンは検閲耐性のあるストレージとグローバルな可用性を提供し、スマートコントラクトを普遍的にアクセス可能なデッドドロップに変えています。防御側が特定の悪意のあるコントラクトアドレスをターゲットとするeth_callパターンを監視しない限り、これらの呼び出しは正当な分散型アプリケーション(dApp)のインタラクションと区別できません。