新型Rustマルウェア「ChaosBot」、Discord内にC2を隠蔽

はじめに

「ChaosBot」と名付けられた洗練されたRustベースのマルウェアが、そのコマンド&コントロール(C2)操作にDiscordプラットフォームを利用していることが明らかになりました。これは従来のボットネットとは異なり、正規のサービスを介して悪意のあるトラフィックを隠蔽するため、従来のセキュリティツールによる検出を著しく困難にしています。

Discordを悪用したC2の仕組み

ChaosBotは、まずDiscord APIで自身の認証情報を検証します。その後、被害者のコンピューター名にちなんだプライベートなテキストチャンネルを作成します。このチャンネルは、攻撃者がシェルコマンド、ダウンロード、スクリーンショット(scr)などのコマンドを直接送信できる、対話型の隠れたシェルとして機能します。被害者のマシンは、その結果を添付ファイルとしてチャンネルに返送します。

高度なアンチ分析技術

このマルウェアは、セキュリティ研究者の目を欺くために高度なアンチ分析技術を使用しています。具体的には、Windows Event Tracing for Windows(ETW)機能にパッチを適用し、仮想マシン(VM)のMACアドレスをチェックして、サンドボックス環境での分析を回避します。

二重の初期侵入経路

初期侵入は、主に以下の二つの経路で実行されます。

  • 認証情報の悪用: CiscoVPNと「serviceaccount」という過剰な特権を持つActive Directoryアカウントの侵害された認証情報が悪用されました。攻撃者はこのアクセスを利用して、Windows Management Instrumentation(WMI)を介してネットワーク全体にChaosBotを展開・実行しました。ChaosBotのペイロードは、msedge_elf.dllとして偽装され、正規のMicrosoft Edgeコンポーネントであるidentity_helper.exeに対してDLLサイドローディング攻撃が行われました。
  • フィッシングキャンペーン: もう一つの手口として、ChaosBotのオペレーターは、ベトナム国立銀行からの正規の通信に見せかけた悪意のあるWindowsショートカット(.lnk)ファイルを用いたフィッシングキャンペーンを展開しています。このショートカットは、PowerShellコマンドを実行してChaosBotマルウェアをダウンロード・実行すると同時に、無害なPDFドキュメントを開いて被害者を欺き、感染の隠蔽を図ります。このデコイPDFは、ベトナムの中央銀行からの公式な通信を模倣しており、金融機関向けの新しいコンプライアンス要件に関する正式な規制用語が含まれています。

見えないコマンドチャネルの詳細

ChaosBotはRustプログラミング言語で記述されており、APIインタラクションにはreqwestまたはserenityライブラリを利用しています。マルウェアはDiscordボットトークン、ギルド(サーバー)ID、チャンネルIDで設定され、プラットフォームの正規インフラストラクチャとのシームレスな統合を可能にしています。

マルウェアはまず、Discord APIへのGETリクエストでボットトークンを検証し、その後、脅威アクターのDiscordサーバー内に被害者のコンピューター名にちなんだ新しい専用チャンネルを作成します。その後、一般チャンネルに初期メッセージを送信し、オペレーターに新しい侵害を通知します。興味深いことに、既知の関連サーバーの一般チャンネルはすべて「常规」(中国語で「通常」または「一般」を意味する)と名付けられており、オペレーターが中国語版のDiscordを使用しているか、中国語を話すメンバーがいる可能性を示唆しています。

ChaosBotは継続的なループで動作し、被害者の専用Discordチャンネルで新しいメッセージ(コマンド)をチェックします。ラテラルムーブメントと偵察のための主要なコマンドは「shell」であり、PowerShellを介してコマンドを実行し、出力には強制的にUTF8エンコーディングが適用されます。コマンド実行後、結果(シェルコマンドの標準出力/エラー、スクリーンショット、ファイルなど)は、multipart/form-data形式を使用して添付ファイルとしてチャンネルに送り返され、攻撃者にDiscordを介したシームレスで対話的なシェル体験を提供します。

さらなる回避技術

ChaosBotは、検出と分析を回避するために洗練された技術を採用しています。新しい亜種は、ntdll!EtwEventWriteの最初の数命令をメモリ内でパッチ適用し、初期命令を「xor eax, eax」と「ret」に置き換えます。これにより、プロセスのETWテレメトリーが正常に無効化され、エンドポイント検出・対応(EDR)やサンドボックスの可視性が妨げられます。これは、多くの最新のセキュリティソリューションによってマルウェアが検出されずに動作することを可能にする重大な盲点です。

また、マルウェアはシステムのMACアドレスを、VMware(00:0C:29, 00:50:56, 00:05:69)やVirtualBox(08:00:27)などの既知の仮想マシンプレフィックスと照合します。一致が見つかった場合、マルウェアは実行を停止してサンドボックス環境での分析を回避し、オペレーターがセキュリティ研究の手法を認識し、検出を回避しようとしていることを示しています。

永続化と追加のバックドア

初期侵害後、脅威アクターは直ちに永続的なアクセスを確立することに注力しました。彼らは正規のfast reverse proxy(frp)ツールをnode.exeとして展開し、アジア太平洋(香港)地域のAmazon Web Services(AWS)IPを指す設定を行いました。攻撃者はまた、正規のVisual Studio Code Tunnelサービスを使用して追加のバックドアをセットアップしようと試みており、コマンド実行機能のために信頼されたクラウドサービス機能を実験し、活用しようとする積極的な取り組みが明らかになっています。

推奨される対策

組織は、この新たな脅威から防御するために、以下の対策を講じる必要があります。

  • すべての外部アクセスポイントと特権アカウントに多要素認証(MFA)を実装する。
  • Discord APIエンドポイントへの異常なHTTP/Sトラフィックを積極的に監視する。
  • 疑わしい場所(Publicユーザープロファイルディレクトリなど)からの不正なペイロード実行を防ぐために、アプリケーションのホワイトリスト化を強制する。
  • 定期的なフィッシング対策トレーニングを実施する。
  • メモリパッチ技術を検出するように設定されたEDRソリューションを導入する。

元記事: https://gbhackers.com/new-rust-malware/