フィッシング
帰ってきたANEL:「 Earth Kasha」による日本での新たなスピアフィッシングキャンペーン
トレンドマイクロが追跡している標的型攻撃グループ「Earth Kasha」が、日本を標的としたスピアフィッシングキャンペーンを、2024年6月頃から展開していることが判明しました。
トレンドマイクロの調査により、2024年6月ごろから日本の個人や組織を標的とした新たなスピアフィッシングキャンペーンが展開されていることが分かりました。
興味深い点として、当該キャンペーンでは、ペイロードとして「ANEL」と呼ばれるバックドアが使用されていました。このマルウェアは2018年ごろまで標的型攻撃グループ「APT10」による日本を標的としたキャンペーンで使用されていましたが、それ以降長らく観測されていませんでした。
ANEL以外にも、「NOOPDOOR」と呼ばれるマルウェアも同一キャンペーンで使用されていることが確認されていることなどから、トレンドマイクロでは当該キャンペーンが標的型攻撃グループ「Earth Kasha」による新たなオペレーションの一環であると考えています。
キャンペーンの詳細
2024年6月ごろから観測されているEarth Kashaによる当該キャンペーンでは、侵入経路としてスピアフィッシングメールが採用されていました。具体的な標的としては、政治関連組織や研究機関、シンクタンクに属する個人や、国際関係に関連する組織などが狙われていることが確認されています。
Earth Kashaは、2023年には主にエッジデバイスの脆弱性を悪用した侵入を試みていましたが、新キャンペーンの展開にあたり再度TTPsをスピアフィッシングに変更してきたことになります。この変化は、当該キャンペーンの標的が企業から個人へ変化したことが背景にあると考えられます。また、被害者のプロファイルや、配布されるおとりファイルの名前などを分析すると、攻撃者が特に日本の安全保障や国際関係に関連した事柄に興味関心を持っていることがうかがえます。
起点となるメールの送信元としては、フリーメールから送信されるケースもあれば、正規アカウントが侵害され踏み台として悪用された事例も観測されています。着弾したメールにはOneDriveのURLリンクが記載されており、ZIPファイルをダウンロードさせるよう誘導する文章が日本語で記述されていました。
配布されたメールの件名としては以下のようなものが観測されており、標的に応じて興味を引きそうな内容を選択していると考えられます。
【メール件名やおとり文書に用いられる文言の例】
- 取材申請書
- 米中の現状から考える日本の経済安全保障
- [官公庁・公的機関一覧]
感染の起点となるZIPに含まれているファイルは、時期や標的によって異なることが確認されています。
Case 1: マクロ付きドキュメント
最もシンプルなケースは、マクロ付きドキュメントが梱包されているケースで、ドキュメントを実行しマクロを有効化することで感染します。このドキュメントファイルは我々がROAMINGMOUSEと名付けた不正なドロッパーで、詳しくは後述しますが、自身に埋め込まれたANEL関連コンポーネント群(正規EXE、ANELLDR、暗号化されたANEL)を展開・実行する機能を持ちます。この際、ZIPをドロップしてから展開するパターンと、直接コンポーネント群をドロップする2パターンが確認されています。
Case 2: ショートカット + SFX + テンプレートマクロ
他には、ZIPファイルに直接ROAMINGMOUSEを含めない事例もありました。この事例では、ZIPにはショートカットファイルと、アイコンと拡張子をドキュメントファイルに偽装したSFX(Self-Extracting)ファイルが含まれていました。
ショートカットファイルを実行すると、同階層のSFXファイル(.docxに拡張子偽装)が実行される仕組みになっていました。
SFXファイルは、%APPDATA%\Microsoft\Templatesフォルダ配下に2つのドキュメントファイルをドロップします。1つはデコイドキュメントの無害なファイルで、もう1つは「normal_.dotm」という名前でドロップされるROAMINGMOUSEでした。当該事例のROAMINGMOUSEは、Wordのマクロ付きテンプレートファイルとして機能するため、デコイファイルを開いた際に自動でROAMINGMOUSEが読み込まれる仕組みになっていました。これはMITRE ATT&CKでは「Office Application Startup: Office Template Macros」に分類されるテクニックです。その後のROAMINGMOUSEが実行された後の挙動はCase1と同様でした。
Case 3: ショートカット + CAB + テンプレートマクロ
Case2と似た事例で、ショートカットファイルからPowerShellを実行し、自身に埋め込まれたCABファイルをドロップするケースも確認されています。
当該事例のショートカットには下図のようなPowerShellワンライナーが記述されており、ショートカットファイルの特定オフセットに埋め込まれたCABファイルのドロップ・展開と、デコイファイルの実行をおこなっていました。デコイファイルがテンプレートファイルとしてROAMINGMOUSEを自動的に読み込む以降の流れはCase2と同様でした。
初期侵入時に使用されるマルウェアの詳細
ROAMINGMOUSE
当該キャンペーンの初期侵入で用いられた、ANEL関連コンポーネントのドロッパーとして機能するマクロ付きドキュメントを、我々はROAMINGMOUSEと名付けました。ROAMINGMOUSEの主な役割は可能な限り検知されずに後段のANELを実行することであり、そのために検知回避のためのいくつかのテクニックを実装していました。
(簡易的な)サンドボックス回避
Case1で紹介したユーザにマクロを有効化させるタイプのROAMINGMOUSEは、ユーザによる一定のマウス操作をトリガーとして不正活動を開始する機能を持っていました。この機能は、ドキュメント内に設置されたユーザフォーム上でマウスが動いた際に発生するイベント「MouseMove」を受け取る関数を実装することで実現しています。
この機能により、ユーザによる一定の操作がないと不正活動を開始しないこととなるため、おそらくサンドボックス回避のために実装されたのではないかと推察されます。しかしながら、公平に見て、このようなサンドボックス回避テクニックは近年の商用・オープンソースを含む多くのサンドボックスで対策済みと思われる点は強調しておくべきでしょう。
部分的にカスタムBase64エンコードされたデータ
これを検知回避機能と呼ぶかは議論の余地がありますが、少なくともROAMINGMOUSEの特徴的な機能の一つです。Case1のPATTERN 1がこの手法を用いていました。ROAMINGMOUSEは、ANEL関連コンポーネントを含んだZIPファイルをBase64でエンコードし3つのパートに分割して埋め込んでいますが、その一部のパートはカスタムのBase64テーブルを用いたBase64エンコードがなされていました。ドロップされたZIPファイルに含まれるファイル群は、VBAのコードにより特定のパスへ展開されます。
このテクニックは、単に解析に時間をかけさせることが目的の可能性もありますが、最近ではVBAに埋め込まれたBase64を自動でデコードしてくれるようなツールも存在するため、そのような解析ツールに対する回避手法である可能性も考えられます。
HEX文字列化されたデータ
Case1のPATTERN2のように、一部ではBase64エンコードされたZIPを介さず、直接ANEL関連コンポーネント群をドロップする事例も確認されています。その際、各コンポーネントはHEX文字列としてエンコードされた状態でVBAに埋め込まれていました。
WMIを経由したプログラム実行
ドロップされるファイル群には、次のようなANELに関連するコンポーネント群が含まれています。
- ScnCfg32.Exe: 正規アプリケーション、DLL-SideLoadingにより同階層のDLLを読み込む
- vsodscpl.dll: ANELLDR
- <RANDOM> : 暗号化されたANEL
ROAMINGMOUSEは、ドロップした正規アプリケーション「ScnCfg32.Exe」を実行し、DLL-SideLoading経由で不正DLL「vsodscpl.dll」を読み込むことでANELの実行を開始します。この際、WMI経由で「explorer.exe」の引数に「ScnCfg32.Exe」を指定して実行していました。
これは、Wordなどのドキュメントファイルから直接「cmd.exe」などプログラム実行に関連するプロセスが実行されると多くのセキュリティ製品で検知されてしまう可能性が高いことから、「cmd.exe」を介さないプログラム実行を試行したと考えられます。
ANELLDR
ANELをメモリ上で実行するための固有のローダを、我々はANELLDRと名前を付けて追跡しています。ANELLDRは遅くとも2018年には観測されており、当該キャンペーンで使用されたANELLDRはローダとしての機能面では2018年に使用されていたものと全く変わっていないことが分かっています。それ以外の観点では、ANELLDRはジャンクコードの挿入やControl Flow Flatting(CFF)、Mixed Boolean Arithmetic(MBA)などの耐解析機能を実装していることで知られていますが 、当該キャンペーンで観測したANELLDRも同様の機能を実装していました。
ANELLDRについて触れられた公開情報はあるものの、詳細な挙動について言及した情報は現時点ではないため、ローダの機能について詳しく解説します。ANELLDRは正規アプリケーションからDLL-SideLoadingによって呼び出され不正活動を開始します。実行されると、カレントディレクトリ配下に存在するファイルを列挙し、暗号化されたペイロードファイルを探索します。なお、ANELLDRの復号ロジックは初回実行時とそれ以降で異なります。初回実行時には、はじめに対象ファイルの末尾4バイトと、ファイルサイズ - 0x34バイト(=後述するAESマテリアルの0x30バイトとチェックサムの0x4バイトの合計サイズ)までのデータのAdler-32チェックサムを計算して比較し、対象が期待する暗号化ファイルかチェックします。また、同階層にディレクトリがある場合は、対象ディレクトリ配下を再帰的に同様に処理します。検証をパスすると復号処理に進みます。対象ファイルの末尾0x30から0x20バイト分をAES鍵、そして末尾0x20から0x10バイト分をAES IVとして、AES-256-CBCで暗号化データ部分(ファイルサイズ - 0x34バイトまで)を復号し、メモリ上で実行します。
ANELLDRは暗号化ペイロードの復号に成功すると、鍵とIVを更新して再度AES-256-CBCで暗号化し、読み込んだ暗号化ペイロードファイルを上書きして保存する機能を持っています。この時に使用されるAES鍵とIVは、実行中のファイルパスをベースとして、カスタムBase64と暗号アルゴリズムBlowfish、そしてXORを用いて生成されるため、実行環境によって異なります。また、暗号化に使用したAES鍵とIVはファイルに埋め込まれないため、感染済みの環境から採取された暗号化ペイロードファイルを復号するためには、対象ファイルが存在していたパスを把握しておく必要があります。
2ndステージ・シェルコード
復号されたデータはシェルコードで、メモリ上で実行されます。この2ndステージ・シェルコードは最終ペイロードのDLLをメモリ上で展開・実行する役割を担います。まず、2ndステージ・シェルコードは、「ZwSetInformationThread」APIの第二引数に「ThreadHideFromDebugger (0x11)」を指定して呼び出すことでデバッガによる追跡を回避しようと試みます。次に、暗号化されたデータのアドレスを取得します。その際、NOPで埋められた特徴的な関数を呼び出して自身の実行アドレスを取得した後、その関数の直後に存在する暗号化ペイロードに関連するデータへのアドレスを計算して取得します。
暗号化されたデータ部分は次のようなフォーマットで構成されていました。
ANELLDRは、16バイトのXOR鍵を使用して、続く暗号化データ部分をデコードします。特徴的な点として、暗号化データの各1バイトに対し16バイトの鍵を使ってXORします。つまり、1バイトに対し16回異なる鍵でXORするアルゴリズムになっていました。
その後、Lempel–Ziv–Oberhumer (LZO) というデータ圧縮アルゴリズムを用いてXORしたデータを展開します。加えて、先頭4バイトとそれに続くペイロードDLLのAdler-32チェックサムを計算して比較し、正しくデコード・展開できたか検証します。整合性のチェックに合格すると、DLLをメモリ上で動的に初期化し、ハードコードされたエクスポート関数を呼び出すことでペイロードを実行します。なお、ハードコードされたエクスポート関数が見つからない場合、「crt_main」もしくは「test」という名前のエクスポート関数を呼び出そうと試みます。
ANEL
ANELは2017年ごろから観測されている32-bitのHTTPベースのバックドアで、2018年ごろまでAPT10が使用していた主要なバックドアとして知られています。当時からANELの開発は活発であり、2018年の時点でバージョン「5.5.0 rev1」が最後に観測されていましたが、当該キャンペーンが開始された2024年6月以降ですでに「5.5.4 rev1」「5.5.5 rev1」「5.5.6 rev1」が観測されているほか、新たにバージョン情報が秘匿されたバージョンも確認されました。
当該キャンペーンで観測された新たにANELと、2018年に観測された「5.5.0 rev1」を機能面で比較したところ、「5.5.6 rev1」でバックドアコマンドが新たに追加された以外は大きな変更点は見受けられませんでした。
以降では、各バージョンにおける細かいアップデート内容を見ていきます。
5.5.4 rev1
このバージョンのANELには特筆すべき大きな変更点はありませんでしたが、いくつか細かい修正・アップデートが実装されていました。1つは、「5.5.0 rev1」まで実装されていたHTTP Cookieヘッダにエラーコードを格納してC&Cサーバへ送信する機能が削除されていました。この機能はANELの検出機会の一つとして取り上げられていたため2、検出を回避するために削除された可能性が考えられます。もう1つは、C&Cサーバに送信されるANELのバージョン情報に実行環境のOSアーキテクチャに関する情報が含まれるようになっていました。ANELは32-bitアプリケーションですが、64-bit OS上で実行されている場合、「wow64」という文字列がバージョン情報末尾に追加されて送信されるようにアップデートされていました。
5.5.5 rev1
バージョン「5.5.5 rev1」にも大きな変更点は見受けられませんでしたが、C&Cサーバの初回アクセス時にローカルのIPアドレスを更新するコードが追加されていました。
5.5.6 rev1
バージョン「5.5.6 rev1」では、バックドアコマンドが新たに追加されていました。ANELはC&Cサーバから受信したコマンド文字列を大文字変換後xxHashでハッシュ化し、ハードコードされたハッシュ値と比較することでコマンドの分岐をおこないます。当該バージョンでは、新たに「0x596813980E83DAE6」に対応するコマンドが実装されていました。
このコマンドは、CMSTPLUA COMインタフェースを悪用した既知のUACバイパス手法により、指定のプログラムを管理者権限(Integrity High)で実行する機能を提供します。
UNKNOWN
「5.5.6 rev1」が観測された後、バージョン情報が秘匿された状態のANELも確認されました。今回観測したANELは、バージョン情報が記載されていた箇所にBase64エンコードされた文字列が記述されており、デコードしたデータ「A1 5E 99 00 E7 DE 2B F5 AD A1 E8 D1 55 D5 0A 22」と「 wow64」を連結してC&Cサーバに送信していました。この変化により、バージョンを時系列でとらえて機能比較することが困難になりました。
侵害後の活動
ANELをインストールした後の活動を追跡したところ、攻撃者はANEL経由でのスクリーンショットの取得やarpコマンド、dirコマンドなどによる感染環境情報の収集をおこなっていました。特定の環境では、追加マルウェアとしてNOOPDOORというマルウェアがインストールされる事例も観測しています。NOOPDOOR3は遅くとも2021年から観測されているモジュラー型バックドアで、より高度な機能を持つことから、Earth Kashaが使用する追加ペイロードとしての役割を担っていると考えられます。今回のキャンペーンでも攻撃者が特に興味を示した標的に対してはNOOPDOORが使用されたと考えられます。
帰属と考察
これまでのキャンペーンに関する分析の結果、トレンドマイクロでは2024年6月から観測されているANELを使用したスピアフィッシングキャンペーンを、Earth Kashaによる新たなオペレーションの一環であると評価しています。
Earth Kashaに帰属すると判断した理由として、以下の点が挙げられます。
- 2023年初頭まではEarth Kashaはスピアフィッシングメールを主な侵入経路として日本の個人・組織を対象としたキャンペーンを展開しており、TTPsや被害者の観点で強い矛盾はない
- Earth Kashaが独占的に使用していると思われるNOOPDOORが当該キャンペーンでも使用されている
- すでに過去に触れられている通り3、ANELLDRとNOOPDOORにはコード上の類似点があることから、同一の開発者もしくは両ソースコードへアクセス可能な人物が関与していると思われ、当該キャンペーンでANELが再度利用され始めても不都合はなく、むしろ過去のAPT10と現在のEarth Kashaとの関連性を示す材料となっている
Earth Kashaによるキャンペーンは今後もツールやTTPsをアップデートしながら、引き続き展開されていくことが予想されます。標的の多くが研究者などの個人であり、企業など組織におけるセキュリティ施策と比べて、比較的防御が緩いと考えられる領域への攻撃であることから、攻撃に気づくのが難しい場合もあります。不審なメールに添付されたファイルは開かないという基本的な対策は徹底しつつ、NISCやIPA、JPCERT、サイバーセキュリティ協議会など脅威情報を共有している組織からの情報を収集し関係者に周知するなどの対応も必要になります。当該キャンペーンは2024年10月現在も継続中と思われるため、今後も引き続き警戒が必要と考えます。