PolarEdge C2通信:カスタムバイナリプロトコルとカスタムTLSサーバーによる脅威

PolarEdgeボットネットの出現

2025年初頭、セキュリティ研究者たちは、PolarEdgeと名付けられた高度なボットネットインプラントを発見しました。これは、独自のTLSサーバーと独自のバイナリプロトコルに依存して、認証なしのコマンド&コントロール(C2)操作を実行します。

PolarEdgeは2025年1月に初めて確認されました。Ciscoルーターを監視するハニーポットが、CVE-2023-20118を悪用する不審なトラフィックを捕捉したことがきっかけです。攻撃者は、User-Agentヘッダーを含む細工されたHTTPリクエストを使用してリモートコード実行(RCE)を達成し、「q」という名前のFTPシェルスクリプトをダウンロードして、未公開のインプラントを展開しました。

広範な攻撃キャンペーン

2月10日には、同じ脆弱性に対する2回目の攻撃が観測され、今回はPolarEdgeバックドアをインストールするスクリプトがダウンロードされました。その後の分析により、Asus、QNAP、Synologyルーターを標的とした追加のサンプルが発見され、広範なキャンペーンが展開されていることが示されました。

アーキテクチャとサーバーモードの挙動

分析対象の主要なサンプルはQNAP NASデバイスを標的としており、SHA-256ハッシュはa3e2826090f009691442ff1585d07118c73c95e40088c47f0a16c8a59c9d9082です。この1.6 MBのELF64バイナリは、ストリップされ、静的にリンクされていますが、難読化はされていません。しかし、複数のアンチ分析技術が実装されています。

引数なしで実行されると、インプラントはサーバーモードに入ります。具体的には、以下の動作を行います。

  • mbedTLSベースのTLSサーバーをポート49254で起動します。
  • 日次でホストのフィンガープリントをC2サーバーに送信します。
  • カスタムバイナリプロトコルを介して受信コマンドを待ち受けます。
  • 起動時に、wgetやcurlなどのユーティリティを移動または削除し、QNAP-CMS-WS CGIスクリプトの名前を変更します。これは、競合する脅威アクターからのアクセスを拒否するためと考えられます。

設定データはバイナリの最後の512バイトに存在し、3つのXOR暗号化されたセグメントに分割されています。これには、「Filter-file」パスマーカー、カスタムプロトコルトークン「fWbmufIFB」を含むTLSサーバーパラメータ、およびC2サーバーのリストが含まれます。

インプラントは、いくつかのハードコードされたマジックトークンと保存されたプロトコルトークンをチェックすることで、受信リクエストパケットを検証します。そして、HasCommandフラグがASCII 1に等しい場合、コマンドを実行し、追加のフレーミングや認証なしで生のコマンド出力を返します。

カスタムプロトコル、暗号化、およびアンチ分析

PolarEdgeのカスタムバイナリプロトコルは、.rodataセクションに埋め込まれた7つのトークンに依存しています。有効なリクエストは、固定のマジック値で始まり、続いて一意のトークン5「WbmufIFB」、2バイトのコマンド長、そしてコマンド文字列が続きます。最後に、set_ssl_client関数がC2にGETリクエストを送信します。サーバーがペイロードで応答した場合、それは/tmp/.qnax.shに書き込まれ、実行されます。

この設計により、インプラントバイナリを所有する認証されていない攻撃者は、侵害されたデバイス上で任意のシェルコマンドを実行できます。

バックドアは、設定とコードセクションを保護するために、1バイトのXORキー(0x11)と2つの回転暗号をセクション名に使用しています。さらに重要なことに、実行時に.init_rodataおよび.init_textセグメントを復号化するために、軽量のPRESENTブロック暗号をチェーンモードで統合し、TLS証明書、マジック値、およびコアルーチンを復元します。フィンガープリンティングのためのHTTP GETフォーマット文字列を隠蔽するために、追加のアフィン暗号とBase64デコードが使用されます。

動作中、専用のスレッドがデバイスの詳細(パブリックIP、MACアドレス、プロセスID、モジュールバージョン、フィルターファイルパス)を含む暗号化されたHTTP GETリクエストをC2に構築します。サーバーがペイロードで応答した場合、それは/tmp/.qnax.shとして保存され、実行されます。

フォレンジック分析を妨害するため、バックドアは正規のプロセス(例:igmpproxy、dhcpd)になりすまし、自身の/proc/<pid>ディレクトリを再マウントしようとします。また、親ディレクトリが削除された場合にインプラントを再起動するウォッチドッグ子プロセスも採用しています。

補助的な動作モード

サーバーモードに加えて、PolarEdgeはコネクトバックモードもサポートしています。このモードでは、TLSクライアントとして機能し、コマンドラインパラメータで指定されたファイルをダウンロードします。また、デバッグモードでは、暗号化されたアドレスとフィルターファイルの存在が提供された場合、C2リストをオンザフライで更新します。これらの補助機能は、研究者が通信を制御されたサーバーにリダイレクトして分析するのに役立ちました。

防御策と推奨事項

PolarEdgeの詳細なリバースエンジニアリングにより、カスタムTLSサーバーと認証されていないバイナリプロトコルを中心に構築された、高度にモジュール化され、回避性の高いバックドアであることが明らかになりました。その多層的な暗号化は設定とコードを保護し、アンチ分析対策と柔軟な動作モードはその洗練度を際立たせています。

IoTおよびNASデバイスが魅力的な標的であり続ける中、防御側は以下の対策を講じる必要があります。

  • 高ポートでの異常なTLSサービスを監視する。
  • コアユーティリティに対して整合性チェックを実施し、このようなインプラントを検出する。

元記事: https://gbhackers.com/polaredge-c2-communication/