トレンドマイクロでは2020年以降に日本国内の組織を対象としたAPT・標的型攻撃を複数観測し、その攻撃者グループを「Earth Tengshe」と命名しました。この一連の攻撃は、日本を狙う標的型攻撃「A41APT」キャンペーンとして報告されている攻撃活動の一部とみられ、「SigLoader(DESLoader)」や「SodaMaster(DelfsCake)」、「P8RAT(GreetCake)」などのマルウェアが悪用されることで知られています。トレンドマイクロが2021年4月以降に確認した当該キャンペーンの攻撃では、SigLoaderから最終的に実行されるペイロードとして、以前の報告時点からバージョンアップされたSodaMasterや、新たに確認された「Jackpot」というマルウェアが用いられたことを確認しています。Earth Tengsheは現在も日本を含めた地域において、活発に攻撃を行っていると考えられます。
■関連グループ「APT10」
トレンドマイクロでは、A41APTキャンペーンやその関連の攻撃を行っている攻撃者グループをEarth Tengsheとして定義していますが、後述するようにEarth Tengsheは攻撃者グループ「APT10」(別名:menuPass、Stone Panda、POTASSIUM、Red Apollo、CVNX、ChessMaster)の関連グループであると判断しています。ここでは前提としてAPT10について解説します。
APT10は中国が関与しているとされる攻撃者グループです。過去には世界中のマネージドサービスプロバイダ(MSP)への侵害を起点とした攻撃キャンペーンを行ったことにより、広く知られています。日本国内では、特に2016年頃から2018年末までの期間において、RedLeaves、ChChes、ANEL、Cobalt Strike、QuasarRAT、FYAntiなどのマルウェアを用いて、政府、防衛、航空、通信、金融、資源、経済関連組織、学術機関などの幅広い業種・組織へ非常に多数の攻撃を行っていました。
またAPT10に関連する動きとして、2018年12月、米司法省はAPT10およびその侵害活動に関連するとして2人の中国人を訴追し、各国もAPT10に関する注意喚起や警告を発表しました。これ以降、2020年末のA41APTキャンペーンに関する報告まで、日本国内では目立ったAPT10による攻撃活動は報告されていませんでした。
■「Earth Tengshe」の攻撃対象
トレンドマイクロでは当該キャンペーンについて、特に2021年4月以降、複数の日本国内組織もしくはその関連組織などに対してSigLoaderやSodaMaster、またJackpotを用いた攻撃が行われている形跡を確認しています。対象組織の所在地域は日本、台湾、タイ、アメリカ、また対象業種は判明している範囲で、エレクトロニクス、エネルギー、自動車、防衛などに関連する組織です。
近年Earth Tengshe以外のAPT・標的型攻撃においても、本来の目標と考えられる日本国内の組織拠点を直接の標的とせず、最初の侵害対象として海外拠点や現地法人、また関連組織を狙うITサプライチェーンへの攻撃が目立っています。Earth Tengsheによる攻撃も、同様の手口を用いているとみられます。トレンドマイクロが過去に確認したインシデントの事例などからも、海外拠点、また海外におけるビジネスパートナーなどを含む関連組織は、一般に日本国内拠点よりもガバナンスが効きづらく、十分なセキュリティ施策や迅速なインシデント対応が難しい傾向があります。攻撃者はそのような防御側の弱い部分を狙い、攻撃を行っているとみられます。
■マルウェア「SigLoader」の実行チェーンの概要
Earth Tengsheによる当該キャンペーンでは、すべてのケースにおいて、最終的なペイロード(EXEもしくはDLL)をメモリ上でファイルレスに実行するためのローダとして「SigLoader」が使用されていました。当該キャンペーンで観測したSigLoaderの実行チェーンは、「A41APT」として2020年に報告された攻撃キャンペーンと大きな変わりはなく、次のような複雑で多層的なレイヤーで構成されています。
最初のレイヤーとなるSigLoader(dbus-1-3.dll)は、正規のアプリケーション(EAPMethods.exe)を悪用したDLL Side-Loadingによって読み込まれます。SigLoaderは、ハードコードされたDLLファイル名(vac.dll)を同階層のディレクトリから検索し読み込みます。DLLファイル名はSigLoaderごとに異なります。読み込まれるDLLは、Microsoftによる有効なデジタル署名がついていますが、これはMS13-098/CVE-2013-3900(※11)で指摘されている「Authenticode署名の検証中にPEファイルダイジェストを適切に検証しない」問題を悪用して改ざんされています。SigLoaderは、CVE-2013-3900の問題を悪用して正規デジタル署名の末尾に追記された暗号化データを読み込み、ハードコードされた復号手順で復号してメモリ上で実行します。
復号されたデータは、ローダとして機能するシェルコード(Layer2)と、セクションが不規則な順序で並べ替えられたDLL(Layer3)で構成されています。Layer2のシェルコードが実行されると、Layer3のDLLを正しい順序に並べ替えてメモリ上で実行します。Layer3のDLLは、Layer1のSigLoaderと同様の機能をもち、ハードコードされたDLLファイル名(ExecModelClient.dll)を検索し、読み込みます。このDLLファイルも同様にCVE-2013-3900を悪用しており、Layer1と同じ手順でシェルコード(Layer4)が復号されて実行されます。
最終的にメモリ上で実行されるペイロードは、DLLもしくはEXEファイルです。以降では、これらのペイロードについて詳しく見ていきます。
ペイロードの技術的分析
2021年を通して観測したSigLoaderのペイロードとしては、既知の「P8RAT(別名: GreetCake)」や「FYAnti」、「SodaMaster」、「Meterpreter」が観測されたほか、バージョンアップされた「SodaMaster」や「Jackpot WebShell」という未公開のマルウェアなどが新たに観測されました。
SodaMaster(2021-04-16)
「SodaMaster(別名DelfsCake)」は、SigLoaderのペイロードの1つとして知られる(※1,2,3)TCPベースのバックドアです。今回新たに発見されたSodaMasterは、エクスポートテーブルに含まれるタイムスタンプから2021年4月16日に作成されたと思われ、大幅にバックドアコマンドが追加されていました。
2020年に観測されたSodaMasterに実装されていたコマンドは、以下のように「d」、「f」、「l」、「s」の4つのみでした。
しかし最近観測されたSodaMasterのバックドアコマンドは、一部は未実装ですが、アルファベットの「c」から「x」までサポートされていました。またコマンドの分岐処理は、switch文を使わずにループ処理でコマンドハンドラを検索する変則的な手法が用いられていました。
各コマンドとそれに対応するアクションの一覧は次の通りです。
command | action | Compilation time of SodaMaster | ||
---|---|---|---|---|
2019-01-07 | 2019-06-10 | 2021-04-16 (Datetime in Export Table) | ||
c |
Outlookの認証情報の窃取とC&Cサーバへの送信。このコードはHacking Teamのリークされたソースコードを利用していると思われる。 https://github.com/hackedteam/core-win32/blob/master/HM_PWDAgent/outlook.cpp |
N/A | N/A | Enabled |
d | DLLをダウンロードし、新規スレッドでLoadLibraryWを使用しDLLを読み込み・実行 | Enabled | Enabled | Enabled |
e | – | N/A | N/A | Not Implemented |
f | C&C通信に使用するRC4鍵をC&Cサーバに送信完了したことを示すフラグを設置 | Not Implemented | Enabled | Enabled |
g | シェルコードをダウンロードし、新規スレッドで実行。後述の「s」コマンドとの違いは、ユーティリティ関数テーブルが渡されない。 | N/A | N/A | Enabled |
h | 新規スレッドを作成し、指定したホスト/ポートに対してRaw IPパケットの送信 | N/A | N/A | Enabled |
i | 新規スレッドを作成し、指定したホスト/ポートに対して0x20000バイトの0xCCで埋められたパケットを送信 | N/A | N/A | Enabled |
j | – | N/A | N/A | Not Implemented |
k | – | N/A | N/A | Not Implemented |
l | C&C通信の間隔の設定 | Not Implemented | Enabled | Enabled |
m | CreateCompatibleBitmap APIを使用してスクリーンショットをBMP形式で取得し、送信 | N/A | N/A | Enabled |
n | – | N/A | N/A | Not Implemented |
o | – | N/A | N/A | Not Implemented |
p | – | N/A | N/A | Not Implemented |
q | キーロガー用のスレッドを新規作成。ただし、このバージョンではロギングされた内容を外部送信する機能はなし。 | N/A | N/A | Enabled |
r | キーロガーの停止 | N/A | N/A | Enabled |
s | シェルコードをダウンロードし、新規スレッドで実行。この際、親スレッドで使用されていたC&C通信用の関数など複数のユーティリティ関数のテーブルがシェルコードの引数に渡される。 | Enabled | Enabled | Enabled |
t | – | N/A | N/A | Not Implemented |
u | – | N/A | N/A | Not Implemented |
v | – | N/A | N/A | Not Implemented |
w | 指定したテキストをメッセージボックスで表示 | N/A | N/A | Enabled |
x | – | N/A | N/A | Not Implemented |
WebShell「Jackpot」
SigLoaderの新たなペイロードとして観測された「Jackpot」は、C/C++で記述されたWebShellです。コンパイルタイムは2021年1月1日となっており、2021年に作成された可能性がありますが、Earth Tengsheによる一連の攻撃の中で、コンパイルタイムが改ざんされたファイルも複数見つかっていることから、十分に信頼できるアーティファクトとは言えないという点に注意してください。
Jackpotは、他の多くのバックドアのようにクライアントとして動作するのではなく、HTTP APIを使用してWebサーバとして動作し、攻撃者からコマンドを受け付けます。そのため、Jackpotは外部からアクセス可能な公開システムに感染することを想定しており、公開システム侵害後の攻撃の足掛かりとなるマルウェアであると考えられます。このようなAPIを使用したWebShellの実装は、攻撃者グループ「Tropic Trooper」によるWebShellやOwlProxyなど、中国が関与しているとされる攻撃者グループによって多用されることで知られています。トレンドマイクロで観測した複数のJackpotは、被害環境のドメイン名を含むURLがハードコードされており、攻撃者が被害組織を明確にターゲットとしていることがうかがえます。
「Jackpot」のCommunication Protocol
トレンドマイクロで観測したJackpotは、ハードコードされたURLへのPOSTリクエストのみを処理します。それ以外のメソッドによるリクエストに対しては、正規の応答に見せかけたレスポンスを返します。攻撃者クライアントは、後述する独自のメッセージパケットをカスタムBase64とRC4で暗号化して送信します。この際、次のようなパスワードによる認証プロセスを経ることで、バックドア機能が有効化され、以降のバックドア処理が可能になる仕組みになっていました。これは、不特定多数がアクセス可能な公開システムにJackpotを感染させることを想定し、意図しないリクエストを処理しないための予防策と考えられます。
Jackpotが受け取るデータのフォーマットについて詳しく見ていきます。HTTPボディに含まれるデータは、次の2つのステップで復号されます。
- ハードコードされた改変Base64テーブルを用いたカスタムBase64によってデコード
- デコードしたデータの先頭16バイトを鍵として、後続するデータをRC4で復号
例として、初回認証時のHTTPリクエストと、含まれるメッセージのフォーマットを以下に示します。
メッセージには、バックドア処理に必要な「コマンドID(後述するように内部ではPacktypeと呼ばれる)」や、コマンドの実行に必要な引数やデータを指す「ペイロード」が含まれています。また、メッセージには、処理時には無視されるデータが含まれることから、このデータは「ジャンクデータ」と考えられます。このジャンクデータは、おそらくランダムなデータと考えられ、メッセージを暗号化した際に規則的なパターンが現れないようにするための工夫だと推測されます。メッセージの最後には、メッセージの完全性を担保するための2バイトのチェックサムが含まれ、メッセージの処理中に検証されます。このチェックサムはカスタムCRC-16アルゴリズムにより算出されていました。
JackpotはコマンドIDに基づく処理を実施した後、同様のフォーマットでメッセージを構築し、同様にカスタムBase64とRC4で暗号化してレスポンスを返します。以下に認証成功時のレスポンスの例を示します。
認証成功時には、「jackpot//<CODE_PAGE>」のように、感染システムのコードページが含まれたメッセージが返ります。このように、Jackpotは後述するバックドア処理のレスポンスなどに「jackpot(=大成功)」という文字列を含めて応答するという特徴を持っています。
「Jackpot」のBackdoor Commands
メッセージの復号・検証が完了するとバックドア処理に進みます。Jackpotにおけるバックドアコマンドに対するアクションは、前述のメッセージ含まれる「コマンドID」と「ペイロード」の組み合わせで決定されます。コマンドIDは内部的には「Packtype」と呼ばれ、現在観測しているJackpotでは0~10の値をサポートしています。各コマンドIDには、(そのコマンドが引数を必要とする場合)サブコマンドが割り当てられています。サブコマンドは、メッセージのペイロード部に文字列として格納されてJackpotに渡されます。サブコマンドへの引数は、ほとんどの場合で「;;;」という文字列をデリミタとして、サブコマンドの直後に連結されて渡されます。
各コマンドIDとペイロードの組み合わせとそれらに対応するアクションの一覧は次の通りです。
id | sub-command (デリミタを含む) | action |
0 | – | パスワードによる認証の実施 |
1 | CloseSession | 現在のセッションの終了 |
2 | GetSystemInfo |
実行環境の以下情報の収集・送信
|
3 | – | リバースシェルセッションの開始(cmd.exeの起動) |
4 | – | リバースシェルセッションの終了(cmd.exeの終了) |
5 | – | cmd.exe経由での任意コマンドの実行 |
6 | DRIVE | ドライブ情報の列挙 |
---|---|---|
– | 指定したディレクトリ配下のアイテム列挙 | |
7 | EXECUTE;;; | 指定したファイルの実行 |
DELETE;;; | 指定したファイルの削除 | |
8 | UPLOAD;;; | ファイルハンドルのオープン |
CloseFile | ファイルハンドルのクローズ | |
ChangeFileTime | ファイルのタイムスタンプを変更 | |
– | ファイルのアップロード | |
9 | DOWNLOAD;;; | ファイルハンドルのオープン |
CloseFile | ファイルハンドルのクローズ | |
– | ファイルのダウンロード | |
10 | – | シェルコードの取得 |
STARTSHELLCODE;;; | シェルコード用バッファの初期化 | |
CHECKSHELLCODE;;; | シェルコードの検証 | |
RunShellcode!@# | CallWindowProcAを用いてシェルコードの実行 | |
STOPSHELLCODE;;; | シェルコード用バッファの削除(=停止) |
■A41APTキャンペーンに関連する攻撃者グループの帰属に関する考察
トレンドマイクロでは2018年において、前述のCobalt StrikeやFYAnti、またQuasarRATを用いたAPT10による攻撃を観測しています。また、2018年当時に確認された各検体の特徴と2020年以降に確認された各検体間における特徴が一致することを確認しています。特に最終的なペイロードを実行するまでの過程で動作するローダであるFYAntiや、メモリ内へ展開・実行される.NET製のローダは独特の特徴を持っています。これらマルウェアにおける技術的特徴の一致、また正規ファイルから実行が開始されDLL Side-Loadingにより暗号化されたペイロードを実行する手法、また攻撃対象といった一連のTTPsが近しいことから、トレンドマイクロではAPT10とA41APTキャンペーンを実施している攻撃者グループには一定の関連があると判断します。
一方、A41APTキャンペーンでは2018年当時にはAPT10が用いることが把握されていなかったSigLoaderやSodaMaster、また今回初めて確認されたJackpotといったマルウェアが用いられている点、初期侵入経路としてスピアフィッシングメール以外に、SSL-VPN製品が用いられている点など、過去のAPT10関連の事例とは異なるTTPsが確認されています。そのため、トレンドマイクロではA41APTキャンペーンを実施している攻撃者グループについて、新たに「Earth Tengshe」という名称を採用しています。
■おわりに
APT10に関連する攻撃者グループ「Earth Tengshe」は、2018年以前に用いられた一部のマルウェアと新たなマルウェアの両方を用いた攻撃を、少なくとも2020年以降、継続的に実施しています。現在把握されている範囲では、主な攻撃対象は特に日本に関連する組織です。攻撃手法は2018年以前とは異なり、初期侵入経路にSSL-VPN製品を悪用する点や、SigLoaderやSodaMaster、Jackpotといった複数のマルウェアを用いる点が特徴的です。また、攻撃対象については、攻撃の発覚や対処を遅らせるため、意図的に標的組織の海外に存在する拠点・関連組織を最初の侵害対象としています。
2021年末時点で既に関連の攻撃は一定期間継続しており、また攻撃対象も日本国内の組織を中心として一定の広がりがあることを確認しています。以上のようにA41APTキャンペーンおよびEarth Tengsheによる攻撃は今後も継続する可能性があるとみられるため、注視・警戒が必要です。
■IoC
外部公開されているIoC情報はこちらを参照ください。なお、当記事で言及したバージョンアップしたSodaMasterとJackpotの検体は公開されていないため、こちらのIoCには含まれておりません
調査/執筆:原 弘明(APT Infra)、サイバーセキュリティ・イノベーション研究所 スレット・インテリジェンス・センター
The post 「Earth Tengshe」によるマルウェア「SigLoader」を用いた攻撃キャンペーンで観測された新たなペイロード first appeared on トレンドマイクロ セキュリティブログ.