APT&標的型攻撃
攻撃集団「APT41」の新しい子グループ「Earth Longzhi」の攻撃手口
トレンドマイクロでは2022年前半、台湾の企業を侵害した攻撃事例について調査しました。攻撃に使用されたマルウェアは、単純ながらもカスタマイズが施されたCobalt Strikeのローダでした。さらなる調査により、これと類似するCobalt Strikeのローダによる攻撃事例が、台湾以外の複数地域からも確認されました。
トレンドマイクロでは2022年前半、台湾の企業を侵害した攻撃事例について調査しました。攻撃に使用されたマルウェアは、単純ながらもカスタマイズが施されたCobalt Strikeのローダでした。さらなる調査により、これと類似するCobalt Strikeのローダによる攻撃事例が、台湾以外の複数地域からも確認されました。使用されたコード間の類似性やTTPs(Tactics:戦略、Techniques:テクニック、Procedures:プロシージャ)を調べた結果、攻撃の背後にいるグループは、2020年から活動を活発化させたことが判明しました。トレンドマイクロではこのグループを「Earth Longzhi」と名付けました。また、攻撃に関するデータの集計結果に基づき、Earth Longzhiは標的型攻撃(APT:Advanced Persistent Threat)を行う「APT41」の子グループであると判定しました。さらに当該グループを「Earth Longzhi」と名付けました。本稿では、2020年から2022年にかけてEarth Longzhiが展開した2つの攻撃キャンペーンについて、実態を解明するとともに、攻撃に利用されたツールについても解説します。また、今回の調査結果は、今年8月に開催された会議「HITCON PEACE 2022」でも発表されました。
攻撃キャンペーンの概要
Earth Longzhi が2020年以降長期に渡って展開している攻撃キャンペーンは、利用されたツールや期間に応じて、2つの段階に分けられます。前期キャンペーンは2020年から2021年にかけて行われ、台湾の行政機関やインフラ、健康業界の他、中国の金融部門が狙われました。後期キャンペーンは2021年から2022年にかけて行われ、台湾や中国、タイ、マレーシア、インドネシア、パキスタン、ウクライナの防衛、航空、保険、都市開発など、人目を引きやすい業界が狙われました。
攻撃経路
Earth Longzhiによる攻撃キャンペーンでは、前期、後期を問わず、マルウェア配布の初期経路としてスピアフィッシングメールが使用されました。攻撃者はパスワード付きアーカイブにマルウェアを埋め込むか、マルウェアのダウンロード用リンクを標的に送りつけ、個人情報を餌に被害者を誘い込もうとします。被害者がこのリンクをクリックすると、Cobalt Strike用ローダが埋め込まれたパスワード付きアーカイブを配布するGoogle Driveにリダイレクトされます。トレンドマイクロでは、このローダを「CroxLoader」と名付けました。
また、攻撃グループが一般公開されているアプリケーションを用いて標的端末上に簡易なダウンロードツールをデプロイして実行し、攻撃に必要なシェルコード用ローダやハッキングツールをダウンロードする事例も見られました。
前期攻撃キャンペーン:2020年5月~2021年2月
調査により、Earth LongzhiはカスタマイズされたCobalt Strike用ローダやハッキングツールを使用し、主に台湾の行政、健康、学術、インフラ業界を狙っていたことが分かりました。トレンドマイクロでは、当該のCobalt Strike用ローダを「Symatic Loader」と名付けました。
Symatic Loader
Symatic Loaderは、Cobalt Strikeを読み込むために前期攻撃キャンペーンで最初に用いられたローダです。このローダには、検知回避の目的で下記の技術が組み込まれています。
- アンチフック技術により、ユーザモード向けのWindowsカーネルユーティリティ「ntdll.dll」に設置されたフック設定をメモリ内で初期化
- API「UpdateProcThreadAttribute」を使用して親プロセスを偽装
- 復号したペイロードをシステム組み込みプロセス(dllhost.exeやrundll32.exe)にインジェクト
セキュリティソリューションの製品では、不審な動作を監視するため、メモリ展開されたntdll.dllにAPIフックを設置します。これに対し、SymaticLoaderはまずAPIフックを除去した上で、ディスクからntdll.dllの生データを取得します。次に、メモリ展開されたntdllのイメージを書き換えることにより、ntdll.dllにAPIフックが設置されていない状態を作り出します。
ntdllの初期化後、Symatic Loaderはプロセスインジェクション用に新規プロセスを立ち上げます。この際の特記事項として、プロセス間の繋がりを分かり難くするために、新規プロセスの親プロセスを偽装する手口が用いられています。
「All-in-one」ハッキングツール
Earth Longzhiの攻撃キャンペーンでは、侵入後の活動に必要な全ツールを1パッケージにまとめた「All-in-one」と名付けられたハッキングツールが用いられます。パッケージに含まれるツールの大半は、一般公開されているものか、過去の攻撃に使用されたもののいずれかに該当します。攻撃者はこの「All-in-one」ハッキングツールを用いることで、ただ1つの実行ファイルから複数の処理や操作を実施することが可能です。
表1(PDF):処理に必要な全ツールを搭載した単一の実行ファイル
後期攻撃キャンペーン:2021年8月~2022年6月
Earth Longzhiによる後期攻撃キャンペーンは、前期攻撃キャンペーンの終了から約5ヶ月後に始まりました。後期キャンペーンでは、カスタマイズされたCobalt Strike用ローダとして、「CroxLoader」、「BigpipeLoader、「OutLoader」が使用されました。なお、これら各種ローダの名称は、トレンドマイクロが付与したものです。また、その他ハッキングツールの使用も確認されました。
カスタマイズされた各種ローダ
調査によってさまざまな方式でカスタマイズされたCobalt Strike用ローダが発見されました。その中には、Virus Totalにアップロードされた検体に類似するものも確認されました。下表の通り、各ローダによってペイロードの復号アルゴリズムが異なります。
表2(PDF):後期攻撃キャンペーン用にカスタマイズされたローダの一覧
CroxLoader
後期攻撃キャンペーンでは、CroxLoaderとして2種の亜種が確認され、それぞれの利用ケースには差異が見られました。第一の亜種は、主に攻撃者が外部公開されたアプリケーションを攻撃の開始点として不正使用するケースで利用されます。この亜種は、自身が抱えるペイロードを復号し、それをリモートプロセス中にインジェクションします。一方で第二の亜種は、攻撃者がスピアフィッシングメールを被害者に送りつけ、そのファイルを開くように誘導するケースでよく利用されます。各被害者についてどの亜種が使用されるかは、適用可能な攻撃シナリオに依存します。
BigpipeLoader
本ローダは、名前付きパイプを通して暗号化されたペイロードの読み書きを行う点で特徴的です。そのため、トレンドマイクロでは、このシェルコードローダを「BigpipeLoader」と名付けました。弊社が実施した脅威ハンティングでは、当該ローダの亜種が2種類発見され、それぞれの実行手続きには差異が見られました。第一の亜種は、単純におとり用ファイルをドロップし、Cobalt Strikeのペイロードをメモリ上に読み込んで実行します。一方、第二の亜種は、まずドロッパを介して不正なWTSAPI32.dllをドロップします。このDLLは、「wusa.exe」というファイル名の正規アプリケーションからサイドローディングされる形で設計され、呼び出されると、暗号化されたBigpipeLoader(chrome.inf)を起動します。これら2つの亜種は、どちらもペイロードの復号に「AES-128-CFB」のアルゴリズムを使用します。
一方、MultipipeLoaderとOutLoaderは、CroxLoaderやBigpipeLoaderに類似していますが、機能上の差異がわずかながら存在します。MultipipeLoaderは、BigpipeLoader同様にマルチスレッド処理で暗号化済みペイロードを読み書きしますが、復号についてはCroxLoaderと類似した方式を用います。最後にOutLoaderは、ペイロードをリモートサーバからダウンロードしますが、他の機能についてはBigpipeLoaderと同様です。以上のように亜種間の差異が小さく留められていることを踏まえると、攻撃者は新しいローダを開発するために、他グループによる既製のローダや、過去に使用済みのローダを組み合わせる方式を試していると考えられます。
侵入後の活動
後期攻撃キャンペーンの調査では、攻撃者が使用した複数のハッキングツールが発見されました。こうしたツールの機能として、権限昇格(PrintNightmareやPrintSpoofer)や認証情報窃取(カスタマイズされたスタンドアローンのMimikatz)、防御回避(セキュリティ製品の停止)などが挙げられます。また、攻撃グループは、公開されているツールをそのまま使用するのではなく、オープンソースプロジェクトをもとに独自に再実装または開発する技術を保持しています。以降、攻撃者が使用したハッキングツールについて解説します。
カスタマイズされたスタンドアローンのMimikatz
Earth LongzhiはMimikatzモジュールの一部を、スタンドアローンのバイナリとして再実装(表3に示す)しました。バイナリとソースコードを比較したところ、攻撃者は一般公開されているコードから必要な箇所のみを抜き出し、それをスタンドアローンのバイナリとしてコンパイルしたことが判明しました。今回は、こうした手口を「Bring-Your-Own Mimikatz(自身のMimikatzを持ち込む)」と呼ぶこととしました。Mimikatzなどのオープンソースによるハッキングツールを再実装する手口は、検知回避に役立つ手段の1つとして、レッドチームコミュニティの間で広く知られています。
この他、不正なスタンドアローンのモジュール「sekurlsa::logonpasswords」が発見されました。本モジュールは、ドライバ「RTCore64.sys」の脆弱性を突くことでWindowsのプロセス保護機能「PPL:Protected Process Light」を無効化し、lsass.exeから認証情報を窃取します。以降、PPLの回避手段として当該の脆弱なドライバがどのように利用されるかについて説明します。
表3(PDF):再実装されたMimikatzのモジュールと機能
セキュリティ製品の無効化
セキュリティ製品の無効化ツールとして、今回トレンドマイクロで「ProcBurner」、「AVBurner」と名付けた2種が発見されました。両ツールとも、ドライバ「RTCore64.sys」の脆弱性を突いてカーネルオブジェクトの値を書き換える機能を備えています。RTCore64.sysはグラフィックカードユーティリティ「Afterburner」のコンポーネントであり、2019年に脆弱性「CVE-2019-16098」が報告されました。この脆弱性を突くことで、カーネル領域を含む任意のメモリ領域での読み書きを、認証済みユーザによって行うことが可能になります。また、本脆弱性を抱える古いバージョンのドライバには、依然として有効と見なされるコード署名が付与されています。この結果、攻撃者は古いバージョンのドライバを被害端末に送りつけ、それを用いてアンチ・アンチウイルスやアンチEDR(Endpoint Detection and Response:エンドポイントでの検知と対処を行うソフトウェア)といった不正な活動を行うことが可能になります。こうした手口は、「Bring-Your-Own Vulnerable Driver(脆弱なドライバを自身で持ち込む)」という呼称で知られています。
ProcBurnerは、起動している特定のプロセスを停止するように設計されています。簡単に述べると、標的とするプロセスの保護機能を変更するために、RTCore64.sysの脆弱性を突いてカーネル領域内にあるアクセス権限情報を強制的に書き換えます。下記にProcBurnerの処理フローを記載します(環境としてはWindows 10 20H2 x64を使用)。
- API「OpenProcess」を呼び出す。引数として「PROCESS_QUERY_LIMITED_INFORMATION(=0x1000)」を指定する。
- 対象プロセスのハンドルが返却される(例:0x1d8)
- EPROCESSオブジェクトをバックトレースして、上記ハンドルに対応するHANDLE_TABLE_ENTRYオブジェクトのアドレスを取得
- 対象プロセスの「HANDLE_TABLE_ENTRY.GrantedAccessBits」を「PROCESS_ALL_ACCESS(=0x1fffff)」でマスクするため、入出力制御インターフェース「IOCTL」にリクエストを送る
- 脆弱性のあるRTCore64.sysが、要求されたビットマスク値を書き込む
- プロセスを停止
ProcBurnerの特徴的な動作として、権限情報の書き換え前に、起動しているOSのバージョンをチェックします。これは、カーネルオブジェクト中のフィールドへのオフセット値が、OSのビルドバージョンによって異なることを考慮したものです。ProcBurnerでは、各ビルドバージョンに対応するオフセット値がハードコーディングされています。この値が正しく設定されていると仮定すると、ProcBurnerはサポート対象の全ビルドバージョンで正常に動作すると考えられます。サポート対象のバージョン一覧は下記の通りです。
- Windows 7 SP1
- Windows Server 2008 R2 SP1
- Windows 8.1
- Windows Server 2012 R2
- Windows 10 1607
- Windows 10 1809
- Windows Server 2018 1809
- Windows 10 20H2
- Windows 10 21H1
- Windows 11 21H2
- Windows 11 22449
- Windows 11 22523
- Windows 11 22557
一方、AVBurnerは、アンチウイルスやEDR製品によるカーネルコールバック設定を除去する方針で設計されています。AVBurnerの仕組みを理解しやすくするため、まずカーネルコールバックについて簡単に説明します。
カーネルコールバックは、プロセスやスレッド、レジストリ作成といったイベントに対する検知や応答を実現する仕組みであり、WindowsのOS機能としてサポートされています。アンチウイルス製品側では、イベント発生時に実行すべき「コールバック関数」を設定する必要があります。コールバック関数の設定は、Ntoskrnl.exeが提供する各種API から行うことが可能です。例えば、プロセス作成を検知したい場合は、以下のAPIを使用し、その際に、プロセス作成時に実行させるコールバック関数へのポインタを引数指定します。
PsSetCreateProcessNotifyRoutine
本APIは、内部で以下の関数を呼び出します。
PspSetCreateProcessNotifyRoutine
これによって処理がWindowsカーネル側に移行し、先に引数指定したコールバック関数が以下のコールバック関数配列の末尾に追加登録されます。以上の処理が完了すると、各種プロセスの作成タイミングで、Windowsカーネルがコールバック関数配列を参照し、対応するコールバック処理を検索して実行するようになります。
PspCreateProcessNotifyRoutine
上記の仕組みを前提に、AVBurnerはRTCore64.sysを不正使用して以下のコールバック情報配列の各要素を参照し、標的のドライバを探索します。この際の処理フローは、下記の通りです。
PspCreateProcessNotifyRoutine
- API「PsSetCreateProcessNotifyRoutine」と「IoCreateDriver」のアドレスを取得
- コールバック情報配列「PspCreateProcessNotifyRoutine」のアドレスを取得するため、上述したアドレスの間(PsSetCreateProcessNotifyRoutineとIoCreateDriver)から特定のバイト列を検索
- コールバック情報配列「PspCreateProcessNotifyRoutine」の各要素には、EX_CALLBACK_ROUTINE_BLOCKオブジェクトへのカスタムポインタが含まれる。このカスタムポインタの下位4ビットを除去することで、当該オブジェクトのアドレスが得られる。
- EX_CALLBACK_ROUTINE_BLOCK.Function(オフセット値=0x08)には、コールバック関数へのポインタ(今回の場合はDriver.sys)が含まれる。そのコールバック関数が所属するドライバファイルのパスを取得する。当該ファイルのプロパティ内に停止対象の文字列(例:Trend)が含まれている場合、AVBurnerは当該ポインタをNULLで書き換える。以上により、コールバックの登録が除去される。
攻撃者の帰属
今回の調査では下図の分析結果に基づき、Earth LongzhiはAPT41のサブグループに該当すると判断しました。
被害者の分析
今回の攻撃を受けた地域は、攻撃者が関心を持つ東アジアおよび東南アジアの国々です。これらの地域は、以前トレンドマイクロが報告したAPT41の別グループ「Earth Baku」による被害を受けた国々とも、近い関係にあります。
Cobalt Strikeのメタデータ:APT41に属する別のサブグループが用いるバージョンに一致
Earth LongzhiによるCobalt Strikeのペイロードから全メタデータを抽出したところ、そのほとんどから同じウォーターマーク「426352781」と公開鍵「9ee3e0425ade426af0cb07094aa29ebc」が検出されました。このウォーターマークと公開鍵の組み合わせが使用された事例は、APT41に所属する別グループである「Earth Baku」や「GroupCC」による攻撃を除き、現時点では報告されていません。APT41の子グループが同じウォーターマークと公開鍵を使用していることより、当該の子グループ同士でCobalt Strikeのパッケージやライセンス、さらにはチームサーバを共有していることが示唆されます。
シェルコードローダのコード類似性とTTPsの重複
コード類似性として、SymaticLoaderとCroxLoaderの復号アルゴリズムは、GroupCCのものとかなり類似することが判明しました。いずれのローダも、<(sub 0xA) XOR 0xCC>の式による復号を行います。TTPsの類似性として、Earth LongzhiはGroupCCと同様、コマンドコントロール(C&C:Command and Control)サーバのアドレスを隠蔽するために、「Python Fastly CDN(Content Delivery Network)」を使用します。本調査時点でPython CDNが不正使用されたという事例は、今回のEarth Longzhiの他、Team T5が報告したGroupCCに限られます。こうした点からEarth LongzhiとGroupCCの繋がりが示唆されます。
結論
トレンドマイクロでは、Earth Longzhiを、主にアジア太平洋地域を狙うAPTグループとして捉えています。本グループによる2つの攻撃キャンペーンを調査した結果、標的とされたのはアジア太平洋国家のセキュリティまたは経済関連業界であることが判明しました。攻撃キャンペーンの内容からは、当該グループがレッドチームの活動に精通していることがうかがえます。具体的には、ソーシャルエンジニアリング技術を駆使してマルウェアを拡散し、カスタマイズされたハッキングツールを標的にデプロイすることで、セキュリティ製品の保護機能を回避し、侵害した端末から機密情報を窃取します。セキュリティ全般の視点から捉えると、Earth Longzhiは、ペネトレーションテスト用オンラインプラットフォーム「Hack the Box」を現実世界で試しているようにも見えます。
APT41のグループは、特殊なマルウェアよりも、Cobalt Strikeをはじめとする一般的なツールやマルウェアを利用する傾向が見られます。さらに最近では、セキュリティ製品を回避するために新しいローダやハッキングツールの開発に注力しているようです。そうした例の1つがAVBurnerであり、古いドライバの脆弱性を突いてセキュリティソリューションを停止させるなど、強力な仕組みを備えています。また、AVBurnerとProcBurnerは双方ともカーネルレベルでのセキュリティ侵害を試みます。こうした動向は、特に最近APTグループやサイバー犯罪者の間で活発であり、注目に値します。さらに、Earth LongzhiはAPT41のサブグループとして、レッドチームをはじめとする攻撃型セキュリティチームが行う活動にも精通しているようです。
所属グループの分析により、Earth LongzhiはAPT41に属する別のサブグループとの間でCobalt Strikeのライセンスを共有し、類似するTTPsを使用することが分かりました。異なるグループ間でツール類が共有されていることは、下記の状況を示唆します。
- これらの攻撃グループはもはや固定的な組織ではない。時間とともに組織構造は変化し続けるが、ツール類は新しい後継グループにも受け継がれる。
- ツールの開発者や攻撃キャンペーンの運用者は、そのツールを提携グループとの間で共有している。
上記を踏まえると、ツール準拠でグループ間の繋がりを紐解いて所属先グループを特定する作業はさらに複雑なものとなり、分析を行う脅威調査チームにとっての課題になると推測されます。APTグループや各種サイバー犯罪を調査する担当者は、判断材料としてコードの類似性や被害者の傾向にも目を向け、これらを収集して統合的に分析するといったアプローチを検討する必要があるでしょう。セキュリティプロバイダやソリューションにおいては、脆弱なドライバの存在について再確認し、可能であれば回避または無効化することが重要です。企業や組織では、脆弱なドライバのインストールを監視するなどの機能がある場合、少なくともその有効化権限をセキュリティチームに付与することを推奨します。幸い、上述した攻撃グループが一般公開されたツールを使用、または過去の攻撃手順を踏襲している場合、調査チームや運用セキュリティチームではこれを早期に検知し、そのTTPsを用いて検証することも可能です。
侵入の痕跡(Indicators of Compromise、IoC)
侵入の痕跡(IoC)はこちらで確認してください。
MITRE ATT&CK Tactics and Techniques
MITRE ATT&CK Tactics and Techniquesはこちらで確認してください。
参考記事:
Hack the Real Box: APT41’s New Subgroup Earth Longzhi
By: Hara Hiroaki, Ted Lee
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)