APT&標的型攻撃
攻撃グループ「Earth Preta」による新しいステルス戦略:マルウェアの隠蔽
攻撃グループ「Earth Preta」は、セキュリティソリューションの監視を回避するため、ツールやテクニック、プロシージャ(TTPs:Tools、Tactics、Procedures)を積極的に変えています。本稿では、Earth Pretaによる最新の攻撃キャンペーンで使用されるマルウェアやツールについて詳しく解説します。
トレンドマイクロでは前回、攻撃グループ「Earth Preta(別称:Mustang Panda)」による新しい攻撃キャンペーンの手口について解説しました。この攻撃キャンペーンでは、不正なGoogle Driveリンクや被害者を誘導するおとり文書が、スピアフィッシングメールを介して配布されます。以降も数ヶ月に渡って本攻撃キャンペーンの調査を続けた結果、未報告の情報窃取用マルウェアや、注目に値するツール類が新たに発見されました。さらにEarth Pretaは、セキュリティソリューションの回避を目的として、攻撃時のツールやテクニック、プロシージャ(TTPs:Tools、Tactics、Procedures)を積極的に変えていることが判明しました。本稿では、Earth Pretaによる使用が新たに確認されたマルウェアやツール類、およびそれらを用いた攻撃手段について詳しく解説します。
感染チェーン
前回の記事でも述べた通り、一連の攻撃はスピアフィッシングメールを起点として始まります。長期間に渡って本攻撃を分析した結果として、全体的な感染チェーンは下記のようになると考えられます。
今回はTTPsに基づき、攻撃のステップを「侵入経路」、「探索」、「権限昇格」、「水平移動・内部活動」、「コマンドコントロール(C&C:Command and Control)」、「情報窃取」の6つに分類しました。第一ステップである「侵入経路」のマルウェアやTTPsについては、その大半を前回の記事内で紹介しました。しかし、最近になってTTPsの一部に変更が入ったことが確認されました。以降、侵入経路で見られた変更点と、侵入経路以降の各攻撃ステップについて詳しく解説します。
侵入経路
前回の記事では、Earth Pretaの侵入経路を3つの種別(DLLサイドローディング、ショートカットリンク、ファイル拡張子の偽装)に分類し、それぞれについて解説しました。一方、攻撃者は2022年の10月から11月にかけて、マルウェア「TONEINS」、「TONESHELL」、「PUBLOAD」の配備法に関するTTPsに変更を加えました。その背景には、新しい手口によって検知を回避しようという狙いがあると考えられます。
Trojan.Win32.TONEINS
前回報告した侵入経路では、マルウェア「TONEINS」や「TONESHELL」へのGoogle Driveリンクがメール本文中に埋め込まれていました。一方、今回の新しい侵入経路では、Google Driveリンクがおとり文書中に埋め込まれるようになりました。この変更は、メールのスキャンサービスやゲートウェイ上のソリューションを回避するためと考えれます。おとり文章を開いた被害者は、不正なアーカイブをGoogle Driveリンクからダウンロードするように誘導されます。本アーカイブはパスワードで保護されていますが、そのパスワード自体も、おとり文書中に記載されています。一連の手法により、攻撃者はセキュリティ監視サービスの一部を回避できるようになります。
今回の新しい侵入経路による感染フローは図3の通りです。
新しい侵入経路で配布されるRARアーカイブの中身を調べたところ、マルウェア「TONEINS」に相当する「libcef.dll」と、マルウェア「TONESHELL」に相当する「~List of terrorist personnel at the border.docx」が含まれていました。これらのファイルによる感染フローは前回の記事で述べた「種別C」にほぼ一致します。しかし、検知回避の手段として、.docxとして偽装された実行ファイル中に、XORで暗号化されたデータが埋め込まれている点で異なります。例として、「~$Evidence information.docx」はOffice Open XML文書として偽装され、さらに展開ツール「7-zip」で開くことも可能など、一見するだけでは無害なファイルのように見えます。
しかし、解析を進めたところ、当該ファイル中の構造体「ZIPFILERECORD」の内部に、PE形式による実行ファイルが隠されていることが判明しました。マルウェア「TONEINS」である「libcef.dll」は、この実行ファイルを1バイト単位のXOR演算によって復号し、そこからPEヘッダーの位置を割り出し、ペイロードを指定のパス配下に作成します。
以降の感染フローについては前回の分析結果と概ね同様であり、詳細についてはこちらからご参照いただけます。
Trojan.Win32.PUBLOAD
最近では、マルウェア「PUBLOAD」についても、おとり文書内のGoogle Driveリンクから配布される事例が確認されています。
2022年10月以来、PUBLOADの新しい亜種が見られるようになりました。LACの報告にもある通り、本亜種はHTTPヘッダーを偽装してデータを送信します。前回の亜種と異なり、今回の亜種は、正当に見えるホスト名を含むHTTPヘッダーを用意し、これをパケットの先頭に付加します。これにより攻撃者は、不正なデータを正常な通信データ中に紛れ込ませようとしていると考えられます。HTTP本体については前回の亜種と同様であり、固定バイト列「17 03 03」や、RC4(Rivest Cipher 4)で暗号化された被害者情報が埋め込まれています。今回の調査では、稼働中のC&Cサーバからペイロードを取得することに成功したため、より後続の活動についても詳しく解析することが可能となりました。
PUBLOADはC&Cサーバから受信したペイロードについて、先頭の3バイトが「17 03 03」であるか、続く2バイトの数値がペイロードのサイズに一致するかをチェックします。その後、事前定義のRC4鍵を用い、暗号化されたペイロードを復号します。このRC4鍵は、C&Cサーバ側に送る被害者情報の暗号化に用いたものと同一であり、その値は「78 5A 12 4D 75 14 14 11 6C 02 71 15 5A 73 05 08 70 14 65 3B 64 42 22 23 20 00 00 00 00 00 00 00」となります。
PUBLOADは復号後のペイロードについて、その最初のバイトが0x06であるかをチェックします。復号後のペイロード内には別のペイロードが含まれ、そのデータは「23 BE 84 E1 6C D6 AE 52 90」とのXOR演算によって暗号化されています。
第二のペイロードを復号すると、その中には最終段階にあたる第三のペイロードが埋め込まれています。第三ペイロードは、データのアップロードやコマンドの実行など、バックドアとしての機能を備えています。
この他、PUBLOADの検体には、目を引くようなデバッグ文字列やイベント名が定義されていました。
総じて、PUBLOADは先述のTONESHELLと似たような形で進化し、共通点も多くなったと考えられます。例えば、アンチウイルスによる監視を回避する手段として、両マルウェアともおとり文書内に埋め込まれる(Google Driveリンクなど)ようになりました。
探索
標的システムへのアクセス権を掌握した攻撃者は、下記コマンドによって各種環境情報を取得します。
net user
net user <ユーザ名>
net user <ユーザ名> /DOMAIN
権限昇格
本攻撃キャンペーンでは、Windows 10のユーザアクセス制御(UAC:User Access Control)を回避するために、さまざまなツールが使用されることが分かりました。以降、各ツールについて詳しく解説します。
HackTool.Win 32.ABPASS
HackTool.Win32.ABPASSは、Windows 10のUACを回避するツールです。弊社の分析によると、このツールでは、著名なオープンソースプロジェクト「UACME」による以下の関数が再利用されています。
また、当該ツールについては、セキュリティベンダー「Sophos」の記事でも紹介されています。
本ツールは起動パラメータを受け取り、下記のデータをレジストリに書き込みます。
上記のレジストリ編集により、Windowsにおけるプロトコル「ms-settings(Windows設定アプリ)」の動作が改変されます。ここで、「ms-settings」はプログラム識別子(ProgID)と呼ばれるものです。ProgID配下のキー「CurVer」が設定されると、現在のProgID(今回の場合は「ms-settings」)がCurVerのデフォルト値にバージョニングまたはマッピングされます。結果として、ms-settingsの動作に関する設定は、独自に定義した別のProgID(今回の場合は「aaabbb32」)とすげ替えられます。ABPASSは、新しいProgID「aaabbb32」を追加した上で、それを開く際のシェルコマンドも定義します。一連のレジストリ編集後、「fodhelper.exe」または「computerDefaults.exe」を呼び出すことで、改変済みのプロトコル「ms-settings」を起動します。
HackTool.Win 32.CCPASS
HackTool.Win32.CCPASSは、Windows 10のUACを回避するもう1つのツールであり、上述のABPASSと同様、プロジェクト「UACME」の以下の関数を再利用して作られています。
CCPASSの動作はABPASSに類似しますが、プロトコルとして「ms-settings」の代わりに「ms-windows-store(Microsoftストアアプリ)」を不正利用する点で異なります。CCPASSによる動作の概要は、下記の通りです。
- プロトコル「ms-windows-store」に対する「アプリ関連付けのポップアップ表示」を無効化
- レジストリ上に新規のシェルを設定
- ドキュメント化されていないAPI「UserAssocSet」を呼び出してファイルの関連付け設定を更新
- WSReset.exeを呼び出してプロトコル「ms-windows-store」を起動
Windows 10以降、ファイルを開く際に、起動するアプリを選択するためのポップアップが新しく表示されるようになりました。CCPASSではこのポップアップを非表示にするため、以下のレジストリキーに新規エントリを追加し、プロトコル「ms-windows-store」に関連する全ポップアップ機能を無効化します。
HKCU\Software\Microsoft\Windows\CurrentVersion\ApplicationAssociationToasts
ポップアップを非表示化した後、CCPASSはプロトコル「ms-windows-store」のシェルコマンドを書き換え、最後にWSReset.exeを用いて当該プロトコルを起動します。
SilentCleanup
Windows 10には「SilentCleanup」と呼ばれるWindowsネイティブのサービスが存在します。このサービスには最も高い権限が付与されているため、UACを回避する目的で不正使用されることがあります。通常の場合であれば、本サービスによって以下の実行ファイルが起動されます。しかし、攻撃者はこの環境変数「%windir%」を任意のパスに書き換える手段を行使することで、権限昇格を実現します。
%windir%\system32\cleanmgr.exe
今回の攻撃者は、上記の手口を用いて「c:\users\public\1.exe」を起動したことが分かりました。
水平移動・内部活動
本攻撃ステップでは、マルウェア「HIUPAN」や「ACNSHELL」(MandiantおよびSophosが初めて分析結果を報告)が利用されます。これらのマルウェアは、自身をリムーバブルディスクに複製し、さらにリバースシェルを作成します。
USBワーム:「Worm.Win32.HIUPAN」と「Backdoor.Win32.ACNSHELL」
今回発見された2つのマルウェア「USBワーム」と「リバースシェル」(トレンドマイクロではそれぞれ「Worm.Win32.HIUPAN」、「Backdoor.Win32.ACNSHELL」として検知)は、先述の通り、リムーバブルドライブを介して自身を複製します。
両マルウェアによる感染フローを図18に示します。
はじめに、プログラム「USB Driver.exe」が「u2ec.dll」をサイドロードします。次に、このDLLがペイロード用のファイル「usb.ini」を読み込みます。当該のDLLおよびINIファイルには、下記のPDB文字列が含まれています。
G:\project\APT\U盘劫持\new\u2ec\Release\u2ec.pdb
G:\project\APT\U盘劫持\new\shellcode\Release\shellcode.pdb
上記の「U盘劫持」は、「リムーバブルドライブのハイジャック」を意味します。
この後USB Driver.exeは、自身がすでに端末内に正しくインストールされているかをチェックします。インストール済みの場合、さらに多くのリムーバブルドライブを感染させるため、「autorun.inf」と名付けたフォルダに自身のコピーを作成します。未インストールの場合、まず自身をフォルダ「%programdata%」配下にインストールした上で、自動起動用のレジストリキー「run」を設定することで永続化を図ります。
最後に、マルウェア「ACNSHELL」である「rzlog4cpp.dll」がサイドロードされます。本DLLは、通信ツール「ncat.exe」を用いてリバースシェルを作成し、攻撃者のサーバ「closed[.]theworkpc[.]com」に接続します。
コマンド・コントロール(C&C)
Earth Pretaは、「C&C」の攻撃ステップを実行するためにさまざまなツールやコマンドを用いました。例えば、WinRARの正規なバイナリをサーバ「103[.]159[.]132[.]91」から「rar1.exe」の名前でダウンロードする際に、証明書管理ツール「certutil.exe」を利用しました。
また、後続の処理に必要なマルウェアやアーカイブをサーバ「103[.]159[.]132[.]181」からダウンロードする際に、PowerShellを利用しました。
さらに、標的端末にインストール済みのWinRARバイナリを用いて、全てのマルウェアを展開する例も見られました。
今回、マルウェアの展開や動作を示す証跡が複数発見されましたが、マルウェアの実体については、全体の一部しか入手できませんでした。以降、収集した検体の中で特に際立った性質を持つものについて、個別に解説します。
Backdloor.Win32.CLEXEC
バックドア「CLEXEC」に相当するファイル「SensorAware.dll」には、コマンドの実行やイベントログの消去など、バックドアとしての簡素な機能が備わっています。
Backdoor.Win32.COOLCLIENT
バックドア「COOLCLIENT」について初めて紹介したのはSophosの記事であり、そこで扱われた検体のコンパイル日は2021年となっていました。一方、本稿で報告する検体のコンパイル日は2022年と、より新しいものとなります。この新しい検体は以前と同様の機能を持つ一方、新規機能として、自身のプロセス名をチェックし、拡張子「.pdf」または「.jpg」が含まれる場合にはおとり文書(work.pdf)を開く仕組みを備えています。また、デバッグ文字列を出力する関数「OutputDebugStrings」の呼び出しが削減されているなどの差異も見られます。本バックドアによる攻撃では、2つのプロセス下でファイル「loader.ja」が使用されます。1つ目のプロセスは「googleupdate.exe」であり、序盤でのサイドロード処理を行います。2つ目のプロセスは「winver.exe」であり、プロセスインジェクションの手口を介してバックドアとしての主機能を実行します。また、COOLCLIENTには後述する難読化の技術が施されています。
図24に、COOLCLIENTの全体的な実行フローを示します。
COOLCLIENTの起動パラメータに応じて、実行内容は下記のように変化します。
- 起動パラメータ「install(インストール)」の場合:下記のいずれかの方式でCOOLCLIENTのインストール処理を行う。
- 「googleupdate.exe work」を起動するサービスを「InstallSvc」の名前で作成する。
- 永続化のため、コマンド「C:\ProgramData\GoogleUpdate\googleupdate.exe work」が自動起動するように、レジストリキー「run」を設定する。
- 起動パラメータ「work(本処理)」の場合:次の段階で用いる不正なペイロード「goopdate.ja(COOLCLIENT)」を読み込み、復号した上で、winver.exeの内部にインジェクトする。
- 起動パラメータ「passuac(UACの回避)」の場合:プロセス「avp.exe」の存在を調べる。存在しない場合はCOMインターフェース「CMSTPLUA」を、存在しない場合はサービス「AppInfo RPC」を用いてUACを回避する。
COOLCLIENTの動作を解析したところ、暗号化された設定ファイル「time.sig」を読み込むことが判明しました。また、UDP(User Datagram Protocol)やTCP(Transmission Control Protocol)など、さまざまなプロトコルによって通信を行うことが可能です。Earth Pretaが用いるAPIや内部使用の文字列から判断すると、本バックドアは下記の機能を持つと推測されます。
- ポートマップの送信
- 接続の確立
- ファイルの読み込み
- ファイルの削除
- キー入力およびウィンドウの監視
Backdoor.Win32.TROCLIENT
バックドア「TROCLIENT」の詳細は、Sophosの記事によって初めて開示されました。TROCLIENTは先述のCOOLCLIENTと類似しますが、アンチデバッグ機能を備え、起動中のプロセスに文字列「dbg.exe」または「olly」が含まれているかのチェックを行います。
図28に、TROCLIENTの全体的な実行フローを示します。
TROCLIENTの起動パラメータに応じて、実行内容は下記のように変化します。
- 起動パラメータ「install(インストール)」の場合:下記のいずれかの方式でTROCLIENTのインストール処理を行う。
- 「C:\programdata\netsky\netsky.exe online」を起動するサービスを「InstallSvc」の名前で作成する。
- 永続化のため、コマンド「C:\programdata\netsky\netsky.exe online」が自動起動するようにレジストリキー「run」を設定する。
- 起動パラメータ「online(オンライン)」の場合:次の段階で使用するペイロード「free.plg」と「main.plg」を読み込み、それぞれをdllhost.exeの内部にインジェクトする。
- 起動パラメータ「passuac(UACの回避)」の場合:プロセス「avp.exe」の存在を調べる。存在しない場合はCOMインターフェース「CMSTPLUA」を、存在しない場合は「トークンの不正使用」によってUACを回避する。
本バックドアの機能は下記の通りです。
- ファイルの読み込み
- ファイルの削除
- キー入力およびウィンドウの監視
COOLCLIENTとTROCLIENTの類似点と相違点について、表4に示します。
以上に述べたマルウェアの他にも、リモートアクセス型トロイの木馬「PlugX」を読み込む複数のシェルコードが発見されました。PlugX自体はよく知られたマルウェアファミリであるため、その詳細については割愛します。
情報窃取
弊社のテレメトリ情報より、Earth Pretaが被害者から機密情報を窃取する際に使用したさまざまな手口が明らかになりました。例として、情報を収集して攻撃者側のサーバに送信する際には、WinRARや通信用ツール「curl(またはcURL)」が利用されました。また、これまでには見られなかったマルウェアのコードも発見され、被害者から窃取した情報は、独自のフォーマットによるファイルに保存されることが分かりました。以降、Earth Pretaが情報窃取のために用いた独自の手法について、詳しく解説します。
WinRARとcurl
情報窃取の手段として、被害端末にインストール済みのWinRARバイナリや、アップロードされたcurlのプログラムが利用されたことが、監視ログの内容から判明しました。その際に用いられた実行コマンドを図30に示します。図中、ファイル「log.log」の実体は正規なcurlのバイナリです。窃取された情報は、全て攻撃者が管理するFTP(File Transfer Protocol)サーバに送信されました。
攻撃者が管理するFTPサーバのアカウント情報やパスワードが偶然発覚するケースもありました。実際にFTPサーバ内を調べたところ、攻撃者は確かに個人情報や機密文書の窃取に注力している様子がうかがわれました。今回確認した範囲内において、サーバに保存されていたファイルの大半はパスワード付きで圧縮され、さらに、被害者のホスト名やディスクドライブ別に分類されていました。
HackTool.Win32.NUPAKAGE
Earth Pretaは有名な正規のツールを不正利用しただけでなく、高度にカスタマイズされた情報窃取型マルウェア「NUPAKAGE」を自ら作成して使用しました。「NUPAKAGE」という名称は、下記に示す当該マルウェアの独特なPDB文字列から取ったものです。
D:\Project\NEW_PACKAGE_FILE\Release\NEW_PACKAGE_FILE.pdb
マルウェア「NUPAKAGE」は、起動時にパスコードの入力を要求します。入力されたパスコードが正しい場合は、情報窃取を行い、その結果を独自のフォーマットでファイルとして保存します。Earth Pretaは本マルウェアに対して起動パラメータを追加したり難読化を施したりなど、柔軟性や回避性能の向上を意図したアップグレードを継続的に行っていると考えられます。NUPAKAGEのデフォルト動作では、下記の拡張子を持つ文書ファイルのみを情報窃取の対象とします。
- .doc
- .docx
- .xls
- .xlsx
- .ppt
- .pptx
また、ファイル名が「$」や「~」から始まる文書については、情報窃取の対象外となります。こうしたファイルは、システムが作成した一時ファイル、またはおとり文書に偽装したPE実行形式(「侵入経路」の項で説明した通り)に該当するケースが大半を占めるためです。
本ツールを起動する際のコマンド形式は下記の通りです。
malware.exe <passcode> <start> <end> <chunk> -s <extension_A> <extension_B> …
上記の「passcode」およびそれ以降は起動パラメータであり、その内容は表5の通りです。
マルウェア「NUPAKAGE」を使用する際には、固有のパスコードを第一起動パラメータで指定する必要があります。図32に示す通り、NUPAKAGEはまず第一起動パラメータで指定されたパスコードをチェックし、未入力の場合や正しくない場合には処理を終了します。今回の調査結果として、正しいパスコードの値は検体毎に異なっていました。
パスコードが正しい場合、NUPAKAGEは2つのファイル「xxx.zip」と「xxx.z」を作成します。「xxx.zip」は情報窃取の履歴を記録するログファイルですが、そのオフセット「0x0(ファイル先頭)」から0x100バイト分に渡る偽のZIPヘッダーが埋め込まれています。ログの実体はオフセット「0x100」から始まり、図33に示す通り、1バイト値とのXOR演算で暗号化されています。
実際に作成されたログファイルの内容を調べたところ、窃取対象ファイルが置かれていたパスや、元のファイルサイズ、圧縮後のファイルサイズなど、さまざまな情報が確認されました。こうした情報は攻撃者にとって、実際に窃取対象となったファイルを後でトレースする際に役立つと考えられます。一方、セキュリティ調査チームから見ても、窃取された情報の量や被害の規模を推定する際に役立つものと言えるでしょう。下記に、ログの実体の例を示します。
[+] Program ready!
[+] FILE ORIGINAL PATH: C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\1494870C-9912-C184-4CC9-B401-A53F4D8DE290.pdf
[+] FILE PATH SIZE: 198
[+] FILE ORIGINAL SIZE: 186837
[+] FILE COMPRESSED SIZE: 183734
[+] FILE ORIGINAL PATH: C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\Click on ‘Change’ to select default PDF handler.pdf
[+] FILE PATH SIZE: 210
[+] FILE ORIGINAL SIZE: 186837
[+] FILE COMPRESSED SIZE: 183734
<中略>
[*] File or folder access denied!
[*] File or folder access denied!
[+] All completed!
マルウェア「NUPAKAGE」が作成する拡張子「.z」のファイルには、窃取対象ファイルに関する各種バイナリデータが独自の形式で格納されます。NUPAKAGEはまずランダムな鍵データを生成し、それ自体を独自のアルゴリズムで暗号化します。拡張子「.z」のファイル中、先頭0x80バイト分にその暗号化された鍵データが格納されます。オフセット「0x80」以降は、窃取対象ファイルごとにバイナリデータが配列形式で格納されます。
上述のバイナリデータとして、窃取対象ファイルの内容そのものに加え、MD5ハッシュ値や当該ファイル名の長さ、圧縮後のファイルサイズ、元のファイルサイズ、ファイル名などが含まれます。また、各窃取対象ファイルに対応するバイナリデータの区切りを明確にするため、それぞれの末尾に固定バイト列「55 55 55 55 AA AA AA AA FF FF FF FF 99 99 99 99」が付加されます。
特記事項として、NUPAKAGEではバージョンが新しくなるにつれ、より多くの難読化が施される傾向が見られます。これは、静的解析を阻止するためと考えられます。
HackTool.Win32.ZPAKAGE
ZPAKAGEもファイルのパッキング(圧縮)用に設計されたマルウェアの一種であり、動作面ではNUPAKAGEに類似します。例えば、想定外の用途による使用を避けるため、正しいパスコードの入力を要求します。図36の例において、正しいパスコードは「start」として定義されています。
ZPAKAGEも起動パラメータを受け取りますが、その種類はNUPAKAGEほど多くありません。本ツールを起動する際のコマンド形式は下記の通りです。
malware.exe <passcode> <time>
先述の通り、ZPAKAGEはNUPAKAGEと類似した動作を行います。例えば、ファイル名が「$」や「~」で始まる文書については、窃取対象外とします。また、ZPAKAGEも拡張子「.z」および「.zip」の2ファイルを作成します。また、拡張子「.zip」のファイルには情報窃取の履歴が格納され、拡張子「.z」のファイルには各種バイナリデータが格納される点も、NUPAKAGEと同様です。
一方、ZPAKAGEでは、拡張子「.z」のファイル容量を節約するため、窃取対象ファイルの内容をzlibアルゴリズムで圧縮する機能が備わっています。また、ファイル毎に圧縮の有無を示すBoolean型フィールド「type」が追加されています。zlibの圧縮によって容量が減る場合、typeは「1」に設定されます。それ以外の場合、typeは「0」に設定され、zlibによる圧縮は行われません。ただし、いずれの場合もXORによる暗号化は行われ、その鍵データとして固定文字列「qwerasdf」が使用されます。
脅威ハンティング
2022年10月以降、Earth PretaはTTPsを変更し、パスワード付きアーカイブを使用するようになりました。例えば、VirusTotal上で発見されたTONEINSの検体について、Relations(関連)タブ上では関連ファイルが全く表示されませんでした.。
SHA256:8b98e8669d1ba49b66c07199638ae6012adf7d5d93c1ca3bf31d6329506da58a
しかし、Behaviors(挙動)タブ上では2つのファイルが開かれました。「侵入経路」の項で述べた通り、偽文書のファイル中には、後続のペイロードが埋め込まれています。
~$Evidence information.docx
~$List of terrorist personnel at the border.docx
図39に、VirusTotal上で「List of terrorist personnel at the border」を検索した結果を示します。第一のファイルは上述したTONEINSのDLLファイルであり、第二のファイルは無害な実行ファイルです。後者は元々以下の名称のファイルが、VirusTotal上には「List of terrorist personnel at the border.exe」の名前でアップロードされたと考えられます。
adobe_licensing_wf_helper.exe
第三のファイルはパスワード付きアーカイブであり、先と同様の名前「List of terrorist personnel at the border[1].rar」が付与されています。パスワードについてはこの時点で不明であったため、当該ファイルを展開することはできませんでした。しかし、Relationsタブを見ると、実行元(Execution Parents)として「Letter Head.docx」という名前の文書ファイルが挙がっていました。
「Letter Head.docx」には、Google Driveへのリンクとパスワードが記載されています。文書の内容自体はミャンマー連邦共和国の行政に関するものであり、ビルマ語で書かれています。
Google Driveのリンク先にあるファイルを調べたところ、先述のVirusTotal上で発見されたパスワード付きアーカイブと同一であることが判明しました。
パスワード付きアーカイブを用いる侵入経路も、はじめに「侵入経路」の項で述べた方式とほぼ同一です。具体的に、まず被害者はおとり文書を受信します。次に、メール本文中ではなく、そのおとり文書内に埋め込まれたGoogle Driveへのリンクをクリックして、パスワード付きアーカイブをダウンロードします。正しいパスワード自体もおとり文書内に記載されているため、被害者はこれを用いてアーカイブを展開することが可能です。
パスワード付きアーカイブに実行元ファイルが挙がっていた経緯として、まず、VirusTotalのサンドボックス実行エージェントが、Letter Head.docx内にある全てのリンクをクリックすることが判明しました。この結果、Internet Explorerのウィンドウが開かれ、ダウンロードのポップアップが表示されます。
このダウンロード用ポップアップが表示されると、ユーザがSaveボタンを押さなくても、Internet Explorerによってバックグラウンドで自動的にダウンロードが行われます。
ダウンロードされたファイルはキャッシュフォルダ「INetCache」に保存され、RARファイルとして見える状態になります。
C:\Users\user\AppData\Local\Microsoft\Windows\INetCache\IE\R0IAZP7Z\List%20of%20terrorist%20personnel%20at%20the%20border[1].rar
以上のようにRARファイルがInternet Explorerによって自動でダウンロードされた結果、「Letter Head.docx」がその実行元として扱われるようになります。
こうした検体の挙動を念頭に、本攻撃キャンペーンの脅威ハンティングを押し進めることが可能です。今回、より多くのパスワード付きアーカイブを発見する目的で、下記の検索クエリを試しました。
tag:rar tag:encrypted name:INetCache size:500kb+
上記クエリにより、パス中にフォルダ名「INetCache」を含み、十分なサイズを持ち、かつ暗号化されたRARファイルを検索できます。実際の調査結果として、TONESHELLのアーカイブに相当するRARファイルが新たに発見されました。また、その実行元は「Notic(20221010)(final).docx」となっていました。
興味深いことに、これまでに確認された全ケースにおいて、攻撃者はアーカイブのパスワードとして同じ日付形式(DD-MM-YYYY)を使用しました。
点と点を結ぶ
調査中、同一人物に繋がると考えられる複数のデータポイントが確認されました。例として、異なるマルウェアに属する複数の検体から「TaoZongjie」という名前が浮かび上がりました。また、Avastが2022年12月に報告したGitHubリポジトリ「YanNaingOo0072022」には、TONESHELLを含むさまざまなマルウェアの断片が格納されていました。さらに、これらの異なるマルウェア間でも、類似する難読化の手法が用いられているなどの接点が見られました。
ユーザ「TaoZongjie」
上述した「TaoZongjie」という名前および文字列が、さまざまな検体やメッセージ内で使用されていることが分かりました。例えば、攻撃用ツール「Cobalt Strike」を用いたマルウェアや、TONESHELLのC&Cサーバ上に登録されたWindowsユーザ名、さらにはTONESHELLによるポップアップメッセージから、当該の名前が発見されました。
調査の起点となったのは、TONESHELLのC&Cサーバ「38[.]54[.]33[.]228」です。このサーバではリモートデスクトップサービスが有効化され、「TaoZongjie」という名前のWindowsユーザが登録されていました。
Earth Pretaの攻撃キャンペーンに関わる検体を調査していた際、Cobalt Strikeに関する2021年4月付けのツイートが目にとまりました。一見したところ、Cobalt Strikeが本攻撃キャンペーンと同一の方式で利用されたようであり、具体的には、Google Driveのリンクによるマルウェアの配布、DLLサイドローディング、タスクスケジュールの登録といった手口が確認されました。
本ツイートで紹介された攻撃の感染フローとして、まず、Google Driveリンクを介してアーカイブファイルが被害者側に配布されます。このアーカイブ内には、正規なEXEファイルと不正なDLLファイル、そしてビルマ語で書かれたおとり文書が含まれています。EXEを介して不正なDLLがサイドロードされると、DLL内部にリソースとして格納されている別の正規なEXEと不正なDLLが被害端末内にコピーされます。分析によると、当該の検体は「By:Taozongjie」の名前でイベントを登録します。
また、TONEINSに相当する以下の検体の1つに「taozongjie」の名前でイベントを登録するものも発見されました。
SHA256:7436f75911561434153d899100916d3888500b1737ca6036e41e0f65a8a68707
また、TONESHELLに相当する以下の別の検体には、「Tao!」または「zhang!」というメッセージボックスを表示させるだけのエクスポート関数が定義されていました。先述の「taozongjie」とは若干スペルが異なりますが、似通っているとも言えるでしょう。
SHA256:d950d7d9402dcf014d6e77d30ddd81f994b70f7b0c6931ff1e705abe122a481a
さまざまな検体の解析結果を踏まえると、攻撃者は「taozongjie」という名前を何らかのフラグとして使用している可能性が考えられます。
GitHubユーザ「YanNaingOo0072022」
GitHubユーザ「YanNaingOo0072022」は、AvastおよびESETの双方から報告されています。当該リポジトリには、最新バージョンのTONEINSやTONESHELLの他、ESETが「MQsTTang」と名付けた新規ツール「QMAGENT」など、さまざまなマルウェアが格納されています。調査時点で当該ユーザのGitHubスペースはアクセス可能であり、5 つのリポジトリ「View2015」、「View2016」、「1226」、「ee」、「14」が配備されていました。このうち、「View2015」と「View2016」の配下にはファイルがありませんでした。
リポジトリ「1226」
本アーカイブに含まれるファイルの内容は全て同一ですが、それぞれ異なったファイル名が付与されています。これは、被害者毎に、ファイルが別々の名前で用意されたものと考えられます。
圧縮ファイルを展開したところ、拡張子を「.doc」に偽装した2つのファイルが見つかり、その中身の一部は、1バイト値とのXOR演算で暗号化されていました。両ファイルとも「侵入経路」の項で述べた構造(DOCXファイル中にPE実行形式のペイロードを埋め込む)を持ち、それぞれマルウェア「TONEINS」と「TONESHELL」に該当することが判明しました。
リポジトリ「14」
アーカイブ「Documents.rar」に含まれるファイル「Documents members of delegation diplomatic from Germany.Exe」は、MQTTプロトコルによって通信を行う新しいバックドア型マルウェアです。本マルウェアの技術的な詳細は、ESETによって2023年3月に報告されました。また、同報告内において当該マルウェアは「MQsTTang」の名前で呼ばれました。
弊社では1月以降、特に行政機関の関係者を標的とする攻撃キャンペーンにおいて、MQsTTangが侵入経路に利用される新たな事例を複数確認しています。MQsTTangの際立った特徴として、C&Cサーバとの通信にMQTTプロトコルを用いる点が挙げられます。通常、本プロトコルはIoT(Internet-of-Things)機器に使用されるものです。この技術により、攻撃者はC&CサーバをMQTTプロトコルの背後に巧妙に隠すことが可能です。
リポジトリ「ee」
アーカイブ「CVs Amb.rar」に含まれるファイル「CVs Amb Office PASSPORT Ministry Of Foreign Affairs.exe」は、マルウェア「QMAGENT」に該当します。
結論
セキュリティ研究者は約一年間に渡ってEarth Pretaが展開する攻撃キャンペーンや、そこで使用されるツールの特定と解析を行ってきました。トレンドマイクロでも、攻撃者が用いるTTPsやマルウェア、発生事象の分析に基づき、Earth Pretaに関連する攻撃やツールの一部を特定するに至りました。しかし、2022年10月以降、Earth Pretaはマルウェア「TONEINS」、「TONESHELL」、「PUBLOAD」の侵入経路を変更しました。具体的には、不正なアーカイブやGoogle Driveリンクを、メール本文内ではなく、おとり文書内に埋め込むようになりました。また、アーカイブをパスワードで暗号化する手口も確認されました。
弊社の分析によると、Earth Pretaは不正なペイロードを偽のファイル内に隠し、正規なファイルとして偽装する手口を用いる傾向があります。これは、検知回避に有効な手段として知られています。また、権限昇格に際しては、オープンソースのリポジトリ内にある既存のコードを再利用する傾向が見られます。一方、情報窃取に際しては、機密文書を窃取するツールを独自に開発して利用したことが、調査によって判明しました。
総じて、Earth Pretaは高度に組織化された攻撃グループであり、TTPsを継続的に刷新して開発技術を高め、多彩な攻撃用ツールやマルウェアを作成し続ける能力を保持していると考えられます。
標的型攻撃(APT:Advanced Persistent Threat)などによる脅威を阻止するため、企業や組織では、従業員や業務パートナー向けに、フィッシング攻撃への注意を呼びかける教育や訓練を実施することを推奨します。特にメールを開く際には、覚えのない送信者や件名に警戒するように周知することが重要です。
高度に進化した脅威からシステムを保護するため、企業や組織では、エンドポイントやサーバ、ネットワーク、メール通信など複数のチャネルを包括的に監視し、脅威を事前に検知してブロックする機能を備えたセキュリティソリューションの導入を推奨します。
侵入の痕跡(Indicators of Compromise、IoC)
侵入の痕跡(IoC)はこちらで確認してください。
MITRE ATT&CK Tactics and Techniques
MITRE ATT&CK Tactics and Techniquesはこちらで確認してください。
参考記事:
Pack it Secretly: Earth Preta’s Updated Stealthy Strategies
By: Vickie Su, Nick Dai, Sunny Lu
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)