序章
2018 年 7 月、FireEye デバイスは、日本のメディア セクターを標的とした APT10 (Menupass) 活動と思われるものを検出してブロックしました。 APT10 は、FireEye が 2009 年から追跡している中国のサイバー スパイ グループであり、日本のエンティティを標的にした歴史があります。
このキャンペーンでは、このグループは悪意のあるドキュメントを含むスピア フィッシング メールを送信し、それが UPPERCUT バックドアのインストールにつながりました。このバックドアは、セキュリティ コミュニティではANELとしてよく知られており、最近までベータ版または RC (リリース候補) として提供されていました。このブログ投稿の一部では、このバックドアの複数のバージョンで確認された更新と相違点について説明します。
攻撃の概要
攻撃は、スピア フィッシング メールに添付された悪意のある VBA マクロを含む Microsoft Word ドキュメントから始まります。悪意のあるドキュメントの内容は判読できませんが (図 3 を参照)、日本語のタイトルは海事、外交、および北朝鮮の問題に関連しています。表 1 に、UPPERCUT の侵害の痕跡 (IoC) を示します。
File Name |
MD5 |
Size |
C2 |
自民党海洋総合戦略小委員会が政府に提言申し入れ.doc Government Recommendations from the Liberal Democratic Party’s Comprehensive Strategic Maritime Subcommittee |
4f83c01e8f7507d23c67ab085bf79e97 |
843022 |
eservake.jetos[.]com 82.221.100.52 151.106.53.147 |
グテマラ大使講演会案内状.doc Invitation to Lecture by Guatemalan Ambassador |
f188936d2c8423cf064d6b8160769f21 |
720384
|
eservake.jetos[.]com 151.106.53.147 153.92.210.208 |
米国接近に揺れる北朝鮮内部.doc North Korean interior swayed by the approach of the United States |
cca227f70a64e1e7fcf5bccdc6cc25dd |
733184 |
eservake.jetos[.]com 153.92.210.208 167.99.121.203 |
表 1: アッパーカット IoC
北朝鮮のルアーについては、同じタイトルのニュース記事がオンラインで簡単に入手できました。グアテマラのルアーで、攻撃者が日本語でグアテマラの珍しい綴りを使用したことも注目に値します。同じスペルを使用した Google 検索の上位結果は、2018 年 8 月に開催されたグアテマラ大使の講演のイベント Web サイトにつながりました。図 1 は、イベント ページのスクリーンショットを示しています。
図 2 は、ルアー ドキュメントを表示するマクロ関数を示しています。この関数の下部に、図 1 にある連絡先情報と一致する読み取り可能なテキストが表示されます。したがって、ラテン アメリカの問題に関心を持つ人々が、このキャンペーンの標的になった可能性があります。
最初の Word ドキュメントはパスワードで保護されていましたが、これはおそらく検出を回避するためでした。パスワード (電子メールの本文に記載) を入力すると、図 3 に示すように、悪意のあるマクロを有効にするようユーザーに要求するドキュメントがユーザーに表示されます。
図 4 は、悪意のあるマクロが実行されると何が起こるかを示しています。
実行ワークフローは次のとおりです。
1. マクロは、3 つの PEM ファイル (padre1.txt、padre2.txt、および padre3.txt) を被害者の %TEMP% フォルダにドロップし、それらを %TEMP% から %AllUserProfile% フォルダにコピーします。
2. マクロは、Windows certutil.exe と次のコマンドを使用して、ドロップされたファイルをデコードします (certutil.exe は、Windows で証明書を管理するための正規の組み込みコマンドライン プログラムです)。
C:WindowsSystem32cmd.exe” /c certutil -decode C:ProgramDatapadre1.txt C:ProgramDataGUP.txt |
C:WindowsSystem32cmd.exe” /c certutil -decode C:ProgramDatapadre2.txt C:ProgramDatalibcurl.txt |
C:WindowsSystem32cmd.exe” /c certutil -decode C:ProgramDatapadre3.txt C:ProgramData3F2E3AB9 |
3. マクロは、次のコマンドで Extensible Storage Engine Utilities (esentutil.exe) を使用して、適切な拡張子を持つファイルのコピーを作成します (esentutil.exe は、Windows にプレインストールされている正当なプログラムでもあります)。
C:WindowsSystem32esenttutl.exe” /y C:ProgramDataGUP.txt /d C:ProgramDataGUP.exe /o |
C:WindowsSystem32esenttutl.exe” /y C:ProgramDatalibcurl.txt /d C:ProgramDatalibcurl.dll /o |
ドロップされたファイルには次のものが含まれます。
- GUP.exe : GUP、無料 (LGPL) の汎用アップデーター。 GUP は、ソフトウェア更新のために Notepad++ で使用されるオープン ソース バイナリです。ここで使用されているバージョンは、図 5 に示すように、Notepad++ によってデジタル署名されたバージョン 4.1 です。
- libcurl.dll: 悪意のあるローダー DLL
- 3F2E3AB9: 暗号化されたシェルコード
4. マクロは、正規の実行可能ファイル GUP.exe を起動します。
- 実行可能ファイルは悪意のある DLL (libcurl.dll) をサイドロードし、同じフォルダーにあるシェルコード (3F2E3AB9) を復号化して実行します。
- シェルコードは、UPPERCUT の更新された亜種である別の DLL をデコードして解凍します。図6に示すように、シェルコードは DLL をデコードする前に、ntdll_NtSetInformationThread に基づいてデバッグ防止技術を使用します。これにより、スレッドがデバッガーから切り離されます。次に、DLL がメモリに読み込まれ、ランダムに名前が付けられたエクスポートされた関数が呼び出されます。
5. マクロは、Windows esentutl.exe を使用して最初にドロップされた .txt ファイルを削除し、ドキュメント テキストを埋め込みメッセージに変更します。
攻撃の全体像を図 7 に示します。
いくつかの脅威アクターは、ペイロードのデコードにWindows certutil.exeを使用する手法を利用しており、 APT10は引き続きこの手法を採用しています。
アッパーカットの進化
図 8 は、UPPERCUT の更新のタイムラインを示しています。ローダーの PE コンパイル時間とドロッパー (Word ドキュメント) の作成時間がグラフにプロットされます。新しいバージョンのローダーのコンパイル時間は、タイムスタンプが上書きされてゼロで埋められるため、ここには表示されません。 UPPERCUT 5.2.x シリーズについては把握していませんが、2017 年 12 月から 2018 年 5 月の間に数か月ごとにマイナー リビジョンがリリースされた可能性があります。
以前のバージョンとは異なり、最新バージョンでは、エクスポートされた関数名がランダム化されています (表 2)。
エンコードされたペイロード |
デコードされたペイロード |
|||
MD5 |
サイズ |
ハッシュのインポート |
エクスポートされた関数 |
バージョン |
aa3f303c3319b14b4829fe2faa5999c1 |
322164 |
182ee99b4f0803628c30411b1faa9992 |
l7MF25T96n45qOGWX |
5.3.2 |
126067d634d94c45084cbe1d9873d895 |
330804 |
5f45532f947501cf024d84c36e3a19a1 |
hJvTJcdAU3mNkuvGGq7L |
5.4.1 |
fce54b4886cac5c61eda1e7605483ca3 |
345812 |
c1942a0ca397b627019dace26eca78d8 |
WcuH |
5.4.1 |
表2:アッパーカットの静特性
最新の UPPERCUT サンプルのもう 1 つの新機能は、コマンド アンド コントロール (C2) サーバーからの HTTP 応答の受信に失敗した場合、マルウェアが Cookie ヘッダーでエラー コードを送信することです。エラー コードは、GetLastError 関数によって返され、次のビーコンで送信される値です。これは、バックドアが応答を受信できない場合に、攻撃者が問題を理解できるようにするために含まれている可能性があります (図 9)。この Cookie ヘッダーは、ネットワーク ベースの検出に使用できる一意のインジケーターです。
UPPERCUT の以前のバージョンでは、C2 と通信する際に Blowfish の暗号化にハードコーディングされた文字列「これは暗号化キーです」を使用していました。ただし、最新バージョンでは、図 10 に示すように、キーは C2 アドレスごとに一意にハードコードされ、C2 の計算された MD5 ハッシュを使用して、使用するキーを決定します。
たとえば、表3は、126067d634d94c45084cbe1d9873d895 のデコードされたペイロードにハードコードされた C2 アドレス、それらの MD5 ハッシュ、および対応する Blowfish キーを示しています。
C2 |
MD5 |
フグの鍵 |
hxxp[:]//151.106.53[.]147/VxQG |
f613846eb5bed227ec1a5f8df7e678d0 |
bdc4b9f5af9868e028dd0adc10099a4e6656e9f0ad12b2e75a30f5ca0e34489d |
hxxp[:]//153.92.210[.]208/wBNh1 |
50c60f37922ff2ff8733aaeaa9802da5 |
fb9f7fb3c709373523ff27824ed6a31d800e275ec5217d8a11024a3dffb577dd |
hxxp[:]//eservake.jetos[.]com/qIDj |
c500dae1ca41236830b59f1467ee96c1 |
d3450966ceb2eba93282aace7d7684380d87c6621bbd3c4f621caa079356004a |
デフォルト |
デフォルト |
f12df6984bb65d18e2561bd017df29ee1cf946efa5e510802005aeee9035dd53 |
表 3: Blowfish キーの例
この例では、hxxp[:]//151.106.53[.]147/VxQG の MD5 ハッシュは f613846eb5bed227ec1a5f8df7e678d0 になります。マルウェアがこの URL と対話すると、bdc4b9f5af9868e028dd0adc10099a4e6656e9f0ad12b2e75a30f5ca0e34489d が Blowfish キーとして選択されます。 URL の MD5 ハッシュがリストされたハッシュのいずれにも一致しない場合、デフォルトのキー f12df6984bb65d18e2561bd017df29ee1cf946efa5e510802005aeee9035dd53 が使用されます。
マルウェアから生成されたネットワーク トラフィックのもう 1 つの違いは、C2 通信中にエンコードされたプロキシ情報が URL クエリ値に追加されていることです。表 4 は、新しいバージョンでバックドアから C2 サーバーに送信されるパラメーターを示しています。これらは、図 9 に示すように、POST 要求を介して送信されます。
さらに、コマンド文字列は、以前と同じ RGPH ハッシュ アルゴリズムを使用してハッシュされます。新しいバージョンでは、さらに 2 つのコマンド 0xD290626C85FB1CE3 と 0x409C7A89CFF0A727 がサポートされています (表 5)。
コマンド |
説明 |
0x97A168D9697D40DD |
C2 サーバーからファイルをダウンロードして検証 (XXHash 比較) |
0x7CF812296CCC68D5 |
C2サーバーにファイルをアップロード |
0x652CB1CEFF1C0A00 |
PE ファイルの読み込み |
0x27595F1F74B55278 |
ダウンロード、検証 (XXHash 比較)、ファイルの実行、出力の C2 サーバーへの送信 |
0xD290626C85FB1CE3 |
現在のタイムスタンプをフォーマットする |
0x409C7A89CFF0A727 |
デスクトップのスクリーンショットを PNG 形式でキャプチャし、C2 に送信します |
上記のどれでもない |
受信したバッファは cmd.exe によって実行され、出力は C2 サーバーに送信されます。 |
表 5: サポートされているコマンド
結論
APT10 は一貫して同じ位置情報と業界を標的にしていますが、APT1 が使用するマルウェアは活発に進化しています。 UPPERCUT の新しいバージョンでは、バックドアが Blowfish 暗号化キーを初期化する方法が大幅に変更されているため、アナリストがバックドアのネットワーク通信を検出して解読することが難しくなっています。これは、APT10 がマルウェアを維持および更新する能力が非常に高いことを示しています。
脅威を軽減するために、ユーザーは設定で Office マクロを無効にし、不明なソースからのドキュメントを開かないことをお勧めします。 FireEye Multi-Vector Execution (MVX) エンジンは、次の検出名でこの脅威を認識してブロックできます。
- APT.Backdoor.Win.UPPERCUT
- FE_APT_Backdoor_Win32_UPPERCUT
参考: https ://www.mandiant.com/resources/blog/apt10-targeting-japanese-corporations-using-updated-ttps
Comments