QakBot:テイクダウン前の最終局面

図1
図 1

Qakbotは、QBot、QuakBot、Pinkslipbotなどの別名で知られ、2007年以来一貫して存在感を示し続けている複雑で高度なマルウェアです。その大きな影響は、70万台以上の被害者のコンピュータを感染させ、ランサムウェアの配備を指揮し、広範な経済的影響を引き起こしていることからも明らかです。このデジタル脅威の影響は世界中に及んでいます。8月29日、司法省とFBIが主導する「DuckHunt」と名付けられた世界的な協調作戦は、Qakbotの作戦を見事に破壊し、重要なマイルストーンを達成しました。この解体に関する詳細は、こちらのリンクをご参照ください。

この調査は、Trellix Advanced Research Centerが観測した実質的な攻撃増加傾向について掘り下げたものです。これは、QBotマルウェアが採用する最初の感染ベクターとしてJSファイルを利用するものであり、2023年4月に出現しました。


Qakbotの歴史

高度に洗練されたバンキング型トロイの木馬であるQakbotは、少なくとも2007年まで遡る悪質な活動の歴史を持っています。この危険なマルウェアはワームのような機能を持ち、感染したネットワーク内で自律的に拡散することができます。このマルウェアの主な目的は、感染したシステムからログイン認証情報や財務情報などの機密データを盗み出すことです。

さらに、Qakbotは被害者のシステム上に追加のマルウェアをダウンロードして実行することができ、その多機能性とさらなる被害の可能性を示しています。時を経て、Qakbotはコマンド・アンド・コントロール(C2)通信などの新機能を組み込むように進化し、追加のマルウェアモジュールの取得を可能にし、データの流出を促進しています。

さらに、このマルウェアは複数の回避テクニックを採用し、サンドボックスを検出するように設計されているため、検出を回避する能力が強化されています。Qakbotは一般的にフィッシングメールや悪意のある添付ファイルを通じて拡散しますが、Emotetのような他のボットネットによって配信されるセカンダリペイロードとしても観測されています。注目すべきは、Qakbotが Prolock、Egregor、DoppelPaymer など、さまざまなランサムウェアの感染に関連していることです。また、脅威行為者グループTA570によって組織されたキャンペーンの最初のエントリポイントとしても機能しています。

図 2 – QBot の電子メール検出量
図2 – QBotの電子メール検出量

図2に示すように、Trellix Email Securityの監視では、2023年1月から 2023年6月にかけてQBot の検出数が7倍に増加しています。このような検出数の急増は、マルウェアがその範囲を拡大するにつれて戦術、技術、手順(TTP)が進化し続けているため、その蔓延が懸念されます。その後の7月には、攻撃件数の大幅な減少が確認されています。

図3に示すように、2023年1月から6月までの地域別ヒートマップでは、Qakbot攻撃が世界的に広く発生していることがわかります。しかし、この期間中にこれらの攻撃が最も多く発生したのは米国であることを示しています。

図 3 – QakBot 攻撃の地理的ヒートマップ図3 – QakBot攻撃の地理的ヒートマップ


JavaScript (.JS) 配信戦術への進化

2023年4月以降、Trellix Advanced Research Centerでは、QBotマルウェアが使用する最初の感染ベクターとしてJSファイルの利用が増加傾向にあることを確認しました。この攻撃シナリオでは、フィッシングメールに含まれる埋め込みURLからJSファイルが配信され、そのURLは、攻撃者がJSファイルをホストするために使用する危険なサイトに被害者を誘導します。

攻撃者は、これらの悪意のあるJSファイルをホストするために侵害されたウェブサイトを使用し、難読化、ジオIP回避、空白コンテンツ回避、リダイレクト回避などの様々な回避テクニックを実装していることが確認されています。これらの手口は、検出を回避し、QBotキャンペーンの効果を高めるために戦略的に採用されています。

以下の図4 は、Qbotキャンペーンで一般的に使用される初期電子メールの脅威ベクトルを示すスクリーンショットです。このような詐欺的な電子メールは、多くの場合、「UPS」、「契約変更」、「注文の更新」などの一般的な件名で、合法的な企業連絡に巧妙に偽装しています。このような一見無害なメールは、受信者を誘惑してURLをクリックさせ、悪意のあるJSファイルをダウンロードさせます。Qbotとその悪質な活動の被害に遭わないためには、このような電子メールに遭遇した際には、注意を払い、警戒を怠らないことが極めて重要です。

図 4 – QBot マルウェアに関連する悪意のあるメール
図 4 – QBot マルウェアに関連する悪意のあるメール

図4 – QBotマルウェアに関連する悪質メール


JSファイルを配信する悪質なURL

分析段階で、悪意のあるURLには以下のような特徴的なパターンが含まれていることが確認されました。

これらのURLは、ドメイン名、トップレベルドメイン(TLD)、アルファベットのみの文字列、疑問符記号、および数字で構成されています。

以下は、URLパターンの正規表現です。

https?\:\/\/[^\/]+\/[a-zA-z]*\/\?[0-9]+$

このキャンペーンでは、悪意のあるURLの有効性を高めるために、いくつかの回避戦術を採用していました。これらの戦術には、危険なドメインの使用、リダイレクト回避、ブランクレスポンス回避、およびGeo-IP回避が含まれます。侵害したドメインを利用することで、攻撃者はURLを合法的で信頼できるものとして偽装し、感染を成功させる可能性を高めていました。

QakBotマルウェアの実行サイクル

図 5 – 実行サイクル図5 – 実行サイクル

QBotマルウェアは、JavaScriptファイルに高度な難読化技術を使用しています。ダウンロードされ、Windows環境で開かれると、このファイルはwscript.exeアプリケーションを通じて実行されます。これにより、コード化されたPowerShellコマンドが起動され、悪意のあるDLLファイルがドロップされます。最後に、このDLLファイルはrundll32.exeアプリケーションを使って実行されます。

それでは、実行サイクルの各要素の詳細について見ていきましょう。

JavaScriptペイロード

QBotの実行サイクルに関与するJavaScriptファイルは、意図的に複雑に設計されており、解析が困難です。このファイルには、偽のコード、符号化された文字列、関数呼び出し、動的に生成されたコードの組み込みなど、さまざまな難読化技術が使用されています。これらの手口は、難読化を解除してコードの流れを理解しようとするセキュリティ研究者の努力を妨げることを目的としています。

さらに、このファイルには、Skypeに関連する多数の文字列、タグ、クラス、URLが組み込まれています。この組み込みは、Skypeにリンクされたスクリプトであるかのように見せかけることで、研究者やスキャンエンジンを混乱させ、分析プロセスに混乱をもたらす戦術として機能します。

図 6 – Javascript ペイロード内の Skype 参照図6 – Javascriptペイロード内のSkype参照

JavaScript(JS)ファイルをHTMLファイルの一部として読み込もうとすると、ブラウザにコンテンツが表示されず、ネットワーク呼び出しも行われません。

しかし、wscript.exeを使用してWindows環境でファイルを開くと、Shell32.dllファイルのShellExecuteExW関数を使用してエンコードされたPowerShellコマンドが実行されます。

図 7 – JS ファイルによって呼び出される PowerShell コマンド図7 – JSファイルによって呼び出されるPowerShellコマンド

PowerShellコマンド

PowerShellコマンドを解読すると、関数呼び出し、偽装変数、エンコードなど、さまざまなテクニックを駆使した難読化PowerShellスクリプトが現れます。

これらのテクニックは、スクリプトの複雑さを増し、研究者がリバースエンジニアリングすることをより困難にするために実装されています。さらに、スクリプト内には、暗号化された別のPowerShellコマンドが存在し、難読化のレイヤーをさらに増やしています。

図 8 – PowerShell の難読化されたスクリプト図8 – PowerShellの難読化されたスクリプト

すべての偽装文字列を削除した後、最終的なPowerShellコードは以下のようになります。

図 9 – PowerShell の第 1 レベルの難読化解除されたスクリプト図9 – 難読化されたPowerShellの第一レベルのスクリプト

スクリプトの難読化をさらに解除すると、次のスクリーンショットにコードが表示されます。PowerShellスクリプトは次のフローに従います。

  • スクリプトは、New-Itemコマンドレットまたは同様のコマンドを使用して、「C:\Program Data」にディレクトリを作成します。
  • Invoke-WebRequestコマンドレットまたは同様のメソッドを使用して、コード内で指定されている特定のURL との接続を確立します。次に、スクリプトはこれらのURLからの応答を、手順1で作成したディレクトリ内のDLL (Dynamic Link Library) ファイルに保存します。
  • スクリプトは、Get-Itemコマンドレットまたは同様のコマンドを使用して DLLファイルの長さをチェックします。DLLファイルの長さがコードで指定された特定のしきい値を超える場合、rundll32.exeユーティリティまたは同様の方法を使用してDLL ファイルの実行が続行されます。

    図 10 – PowerShell の最終的な難読化解除されたスクリプト図10 – PowerShellの最終的な難読化解除スクリプト

上述したように、JSファイルはPowerShellスクリプトによって呼び出されるURLから、多くの分析防止手法を採用しており、すべてが一貫して有効なDLLファイルを返すわけではありません。場合によっては、DLLファイルのコンテンツにHTMLエラーページが含まれていたり、空であることがよくあります。

ファイルが有効な場合、エンコードされたPowerShellコマンドの難読化を解除し、conhost.exeを呼び出して、ログインしているコンソールユーザーに以下のコマンドでアタッチします。

\??\C:\Windows\system32\conhost.exe 0xffffffff -ForceV1

続いて、rundll32を使用してDLLが実行されます。

さらに、このプロセスには、いくつかの追加の検出タスクが含まれます。

  • rundll32 バイナリは、実行中のプロセスを列挙する役割を果たします。
  • WMI (Windows Management Instrumentation) は、Windows Error Reporting Manager (wermgr.exe) を実行して、次の情報を収集します。
    • ipconfig経由のネットワーク構成
    • whoamiによるユーザー発見
    • システムBIOSのクエリー
    • インストールされているセキュリティソフトウェアのチェック
    • Windows Error Reporting Fault (werfault.exe) は、ユーザー、プロセスID、セッションIDを照会

wermgr実行可能ファイルの最後のタスクは、 BitBlt APIを使用してシステム情報をキャプチャすることです。これにより、感染したデバイスでのデータのキャプチャと抽出が可能になります。

図11

図11

DLL解析

マルウェアによって実行されるDLLの動作には、悪意のある意図を実行するために設計された、注意深く組織化された一連のステップが含まれます。まず、DLLはROR13アルゴリズムを利用してVirtualAllocとVirtualProtectのアドレスを計算し、メモリ割り当てと保護メカニズムを制御します。

さらに実行を続けると、DLLは検出と分析を回避するために採用された技術である、高度に難読化されたシェルコードを解読します。シェルコードが復号化されると、Qbot PEペイロードの復号化と解凍が行われます。これは、マルウェアの動作における重要なフェーズです。 

図 12 – ペイロードのメモリ割り当て
図12 – ペイロードのメモリ割り当て

ペイロードの実行に成功すると、DLLは初期状態に戻り、Qbot PEのエクスポートエントリの呼び出しを続行し、悪意のあるペイロードのシームレスな統合とアクティブ化を保証します。

特筆すべき重要な点は、ペイロードがプロセスインジェクションのオプションターゲットとして同一のものを共有していることです。これは、このマルウェアが特定のプロセスやアプリケーションを悪用するように調整されていることを示唆しており、その拡散を促進し、持続性を維持するためと考えられます。

図 13 – プロセスインジェクション
図13 – プロセスインジェクション

DLLの動作は複雑かつ巧妙であるため、この脅威を効果的に検知、緩和、無力化するためには、警戒を強め、強固なサイバーセキュリティ対策を講じる必要があります。組織も個人も同様に、このような高度なマルウェア攻撃からシステムを保護するために、積極的に取り組む必要があります。

POSTデータの復号化

図 14 – 暗号化された投稿リクエスト
図14 – 暗号化された投稿リクエスト

このマルウェアは、Command-and-Control(C2)サーバーにネットワークコールアウトを送信することで、ネットワーク通信において一貫した認識可能なパターンを示しています。驚くべきことに、2つのQbotペイロードは、RC4キーに「SoNuce]ugdiB3c[doMuce2s81*uXmcvP」という特定のソルトを使用していました。

Qbotに関連するPOSTデータの復号プロセスは十分に文書化されており、明確なシーケンスに従っています。最初に、データの最初の0x10バイトを取得します。その後、これらの0x10バイトがソルトの前に追加され、新しいシーケンス「SoNuce]ugdiB3c[doMuce2s81*uXmcvP” + [最初の0x10バイト]が形成されます。

次に、アルゴリズムはこの新しい結合データのSHA1ハッシュを計算し、一意のSHA1値を生成し ます。この SHA1値が、復号化処理のRC4キーとして使用されます。

POSTデータ復号化に対するこの標準化された一貫したアプローチは、このマルウェアがよく設計されたアーキテクチャであることを示すものであり、Qbot関連の活動を識別および分析するための識別可能なシグネチャとして機能します。組織やセキュリティ専門家は、この情報を活用して防御メカニズムを強化し、潜在的なQbot感染を積極的に検出して対処することができます。

POSTデータ復号化用のPythonスクリプト:

図 15 – データ復号後の Python スクリプト
図15 – データ復号後のPythonスクリプト

Pythonスクリプトの使用法:

図 16 – Python スクリプトの使用法図16 – Pythonスクリプトの使用法

マルウェアの実行サイクルをさらに深く掘り下げることに興味のある読者のために、Trellix Advanced Research Centerは次のリンクのブログで詳細な分析を提供しています – https://www.trellix.com/en-in/about/ newsroom/stories/research/qakbot-evolves-to-onenote-malware-distribution.html


主要な動作 (TTP)

これは、検出に利用できる脅威の動作の一部のリストです。

戦術目標
ATT&CKテクニック
(テクニックID)
脅威のアクション/動作
初期アクセス スピアフィッシングリンク
(T1566.002)
悪意のあるリンクを使用した正規の通信を装った電子メールのターゲットとなるユーザー
実行 PowerShell (T1059.001)
Windowsコマンドシェル (T1059.003)
JavaScript (T1059.007)

悪意のあるリンク (T1204.002)

難読化されたPowerShellコマンドが実行する
コマンドの実行と他のプロセスの生成に使用されるWindowsコマンド シェル
悪意のあるエンコードされたコマンドを含むJavaScriptペイロード
ユーザーが悪意のあるリンクをクリック
防御回避 難読化された情報ファイル (T1027)
ファイルまたは情報の難読化解除/デコード (T1140)
RunDLL32 (T1218.011)
wcript.exe は、base64でエンコードされたPowerShellを実行
wcript.exe は、base64でエンコードされたPowerShellを実行
dllファイルを実行するためにrundll32が生成
検出

システム所有者/ユーザーの検出 (T1033)
Windows管理インストルメンテーション (T1047)
プロセスの検出 (T1057)
レジストリのクエリ(T1112)


セキュリティ ソフトウェア > 検出 (T1518.001)


システムの場所の検出 (T1614)

whoami

wermgr.exe は、WMI を介してBIOSプロパティをクエリ

RunDLL32を介したプロセス列挙
HKLM\System\CurrentControlSet\Control\Session Manager\Environment\__PSLockdownPolicy
wermgr.exe は、WMIクエリを介してウイルス対策ソフトウェアを検出 “SELECT * FROM AntiVirusProduct”
地理的位置検出
コレクション 画面キャプチャ (T1113) wermgr.exeはBitBlt APIを使用してスクリーンショットを取得
コマンドと制御 アプリケーション層プロトコル (T1071)
イングレス ツール転送 (T1105)
HTTP経由でのPowerShell実行可能ファイルのダウンロード
HTTP経由でのPowerShell実行可能ファイルのダウンロード


侵害の兆候 (IOC)

Trellix Advanced Researchが観測した、最近のQakBotキャンペーンによる侵害の指標リストをご覧ください: QakBot IOC


Trellix製品の保護

Trellixセキュリティ製品は、多層的なアプローチによりQakbotキャンペーンに対する強固な防御を提供します。これには、URL、メール、ネットワーク、添付ファイルに対する綿密なチェックが含まれ、潜在的な脅威の確実な検知と防止を提供します。これは、システムを危険から守り、安全に保つ効果的な方法です。当社の製品は、脅威インテリジェンスデータベースを継続的に監視および更新し、新しい脅威や進化する脅威を先取りしています。

以下は、現在進行中のキャンペーンで観測されたTrellix Securityの検出結果の一部です。

製品 検出シグネチャ
Trellix Network Security
Trellix VX
Trellix Cloud MVX
Trellix File Protect
Trellix Malware Analysis
Trellix SmartVision
Trellix Email Security
Trellix Detection as a Service
Other Products:
Trojan.Artemis.FEC4
Trojan.Win32.Leonem.FEC3
Trojan.JS.Heuristic.FEC3
Trojan.Qakbot
Suspicious Network Activity
Suspicious File Activity
Suspicious Process PowerShell Activity
Suspicious Process Launching Activity
Suspicious Network By PowerShell
Trellix Endpoint Security (HX):
QAKBOT(FAMILY)
QAKBOT A (FAMILY)
QAKBOT B (FAMILY)
QAKBOT C (FAMILY)
QAKBOT D (FAMILY)
QAKBOT E (FAMILY)
QAKBOT F (FAMILY)
QAKBOT G (FAMILY)
QAKBOT H (FAMILY)
QAKBOT I (FAMILY)
QAKBOT J (FAMILY)
QAKBOT K (FAMILY)
QAKBOT L (FAMILY)
QAKBOT M (FAMILY)
POWERSHELL DOWNLOAD AT SUSPICIOUS PATH (METHODOLOGY)
POSSIBLE PE INJECTION VIA RUNDLL32 (METHODOLOGY)
REGISTRY RUN KEY PERSISTENCE (METHODOLOGY)
Trojan.GenericKD.67696429
Trojan.GenericFCA.Script.25118
Trojan.GenericKD.67697230
Trojan.GenericKD.67696480
Trojan.GenericKD.67690943
Trojan.GenericFCA.Script.25109
Trojan.GenericKD.67689721
Trojan.GenericKD.67676968
Trojan.Generic.33993462
Trojan.GenericKD.67697202

結論

私たちの徹底的なリサーチにより、Qakbotの魅力的な進化が明らかになり、マルウェアを配布する手段としてJavaScriptファイルを採用していることが明らかになりました。このような手口はQakbotだけの専売特許ではなく、他の悪意あるアクターもセキュリティ対策を逃れるために同様の戦略を採用する可能性があることは注目に値します。このことは、迫り来る脅威に対する警戒態勢を維持することの緊急の重要性を強調しています。

当局はQakbotの駆除に成功したものの、サイバー脅威の絶え間ない進化は依然として大きな懸念材料です。これは、継続的な警戒とセキュリティ戦略の強化の必要性を痛感させるものです。重要なのは、組織と個人の双方が、刻々と変化するサイバーリスクの領域に対応できる強固な防御を構築できるよう、積極的かつ細心の注意を払った対策を講じることです。


著作権について

このブログのコンテンツに貢献したさまざまな要素に謝意を表します。次のリストは、これらの要素の著作権の概要を示しています。

画像

アイコン

私たちは、当ブログへのこれらの要素の貢献に心から感謝し、信用を与えることの重要性を認識しています。著作権に関してご不明な点や訂正が必要な場合は、遠慮なくご連絡ください。皆様のご理解とご支援を心よりお願い申し上げます。

※本ページの内容は2023年9月6日(US時間)更新の以下のTrellix Storiesの内容です。
原文: QakBot’s Endgame: The Final Move Before the Takedown
著者:  Daksh Kapur、Nico Paulo Yturriaga、Alfred Alvarado