This post is also available in: English (英語)
概要
Glupteba は高度なモジュール式の多目的マルウェアで、10 年以上にわたって金銭を主たる動機とするサイバー犯罪のオペレーションで観測されてきました。本稿では、2023 年 11 月頃に行われた新たなキャンペーンの感染チェーンについて解説します。
10 年以上の活動にもかかわらず、Glupteba の作者が追加した特定の機能については、これまで未発見・未報告のままでした。ここでは、これまで文書化されていなかった興味深い機能の 1 つ、Unified Extensible Firmware Interface (UEFI) ブートキットに焦点を当てます。このブートキットは OS のブート プロセスへの介入・制御が可能で、Glupteba が自身を隠し、検出や削除の非常に困難な、ステルス性の高い永続性を作りだすことができます。
この脅威は単純なバックドアとして始まりましたが、強力なボットネットへと変化し、サイバー脅威界隈のメジャー プレーヤーとして台頭しました。2010 年代初頭の発見以来、Glupteba は大きな進化を遂げ、一連の密かな変態を経てきました。この脅威は、その複雑な感染チェーンでつとに知られ、これが同マルウェアのオペレーターによる継続的開発と従来型セキュリティ対策の回避試行を誇示するものとなっています。
パロアルトネットワークスのお客様は、Advanced WildFire、Advanced Threat Prevention、Advanced URL Filtering などのクラウド配信型セキュリティサービスを有効にした次世代ファイアウォール (NGFW) と Cortex XDR により、本稿で取り上げたマルウェアからより確実に保護されています。さらに、Prisma Cloud Cortex XDR Cloud Agent や Prisma Cloud Defender Agent は、既知の Glupteba マルウェアのインスタンスを監視します。DNS Security は悪意のあるドメインをブロックできます。
とくに Glupteba などの UEFI ブートキットについては、Cortex Agent 8.3 の一部としてリリースされた UEFI Protection モジュールが、検出・防御機能を提供します。
関連する Unit 42 のトピック | Malware, Botnet |
頭字語に関する注意: 本稿では複数の頭字語が使用されています。順番にひとまとまりとして使われる用語や、さまざまな背景を持つアナリストにとって馴染みがのない用語を記載しておきます。
頭字語 | 用語 |
DSE | Driver signature enforcement (ドライバー署名の強制) |
ESP | EFI system partition (EFI システム パーティション) |
PPI | Pay-per-install (ペイ・パー・インストール、インストールごとの支払い) |
SPI | Serial Peripheral Interface (シリアル ペリフェラル インターフェイス) |
UEFI | Unified Extensible Firmware Interface (ユニファイド エクステンシブル ファームウェア インターフェイス) |
UPGDSED | Universal PatchGuard and Driver Signature Enforcement Disable (Universal PatchGuard とドライバー署名強制の無効化) |
Glupteba の概要
Glupteba はモジュール形式になっていて、追加のコンポーネントやペイロードをダウンロードして実行できます。こうしたモジュール設計のおかげで、Glupteba はさまざまな攻撃シナリオや環境に適応でき、同マルウェアのオペレーターも多様なセキュリティ ソリューションに順応できます。
マルウェアの作者は長年にわたり、同マルウェアにさまざまなタスクを実行できる新たなモジュールを導入してきました。導入されたモジュールには次のようなものがあります。
- 追加ペイロードの配信
- さまざまなソフトウェアからのクレデンシャル (認証情報) 窃取
- クレジット カード データなど機微情報の窃取
- 感染システムのクリプトマイニング ボットネットへの登録
- クリプト ハイジャックとクリプトマイナーの展開
- デジタル広告詐欺の実行
- Googleアカウント情報の窃取
- UAC のバイパス、ルートキット・ブートキットの両コンポーネントの保持
- ルーターのエクスプロイトによるクレデンシャルやリモート管理アクセスの取得
最近のキャンペーンでは、攻撃者が主に Pay-per-Install (PPI) サービスを通じて Glupteba を配布し、同マルウェア オペレーターによる世界中のマシンへの大規模感染を可能にしました。
Glupteba の PPI エコシステムについて
PPI エコシステムは、サイバー犯罪情勢において、重要かつ収益性の高い要素となっています。このモデルは当初、広告配信手段として登場したものですが、スパイウェアやマルウェアの配布という、より邪悪な目的に向け、長年進化してきました。
金銭的動機を持つ PPI サービス プロバイダーがマルウェア配布に重要な役割を果たしていることから、同モデルは悪意のあるソフトウェアの配布拡大を後押ししています。これには、PrivateLoader や SmokeLoader などの高度なダウンローダーから、Glupteba、RedLine Stealer、コインマイナー、さらにはランサムウェアなどの多用途の脅威まで、さまざまな脅威が含まれます。
PPI サービスプロバイダーは、さまざまなプラットフォームを使ってアフィリエイトを募集し、サービスを販売しています。PrivateLoader を拡散している最も人気のある PPI サービスの 1 つは Ruzki と呼ばれるものです。Ruzki は、ロシアのハッキング フォーラムでユーザー les0k によって運営されています。図 2 は、WWHClub としても知られるロシアのハッキング フォーラム WWH の les0k のアカウント概要を示しています。
マルウェア オペレーターを誘い込むために、PPI サービスはプロモーションを掲載したり、割引を提供したりすることがあります。価格は要求されるインストール数に基づいています。またほとんどの場合、価格は地域にも基づいています。
図 3 は、PPI サービス プロバイダーが、ヨーロッパと米国を除く世界中で 1,000 件のインストールに対して 70 ドルを要求している例を示しています。ヨーロッパでの 1,000 件のインストールの費用は 500 ドルで、米国で同じ数のインストールをした場合、オペレーターに 1,200 ドルの費用が要求されます。
2023 年キャンペーン
2021 年 12 月の Google によるオペレーション妨害の後、2022 年 12 月から Glupteba は息を吹き返し、世界中のデバイスに感染してきました。この活動は 2023 年にも続いていきます。この間、Glupteba のボットネットは新生キャンペーンとして登場し、やがて現在進行中のキャンペーン、蔓延したキャンペーンへと成長、複数の地域や業界に影響を与えていきます。このキャンペーンの被害を受けた組織は、ギリシャ、ネパール、バングラデシュ、ブラジル、韓国、アルジェリア、ウクライナ、スロバキア、トルコ、イタリア、スウェーデンなどの国々に拠点をおいていました。
ほかの最近のキャンペーン同様、攻撃者らは Glupteba を拡散するさい、Web ベースで配布したり、クラックないしバンドルされたソフトウェアのインストール ファイルを使った大規模フィッシング攻撃をしかけたりすることがよくあります (図 4)。この戦略により複数のマルウェア感染が発生しました。
図 5 に示すように、このキャンペーンには複数の段階があります。攻撃の第 1 段階では、別のソフトウェアになりすました偽インストール ファイルの悪意のある ZIP ファイルをユーザーがダウンロードするようにしむけます。ユーザーが ZIP ファイルをダウンロードしてソフトウェアをインストールしようとすると、感染チェーンが始まります。
脅威アクターらは、複数のマルウェア ファミリーを同時に拡散させる複雑な感染チェーンの一部として Glupteba を配布することがよくあります。この感染チェーンは多くの場合、PrivateLoader または SmokeLoader 感染から始まり、これらがほかのマルウェア ファミリーをロードし、その後 Glupteba をロードします。
たとえば、上の図 5 はある 2023 年の感染チェーンを示したものですが、これは PrivateLoader から始まって SmokeLoader につながり、さらに 2 つの Glupteba サンプルを含むほかのさまざまなマルウェアへとつながっていきます。
図 5 に示す感染チェーンは、2023 年に私たちが発見した多くの同様のチェーンの 1 つです。これらの最近のキャンペーンを分析した結果、Glupteba がこれまで文書化されたことのない UEFI ブートキットを使っていることが明らかになりました。
Glupteba の文書化されていない UEFI ブートキットの探索
Glupteba の UEFI ブートキット実装について解説する前に、UEFI ブートキットとその複雑さについて簡単に説明します。
UEFI ブートキットの概要
UEFI は、コンピューター ハードウェアのブートに使用されるプラットフォーム ファームウェアのアーキテクチャと、オペレーティング システムとの間の対話インターフェイスを定義する仕様です。
図 6 は、UEFI システムにおけるブート プロセスのさまざまな段階を示しています。
図 6 のブート デバイス選択前の段階 (BDS) で、システムのファームウェアは SPI (Serial Peripheral Interface) のフラッシュ メモリからロードされます。次に、ブート デバイス内にある Windows ブート マネージャーを含む EFI システム パーティション (ESP) が、ホストが Windows へとブートするさいにロードされます。
ESP 内にマルウェア インプラントさえあれば、Windows の起動前にコードを実行し、さまざまなセキュリティ メカニズムを容易に妨害できるようになります。もう 1 つ考えられる方法は、ブート プロセスの初期段階でコードを実行する SPI フラッシュ メモリ内のインプラントで、これならさらに優れた能力と柔軟性を発揮できます。ただし、フラッシュ メモリ内のファームウェア インプラントを使うマルウェアには、ESP インプラントを使う場合より高い権限が必要になります。これはさらに複雑です。
2023 年時点で、公に報告のある UEFI ブートキットはほんの少数で、たとえば LoJax (ファームウェアインプラント) や BlackLotus (ESP インプラント) などのみです。
Glupteba のブートキット インストーラーの分析
今回の分析は、正規の Windows バイナリー (csrss.exe) に偽装したブートキット インストーラー バイナリーから始めます。このインストーラーを分析すると、文字列と関数が明らかに欠如していることがわかります。このことは、このファイルが何らかの方法でパックされていることを示しています。これはつまり、インストーラーの実際のロジック分析の前に、少々作業が必要があるということです。
逆アセンブラーでインストーラーを調べると、main 関数は最終的に以下の図 7 に示した dword_2FA3A2C 内のアドレスにジャンプしているようです。
もう 1 つの関数、dword_2FA3A2C には、新たにアロケートされたヒープ メモリがアサインされ、PAGE_EXECUTE_READWRITE 権限 (図 8 参照) がセットされます。最後に、このヒープ メモリには、少なくとも部分的には実行可能なデータが格納されます。
図 9 に示すように、このコードにジャンプした後、さらにアンパックが行われ、最終的には別の RWX メモリがアロケートされて、そこにジャンプすることになります。
このメモリ領域にはアンパックされたリソースが含まれています。これには、メイン インストーラー ロジックを含む PE ファイルなどが含まれます。UEFI ブートキットに関連しないそのほかのリソースは本稿では扱いません。
このインストーラーには、main_writeEfiGuard という関数があり、この関数が ESP にファイルを書き込みます (図 10)。
この関数の動作をまとめると次のようになります。
- main_mountEFI 関数は ESP を B:ドライブにマウントする
- B:\EFI\Microsoft\Boot\bootmgfw.efi は名前が変更されて B:\EFI\Microsoft\Boot\fw.efi になる
- B:\EFI\Boot\bootx64.efi は名前が変更されて B:\EFI\Boot\old.efi になる
- アセット embedded/bootmgfw.efi が B:\EFI\Microsoft\Boot\bootmgfw.efi と B:\EFI\Boot\bootx64.efi に書き込まれる
- アセット embedded/EfiGuardDxe.efi が B:\EFI\Boot\EfiGuardDxe.efi に書き込まれる
これらのアクションは Cortex XDR からイベントとして確認できます (図 11 参照)。
この関数名 (main_writeEfiGuard) と、ドロップされたファイル名の 1 つ (EfiGuardDxe.efi) が、私たちをただちに EfiGuard へと向かわせました。
EfiGuard
EfiGuard はオープンソースのポータブル UEFI ブートキットです。これは UEFI ドライバー (EfiGuardDxe.efi) を実行することで Windows カーネルにパッチを当て、PatchGuard と ドライバー署名の強制 (DSE) を無効にします。図 12 は、EfiGuard のアーキテクチャを示しています。
GitHub プロジェクトにも記載のある通り、EfiGuardDxe.efi は UEFI ドライバー エントリーにインストールするか、ドライバーをロードして Windows のロードを続けるカスタム ローダー (Loader.efi.efi) をブートすることで実行できます。Glupteba は後者の方法を使っています。
いずれの場合もドライバーは EFI Boot Service の LoadImage 関数をフックします。そしてこの関数が Windows ブート マネージャー (bootmgfw.efi) のロードをインターセプトし、最終的にカーネル (ntoskrnl.exe) にパッチを当てることになる一連のパッチを開始します (図 13)。
このプロジェクトは DSE を無効にする方法を 2 つサポートしています。1 つめはブート時、PatchGuard を無効にした直後に発生します。2 つめでは、EFI Runtime Service の SetVariable へのフックを介して UEFI バックドアが残されます。この SetVariable により、 user-mode のコードが、任意のカーネル空間のメモリを読み書きできるようになります。このバックドアは、ある user-mode のプログラム (EfiDSEFix.exe) によって補完されるもので、このプログラムが、カーネルの読み取り/書き込みバックドアを利用して DSE にパッチを当てます。
Glupteba の EfiGuard
Bindiff を使って Glupteba が ESP に書き込む 2 つのファイルの類似性分析をした結果、それらが EfiGuard 内のコンポーネント EfiGuardDxe.efi と Loader.efi を再コンパイルしたものであることがすぐにわかりました (図 14 および図 15)。ログなど一部のコードは EfiGuard から削除されていました。
Glupteba は Windows ブート マネージャー (bootmgfw.efi) を Loader.efi に置き換えます。Loader.efi ファイルが EfiGuardDxe.efi ドライバーをロードした後 Windows のロードが続行されます。
以下の図 16 に示すように、このマルウェアの作者は、PatchGuard と DSE を無効にするため、ブート時の方法を使ってドライバー コードを手動で変更・再コンパイルしたようです。このバイパス手法のドライバー構成は、gDriverConfig に保存され、DSE_DISABLE_AT_BOOT にセットされる点に留意してください (図 17参照)。ただしこの作者は実際には、私たちのサンプルではこの構成をチェックするコード パスを削除していました。
Glupteba の DSE バイパスの概要
Sophos による以前の分析 で文書化されているように、Glupteba は以前、Windows カーネル ドライバーを使って自身を隠していました。これらのドライバーを正常にロードするために、Glupteba は DSEFix か Universal PatchGuard and Driver Signature Enforcement Disable (UPGDSED) を使っていました。
DSEFix は、既知の脆弱なドライバーをドロップしてエクスプロイトすることにより、カーネル メモリ内の DSE を無効にします。UPGDSED は user-mode で実行され、やはり同じ目的のために Windows カーネルと Windows ブート ローダーのバイナリーにパッチを当てます。
私たちの現在のサンプルからは、Glupteba が DSE を無効化するツールの武器庫に EfiGuard を追加していることが明らかになりました。
インストーラー内では、関数 main_installDriver が先程分析した関数 (main_writeEfiGuard) を呼び出し、後者の関数が ESP にファイルを書き込みます。以下図 18 は、IDA でノードをグループ化して前者の関数のロジックの概要を示したものです。
図 18 からわかるとおり、アーキテクチャや OS のバージョン、構成に応じて、これまで説明した 3 つの DSE バイパス手法 (DSEFix、UPGDSED、EfiGuard) のいずれか 1 つが使用される可能性があります。BlackLotus ESP インプラントとは異なり、私たちは Glupteba がセキュア ブートをバイパスしているという証拠は確認していません。
結論
目まぐるしく移り変わる脅威情勢において Glupteba マルウェアは現代的サイバー犯罪者らが示す複雑さや順応力の顕著な例として引き続き注目を集めています。
Glupteba における文書化されていない UEFI バイパス技術の特定は、このマルウェアのもつ革新性と回避能力を強調するものです。この新たな手法は、検出に重大な課題をもたらすだけでなく、サイバーセキュリティ専門家が継続的に防御を強化し、新たな脅威に先んじることに対する差し迫った必要性をも浮き彫りにしています。
さらに PPI エコシステムは、Glupteba 配布におけるその役割により、サイバー犯罪者らが大規模な感染を目指して相互に協力して収益化をはかる戦略に光を当てています。PPI エコシステム モデルは脅威アクターらが地下経済を利用してマルウェアを拡散していることを示し、これは包括的サイバーセキュリティ戦略と従来型防御を超えた多層型セキュリティ ソリューションの重要性を物語るものとなっています。
保護と緩和策
Cortex XDR と XSIAM は、Glupteba そのほかのマルウェアを配布する 2023 年のキャンペーンで観測された悪意のあるアクティビティに対し、多数のアラートを発報しました。これらの防御・検出アラートからは、さまざまな段階や関与した多様なマルウェアが明らかになりました。
SmartScore は、セキュリティの調査手法とそれに付随するデータをハイブリッド スコアリング システムに変換する弊社独自の機械学習ベースのスコアリング エンジンです。図 19 に示すように、 本インシデントのスコアは 100 点中 86 点でした。この種のスコアリングは、アナリストがどのインシデントがより緊急であるかを判断するのに役立ち、評価理由についてのコンテキストを提供し、優先順位付けを支援します。
パロアルトネットワークス製品をご利用のお客様は、弊社の製品・サービスにより、本グループに関連する以下の対策が提供されています。
- Advanced WildFire は、本稿で解説した IoC に鑑み、機械学習モデルと分析手法の見直しと更新を行いました。
- Advanced URL Filtering、Advanced Threat Prevention、DNS Security を含むクラウド配信型セキュリティサービスは、同グループに関連するドメインを「悪意のあるもの (malicious)」として識別します。
- Prisma Cloud: Windows 仮想マシンを実行しているクラウド インフラは、Cortex XDR Cloud Agent または Prisma Cloud Defender Agent を使って Windows ベースの VM を監視する必要があります。どちらのエージェントも、弊社の WildFire から取得したシグネチャーを使い、既知の Glupteba マルウェアが Windows VM インスタンスにないかどうか監視します。
- Cortex XDR
- 既知の悪意のあるマルウェアの実行を防止するほか、ローカル分析モジュールにもとづく機械学習と Behavioral Threat Protection によって未知のマルウェアの実行も防止します。
- Cortex XDR 3.4 から利用可能になった新たな Credential Gathering Protection を使い、クレデンシャルを収集するツールや技術から保護します。
- Cortex XDR バージョン 3.4 で新たにリリースされた Anti-Webshell Protection を使い、脅威による Web シェルからのコマンドのドロップや実行から保護します。
- Anti-Exploitation モジュールと Behavioral Threat Protection を使い、 ProxyShell や ProxyLogon 含む、さまざまな脆弱性のエクスプロイトから保護します。
- Cortex XDR Pro は振る舞い分析によりクレデンシャル ベース攻撃を含む、エクスプロイト後のアクティビティを検出します。
- UEFI Protection (UEFI 保護) モジュールは、UEFI を標的とする高度な脅威を検出・防御します。Glupteba の場合、図 20 は、ESP に対して行われた悪意のある変更をブロックするモジュールを示しています。
侵害の懸念があり弊社にインシデントレスポンスに関するご相談をなさりたい場合は、こちらのフォームからご連絡いただくか、infojapan@paloaltonetworks.comまでメールにてご連絡いただくか、下記の電話番号までお問い合わせください(ご相談は弊社製品のお客様には限定されません)。
- 北米フリーダイヤル: 866.486.4842 (866.4.UNIT42)
- EMEA: +31.20.299.3130
- APAC: +65.6983.8730
- 日本: (+81) 50-1790-0200
パロアルトネットワークスは、これらの調査結果を Cyber Threat Alliance (CTA: サイバー脅威アライアンス) のメンバーと共有しました。CTA のメンバーはこのインテリジェンスを使って、お客様に保護を迅速に提供し、悪意のあるサイバー攻撃者を体系的に阻害できます。詳細は Cyber Threat Alliance にてご確認ください。
IoC (侵害指標)
2023 年のキャンペーンの Glupteba バイナリー
- cfc7111da7b09e7a93b93ce690f2a4d922cc1009fea8368300f06c6fa4f85472
- 17e4590eceb4fec1e08c29b206d424172753d8472395f37d0647249ceff25817
- 61ab0e1ddaae4704999c4781deea56e1df5b05489bf4c0b892c47b36a63de9f4
- b6604ae49298c59e148b1e741ef8821ffd60c775bfb9c3234783452c54cd3069
- 8e380777da39ad7a588f4d9b703adc18b4ba935c21b17f215a3da5792672f205
- e4a2b53965b9d203d13dd4b5962b9f07270bb87e5738f44cf1126ce36019427d
- c353fb081ae8e121c4dcea3ad1bc4061315728a6f0d0ac63885a4f074be5fef3
- df75b62e373e0b91f26384b21aaa8e4dc86c13078cec7e32ad595d0c86d3fedb
- 5851e0b4a79208b995ab5a7e1f5247c159aac31c7c166a4bef77be14af64c1e8
- 6263a6ceb172eed7bae158d8066f70cabc42b352129547e1b5ad0c1096319d30
- 9c44bf6c3538c93c95342f5c365de46b6494a5a5764870048df7478a9d0f8723
- b84adf0716facf50418f5f228cf095e5157b6be3f04a98f26ce833057e804a4f
- a000684c9fcd2d5a528161a3513f726b2307fa6b50788a568fec0930b452d59e
- c867c3bda7b6f6bd228a4d7656c069bd6cf4f67ba4b075cf4113f5b109e7d9ee
- 8a62d01c1f321c4adb8428771af3eae1c83fec8a0e0a047b0bc17a51d19c7c96
2023 年キャンペーンの ZIP ファイル
- cb347e06d97fde4c7f8dd77be59b8f57d47f6e3f998d708d21a5963bc1620835
- 46eb8b98738df13a3a8c923228ca82006c7d403c7a1aac2d6bc752023b432915
- aa3257efb3182a98f73ad413b34f68067f42c3c51b68d15abea5db01173afad8
- 75bb73decf9fd21643b834a0b3e21e8e0d33910e51efbe56a2162f1180d04802
- 18c6e5a916eea979ea52495309e4e643232832bea614688df4cec0e3123b09d0
- fdd2fbe16f96f6d2b027347fd35c2e105a483a55b43f094754c2b3374ffb051a
- 9691b5846e230e0ea87b3f8a7a6dc31daae701ca0bb83e6c7df0f683bdea01e6
- 9c6af24c519d02203bfbdf568f7beb144996af9676b290a96a728ba9314b1c66
- bb809863b3145ceef7fc12ae5bca3940f18c4a24f5b4652e7b4cea6847762887
- 3a1cffaaa68dc4b5f0f94a1ec14b008444074a3faefa4beba20c857a21539bc1
- d0d58229650ff9bf3bbf8edb55c7058a2f243e900473e0ff8849c517c2f165bd
- c4f45bdfecb3d8cb4dcfdc8f323cf5d15321d161ac92802aa1e77dfa94fd91ed
- 84575070117b8896bafbd6f5dc364db09bea8e742f4af84884d15cab5e811060
Glupteba が使う EfiGuard バイナリー
- 9fdb7c1359f3f2f7279f1df4bde648c080231ed21a22906e908ef3f91f0d00ee
- 01e86a4dfe6e0de7857b3cf2fafd041c8b3a3241e00844cb6bfbd3bfae2d36bc
2023 年キャンペーン インフラ
- weareelight[.]com
- onualituyrs[.]org
- snukerukeutit[.]org
- stualialuyastrelia[.]net
- sumagulituyo[.]org
- criogetikfenbut[.]org
- dpav[.]cc
- humydrole[.]com
- kggcp[.]com
- kumbuyartyty[.]net
- lightseinsteniki[.]org
- liuliuoumumy[.]org
2023 年の Glupteba のプログラム データベース (PDB) ファイルの場所
- C:\juro\yologakib\rihahoy71\waxotobub.pdb
追加リソース
- Glupteba malware is back in action after Google disruption – Bleeping Computer
- Disrupting the Glupteba operation – Updates from Threat Analysis Group (TAG), Google
- Glupteba Expands Operation and Toolkit with LOLBins And Cryptominer – Malicious Life, Cybereason
- December 2022’s Most Wanted Malware: Glupteba Entering Top Ten and Qbot in First Place - Check Point Blog – Check Point Blog
- First UEFI rootkit found in the wild, courtesy of the Sednit group – ESET, LoJax white paper
- BlackLotus UEFI bootkit: Myth confirmed – We Live Security, ESET
- Glupteba malware hides in plain sight – Sophos News
- DSEFix: Windows x64 Driver Signature Enforcement Overrider – hfiref0x on GitHub
- UPGDSED: Universal PatchGuard and Driver Signature Enforcement Disable – hfiref0x on GitHub
- EfiGuard: Disable PatchGuard and Driver Signature Enforcement at boot time – Mattiwatti on GitHub
- PrivateLoader: the loader of the prevalent ruzki PPI service – Sekoia Blog
- PrivateLoader: The first step in many malware scheme – Intel 471