※本記事は、https://www.secureworks.com/ で公開されている LAW ENFORCEMENT TAKES DOWN QAKBOT を翻訳したもので、 2023年8月29日執筆時点の見解となります。
2023年8月29日、米国法執行機関は、Qakbot ボットネット (別名 Qbot) のテイクダウンしたことを発表しました。 金銭を目的とした攻撃グループ、GOLD LAGOON は、2007年から Qakbot マルウェアを運用してきました。このモジュール型マルウェアは、ランサムウェア攻撃の支援など、数多くの機能をサポートしています。
Qakbot ボットネットを追跡している Secureworks® Counter Threat Unit™ (CTU) のリサーチャーは、テイクダウンに関わる操作を観測しました。 8月25日23時27分 (UTC)、CTU™ のリサーチャーは、感染したデバイスにシェル コードを配布する Qakbot ボットネットを検出しました。 このシェルコードは、ホスト上で稼働中の Qakbot プロセスを正常に終了させるコードを含むカスタム DLL (ダイナミック リンク ライブラリ) ファイルを展開します。
DLL は、Qakbot がホスト上のプロセス間でメッセージを送受信するために使用する名前付きパイプ経由で QPCMD_BOT_SHUTDOWN コマンドを送信するという巧妙な方法を使用しています。 Qakbot のパイプ名は、擬似乱数アルゴリズムを使用して生成されます。DLL は実行中のシステムの正しいパイプ名を生成するために同じアルゴリズムを使用してパイプ名を生成します。 その後、DLL は CallNamedPipeA を呼び出し、QPCMD_BOT_SHUTDOWN コマンドをパイプに送信します (図 1 を参照)。
図1. パイプ名を生成し、QPCMD_BOT_SHUTDOWN コマンドを送信するカスタム DLL (出典: Secureworks)
Qakbot には、挿入されたプロセス間でメッセージを送受信できる PipeServer() 関数があります (STAGER_1 モジュールを介して Web ブラウザから盗まれたデータを受信するなど)。 PipeServer() コマンドは 7 つあります (表 1 参照)。
コマンド番号 | 名称 |
---|---|
1 | QPCMD_EXEC_COMMAND |
4 | QPCMD_BOT_SHUTDOWN |
6 | QPCMD_GET_STAGER_1_BODY_MAIN |
7 | QPCMD_GET_STAGER_1_BODY_MAIN_SIZE |
8 | QPCMD_GET_STAGER_1_BODY_UPDATE |
14 | QPCMD_GET_STAGER_1_TYPE |
9 | QPCMD_GET_STAGER_1_BODY_UPDATE_SIZE |
表1. PipeServer() コマンド
QPCMD_BOT_SHUTDOWN コマンド (コマンド番号 4) を受信すると、「keep_alive」グローバル変数が 1 に設定されます (図 2 参照)。
図2. QPCMD_BOT_SHUTDOWN 後に keep_alive を 1 に設定する Qakbot (出典: Secureworks)
このグローバル変数が 1 に設定されると、Qakbot のメイン スレッドの実行が停止し、Qakbot プロセスが終了します (図 3 を参照)。
図3. keep_alive が 1 の場合 Qakbot が終了 (出典: Secureworks)
Qakbot は、ユーザーがシステムのシャットダウンまたは再起動を開始したことを検知すると、永続化処理を行います。 名前付きパイプを使用して Qakbot プロセスを終了させると、永続化処理を回避できます。 そのため、ホストを再起動しても Qakbot は実行されません。
CTU のリサーチャーは、Qakbot のバックエンド インフラストラクチャの監視を長年維持してきました。 DLL が感染の無力化を開始したのとほぼ同時に、CTU リサーチャーは、GOLD LAGOON のバックエンド インフラストラクチャが応答を停止し、一部のインフラストラクチャが置き換えられたことを観測しました。 感染ホストとやりとりするために、置き換えられたサーバーにはメッセージに署名する証明書が必要でした。 これらの証明書は、善意を持って取得し使用されたようです。
GOLD LAGOON のインフラストラクチャが応答しなくなったことと、Qakbot プロセスを終了させるためのペイロードの配布は、テイクダウンの取り組みを示していました。 このような強固な取り組みは、感染ホストの数を減少させ、GOLD LAGOON がボットネットの制御を取り戻そうとする試みを妨げます。