Compact
true
担当領域:セキュリティ技術センター リスクハンティング・アナリシスグループ
リスクハンティング・アナリシスグループにて脆弱性診断やペネトレーションテストを担当。趣味はマルウェア解析 SEC560メダル保持 情報処理安全確保支援士(登録番号014728号) GIAC GPEN

※For the English version, please refer to here.

NECサイバーセキュリティ戦略統括部 セキュリティ技術センターの竹内です。
本稿では、竹内およびサイバーインテリジェンスグループの一員のNECインドのメンバーであるDr Sareena Karapoola 、Dr Manikantan Srinivasan による、マルウェア解析結果を紹介いたします。

This post is also available in: English(英語)

インテリジェンスグループでは日ごろから脅威情報の収集・分析を行い、分析結果を社内やお客様に展開しています。これらの活動の中で、MITRE ATT&CKで共有されていない新たな脅威を発見した場合、MITREへ情報提供しています。この活動の一環としてマルウェアの解析も行っています。本ブログではATT&CK v13で採用されたAndromedaマルウェアについて、追加の解析結果を紹介します。

Andromedaマルウェアはウクライナを狙う攻撃の中で観測されたドロッパータイプのマルウェアです。このマルウェアに感染すると、Andromedaボットネットを構成するコンピュータとなります。Mandiantのリサーチャーは、Turla攻撃者グループ(a.k.a UNC4210)がAndromedaマルウェアを使用して、KopiluwakとQuietcanaryを展開する活動について報告しています。[1]

Mandiantのレポートでは詳細な解析結果が記載されていないAndromedaについて、このブログでは紹介します。AndromedaのSoftware Packing・Process Hollowing・Masqueradingなどの耐解析機能を説明します。このブログは次のハッシュ値のAndromedaマルウェアを解析した結果です。

Andromeda Sample:9535a9bb1ae8f620d7cbd7d9f5c20336b0fd2c78d1a7d892d76e4652dd8b2be7 (SHA 256)

主要な所見:

  1. Andromedaマルウェアは複数のファイルを展開します。これらの中には2つの暗号化されたファイルがあります。
  2. Andromedaマルウェアはシステムライブラリの呼び出しの難読化、デバッガ検知、実行遅延といった3つの耐解析技術を採用しています。
  3. AndromedaはProcess Hollowingを使って悪性のコードをシステムプロセスに挿入します。
  4. システムプロセス(svchost.exe)に挿入された悪性のコードがC2サーバへの通信を行います。
  5. Windows7とWindows10の環境ではマルウェアの振る舞いに違いがあります。

1. 解析方法について

マルウェアへの理解を深めるため、複数のプラットフォームや環境で検体の解析をしています。この環境には、NECでセットアップしたもの以外に、JoeSandbox[2]やAny.run[3]を使用しています。JoeSandboxでの解析結果については[4]・[5]を参照してください。

今回の検体はNECで用意したWindows10の環境、サードパーティのWindows10のサンドボックス環境[4][5]の両方で動作しません。そのため、Windows7の環境で解析した結果を基に紹介します。Windows10との差異については4章で紹介します。

2. Andromedaマルウェアの動作

Andromedaマルウェアは悪性のコードを複数のファイルにわたってパックしており、実行時にそれらのファイルを展開します。今回調査した検体はNullsoft Scriptable Install System(NSIS)によってパッケージ化されたWindowsインストーラで配布されていたものです。これは「7z」を使うことで内部構造を明らかにし、ファイル抽出できるようになります。(図 1)この検体のタイムスタンプは2013年となっており、攻撃者は古いAndromedaの検体を再び採用していることが分かります。この検体には1つの実行ファイル「Sahofivizu.exe」、4つのDLLファイル「Gozekeneka.dll」「natigezeholi.dll」「xuxokuxoka.dll」「zojemilocan.dll」、そして暗号化されたバイナリファイル「yumicebivud.rih」が含まれていました。

最終的に、この検体は4つの実行ファイル、8個のDLLファイル、2つの暗号化されたデータ、拡張子が.batのファイル、3つのテキストファイル、用途不明のデータファイルを含む19個のファイルが展開されます。いくつかのファイルは検体の実行時にディスク上に展開されます。また、削除されるファイルや、メモリ上に展開され対象のプロセスに挿入されるファイルもあります。

50
図 1 Andromedaの検体に含まれていたファイルおよびタイムスタンプ
図 1 Andromedaの検体に含まれていたファイルおよびタイムスタンプ
50

図 2はWindows7の環境で検体を実行した際の、不審な振る舞いやC2サーバへ通信を行ったプロセスツリーです。

図 2 Windows 7 64bit環境で確認できるプロセスツリー[5]
図 2 Windows 7 64bit環境で確認できるプロセスツリー[5]
https://www.joesandbox.com/analysis/1317431/0/html
50

Andromedaの検体は図 2でHu25Vea8Dr.exe(PID 2948)となっているものです。プロセスツリー上の8つめのプロセス(msiexec.exe PID 2948)は悪性コードをsvchost.exeへ挿入します。そして、svchost.exeはC2サーバとの通信を行います。マルウェアがアクセスする通信先のIPアドレスとURLは表 1にまとめています。

2.1 動作概要

Andromedaの実行動作を図 3に示します。Andromedaの検体(Hu25VEa8Dr.exe, PID 2948)を実行すると、実行ファイルSahofivizu.exeが展開・実行されます。実行されたプロセス(Sahofivizu.exe, PID920)は、yumicebivud.rihファイルの読み取りと復号を行います。さらに、Hu25VEa8Dr.exeを実行し、yumicebivud.rihを復号した結果を挿入します。この実行したHu25VEa8Dr.exeは展開したDLLを読み込みます。これらのDLLはプロセスインジェクションを行う機能を持っています。

図 3 Andromeda実行時に確認した動作
図 3 Andromeda実行時に確認した動作
50

Zojemilocan.dllのfetomekiratu関数は、yumicebivud.rihファイルの中身をデコードします。最終的にNategazohli.dll内のbedevahateyu関数がデコードしたyumicebivud.rihファイルの内容をProcess Hollowingでプロセスインジェクションを行います。

その後に実行されるmsiexec.exeはNSISインストーラによるSFXアーカイブです。実行されると複数のファイルとDLL(Jahulocayedo.dll, rikayolehoofu.Xoc, yiduyevytog.dll, Lohonibuhod.exe, Firsozedkami.dll, naseropuxeq.dll)を展開します。Lohonibuhod.exeプロセスの作成、プロセスを停止、rikayolehofu.Xocの内容をメモリ上に書き込み、再開させます。その後、ドロップしたファイルの削除を行い、svchost.exeプロセスのスタートと停止、Process Hollowingを使用して悪意のあるコードを埋め込み、再度実行させます。

svchost.exeはmsoiruj.batファイルをドロップします。このファイルは.batの拡張子がついていますが、32ビットの実行ファイルです。このファイルはmsiexec.exeのコピーであり、永続化としてレジストリキーへの登録を行います。また、このファイルには隠しファイル属性が設定されています。何回か実行したところ、このドロップされるファイルは、msuqox.cmdやmsoiruj.batやmsvtym.batなどランダムに生成されます。ファイル名が”ms”から始まること、拡張子をcmdやbatとすることでWindowsの正規のファイルであるかのように偽装する目的があると考えられます。
また、svchost.exeは最初に3つの通信を行った後、C2先との通信を行います。

マルウェア実行時の通信

インターネット接続可否確認

マルウェアはインターネットへ接続可能かチェックする機能を持っています。この検体では、socket、getsockname、connect、close socketシステムコールを使用します。検体は「www.update.microsoft.com」へ通信を行うことでインターネットへの接続可否を確認します。また、これらのAPIは動的に呼び出され、静的解析では確認することはできませんでした。

DNSクエリ

また、マルウェアが実行されプロセスインジェクションが行われると、C2サーバへの通信を行います。Andromedaは8.8.4.4と8.8.8.8へのDNSクエリを送信します(図 4)。DNSのレスポンスは表1の通りです。

図 4 Wiresharkで確認したAndromedaによるDNSリクエスト
図 4 Wiresharkで確認したAndromedaによるDNSリクエスト
50

表 1 マルウェアの通信するドメインクエリ、VirusTotalでのドメインのレピュテーション結果(2024年6月時点)

Domain queries
1
1
Antivirus Detection
1
1
pe[.]suckmycocklameavindustry[.]in
1
1
6/93 detections
1
1
img[.]suckmycocklameavindustry[.]in
1
1
5/93 detections
1
1
sc[.]suckmycocklameavindustry[.]in
1
1
6/93 detections
1
1
xdqzpbcgrvkj[.]ru
1
1
12/93 detections
1
1
anam0rph[.]su
1
1
9/93 detections
1
1
orzdwjtvmein[.]in
1
1
6/93 detections
1
1
ygiudewsqhct[.]in
1
1
8/93 detections
1
1
bdcrqgonzmwuehky[.]nl
1
1
6/93 detections
1
1
somicrososoft[.]ru
1
1
13/93 detections
1
1

ファイルダウンロード

プロセスインジェクションされたsvchost.exeはインターネットからファイルをダウンロードする機能を持っています。メモリトレースした結果、URLDownloadToFileWやGetTempPathW、GetTempFileNameWを使用していました。svchost.exeはダウンロードしたファイルを%TEMP%フォルダと C:\Users\<ユーザ名>\AppData\Local\Microsoft\Windows\Temporary Internet Files\へ保存します。

HTTP通信

svchost.exeが通信するURLを以下に記載しています。図 5と図 6はマルウェアによって発生したHTTPのGETとPOSTリクエストです。通信先のサーバのうち一つは図 8のようにシンクホール化されていました。それ以外のHTMLレスポンスは空でした。

50
図 5 AndromedaマルウェアによるGet通信
図 5 AndromedaマルウェアによるGet通信
50
図 6 AndromedaマルウェアによるPOST通信
図 6 AndromedaマルウェアによるPOST通信
50
図 7 Wiresharkで確認したHTTPセッション
図 7 Wiresharkで確認したHTTPセッション
50
図 8 Kryptos Logic社によりシンクホール化されたドメイン
図 8 Kryptos Logic社によりシンクホール化されたドメイン
50

メモリ上のURL

マルウェア実行時のプロセスメモリやProcess Hollowingされたデータを確認したところ、複数のURL(図 8)が確認できました。

図 9 Andromeda実行時のメモリ上で確認した文字列
図 9 Andromeda実行時のメモリ上で確認した文字列
50
図 10 Process Hollowingされる悪性コード内で確認した通信先
図 10 Process Hollowingされる悪性コード内で確認した通信先
50

図 9のURLはProcess Hollowingされる悪性コードの中には確認できておらず、Process Hollowing後に更なる暗号化の処理がされていると思われます。

また、FUN_1001430関数が呼び出されると、第一引数のURLへの通信を行います。通信時のパスとして、以下の様な32文字のランダムな文字列が使用されます。

http[://]pe[.]suckmycocklameavindustry[.]in/kyibnsbpivjxirbgrdsdmvblscjxkalm

3. 耐解析機能

Andromedaマルウェアは、複数の耐解析機能を備えています。それらの耐解析機能について本章で説明します。

システムライブラリ呼び出しの難読化

AndromedaマルウェアはシステムライブラリのAPIを難読化しています。CreateProcess、NtUnmapViewOfSection、VirtualAllocExといったプロセスインジェクションに使うAPIが難読化されており、実行時に動的に呼び出されます。

デバッガ検知

Andromedaマルウェアはデバッガが実行されているかを確認します。図11はシステム上でデバッガが実行されている際のトレース結果です。IsDebuggerPresent関数でデバッガがアタッチされているか確認し、アタッチされている場合TerminateProcess関数を呼び出し、プロセスを停止させます。

図 11 解析環境とJoe Sandboxでのデバッガ検知の確認
図 11 解析環境とJoe Sandboxでのデバッガ検知の確認
50

遅延の仕組み

マルウェアはsleep関数を呼び出し、デバッガの回避の目的と思われる実行時遅延を発生させます。また、sahofivisu.exeのコードにループがあることを確認しています。

図 12 実行時遅延でスリープを実行するコード
図 12 実行時遅延でスリープを実行するコード
50

4. Windows7とWindows10での動作結果

AndromedaはWindows7の64ビットの環境ではProcess Hollowingをしたsvchost.exeのプロセスがC2サーバとの通信を行います。一方Windows7の32ビットの環境ではAndromedaは悪性コードをwuauclt.exeにProcess Hollowingで挿入し、このプロセスがC2サーバと通信します。環境によってコードを挿入する対象のプロセスが異なります。

Windows10の環境ではマルウェアはアプリケーションエラーが発生によりクラッシュし、実行停止します。SahofivizuプロセスはReadConsoleInputWへアクセスする際に、アクセス違反のエラーが発生して停止します。この結果WindowsのエラーレポートとWerfault.exeが呼び出されます。この振る舞いはサードパーティの解析環境でも同様に発生しています。

まとめ

今回のブログではAndromedaマルウェアとAndromedaマルウェアが展開するペイロードについて解析しました。この攻撃では古いAndromedaの検体が再利用され、KopiluwakやQuietcanaryペイロードが攻撃対象の端末で実行されます。我々はAndromedaのドロッパーおよび使用されるバイナリを解析し、Andromedaマルウェアは静的解析を阻害する耐解析のテクニックやProcess Hollowingのテクニックを使用してシステムプロセスに悪性のコードをインジェクションするテクニックを確認しています。また、今回の解析で確認したテクニックのMITRE ATT&CKマトリクスへのマッピングおよびIoCをAppendixに共有します。

参考文献

[1] Mandiant Turla: A Galaxy of Opportunity
https://cloud.google.com/blog/topics/threat-intelligence/turla-galaxy-opportunity/

[2] Joe Sandbox
https://www.joesandbox.com/#windows

[3] Any.run
https://any.run/

[4] Joe Sandbox: Analysis of Andromeda Windows 10 64-bit environment
https://www.joesandbox.com/analysis/1317541/1/html

[5] Joe Sandbox: Analysis of Andromeda on Windows7 32-bit environment
https://www.joesandbox.com/analysis/1317431/0/html

Appendix

MITRE ATT&CK Mappings

Execution
1
1
Privilege Escalation
1
1
Persistence
1
1
Defense Evasion
1
1
Discovery
1
1
Command & Control (C2)
1
1
Shared Modules (T1129)
1
1
Process Injection (T1055)
1
1
Registry Run Keys/Startup Folder
1
1
Masquerading: Match Legitimate Name or Location (T1036)
1
1
System Network Connections Discovery (T1049)
1
1
Application Layer Protocol (T1071)
1
1
Native API
(T1106)
1
1
Registry Run Keys/Startup Folder
(T1547.001)
1
1
1
1
Debugger Evasion (T1622)
1
1
System Information Discovery (T1082)
1
1
Ingress Tool Transfer (T1105)
1
1
1
1
1
2
1
1
Obfuscated Files or Information (T1027)
1
1
Security Software Discovery (T1518.001)
1
1
1
1
1
1
1
1
1
1
Software Packing (T1027.002)
1
1
Debugger Evasion (T1622)
1
1
1
1
1
1
1
1
1
1
Process Injection (T1055)
1
1
Query Registry (T1012)
1
1
1
1
1
1
1
1
1
2
1
1
System Time Discovery (T1124)
1
1
1
1

Command and Control (C2).

Privilege Escalation

Execution

Persistence

Defense Evasion.

Discovery.

IoCs

表 2. AndromedaマルウェアのIoCs

1
1
IoCs
1
1
SHA256
1
1
9535a9bb1ae8f620d7cbd7d9f5c20336b0fd2c78d1a7d892d76e4652dd8b2be7
1
1
SHA1
1
1
c6858031315a50ec87e37966291ec69b64600efb
1
1
MD5
1
1
bc76bd7b332aa8f6aedbb8e11b7ba9b6
1
1
SSDEEP
1
1
3072:ugXdZt9P6D3XJ3TCM/vosUE2L/TLqtAyD2XXhtksIae31fXJHhKgzyJtdeV:ue34p/vr6yrC2sJe35ZBKg0dW
1
1
TLSH
1
1
T16B14024364F582BFD6820432D5B92B79D77BCD8D438A7A470B447F21BA318D3C909E8A
1
1
Popular threat label on Virustotal
1
1
trojan.gamarue/nsis
1
1
Domains
1
1
pe[.]suckmycocklameavindustry[.]in
img[.]suckmycocklameavindustry[.]in
sc[.]suckmycocklameavindustry[.]in
xdqzpbcgrvkj[.]ru
anam0rph[.]su
orzdwjtvmein[.]in
ygiudewsqhct[.]in
bdcrqgonzmwuehky[.]nl
somicrososoft[.]ru
1
1
URLS
1
1
http[://]pe[.]suckmycocklameavindustry[.]in/<random 32 string>
http[://]img[.]suckmycocklameavindustry[.]in/<random 32 string>
http[://]sc[.]suckmycocklameavindustry[.]in/<random 32 string>
http[://]xdqzpbcgrvkj[.]ru/in.php
http[://]anam0rph[.]su/in.php
http[://]orzdwjtvmein[.]in/in.php
http[://]ygiudewsqhct[.]in/in.php
http[://]bdcrqgonzmwuehky[.]nl/in.php
http[://]somicrososoft[.]ru/in.php
1
1

執筆者プロフィール

執筆者
original
50

竹内 俊輝(たけうち としき)
セキュリティ技術センター リスクハンティング・アナリシスグループ

リスクハンティング・アナリシスグループにて脆弱性診断やペネトレーションテストを担当。趣味はマルウェア解析

SEC560メダル保持
情報処理安全確保支援士(登録番号014728号)
GIAC GPEN

執筆者
original
50

Dr.Manikantan Srinivasan
NEC オープンネットワークソリューション・サービス (NOSS) デリバリーユニット, NEC Corporation India Pvt Ltd.

5GのAI/MLに関する研究、O-RAN allianceのアーキテクチャベースのセキュア5Gソリューション開発、テレコムセキュリティ、3GPP標準化、サイバースレットインテリジェンスに関する研究に取り組む。

O-RAN WG11 - Security Working GroupのNECの代表として、O-RANセキュリティの標準化に貢献。ネットワーク通信、携帯電話のネットワークとセキュリティに関する24年以上の経験を持つ。

2021年以降、MITRE ATT&CKに対して複数の脅威情報を提供し採用されている。
CISSPを保持。

執筆者
original
50

Dr. Sareena Karapoola
デジタルプラットフォームデリバリーユニット(DPDU)、NEC Corporation India Pvt Ltd

マルウェア解析、マルウェア検知技術開発、サイバースレットインテリジェンスに関する研究に取り組む。

2022年にインド工科大学マドラス校でコンピュータサイエンスの博士号を取得、サイバーセキュリティを学ぶ。他の研究対象として、新しいAIベースの検知や軽減戦略、現実世界のテストベッドとセキュリティリサーチ用のラベル付きデータセットがある。

スマートカードリーダーやアクセスコントローラ端末などの組み込み製品とシステムソフトウェアに対する10年以上の経験を持つ。