Proofpoint Blog 第19回「2022年秋のEmotetの復活を総合的に考える」 | ScanNetSecurity
2023.02.07(火)

Proofpoint Blog 第19回「2022年秋のEmotetの復活を総合的に考える」

Emotetマルウェアを配布する攻撃グループである TA542 は、悪意のある電子メールを配信するための長い休暇から再び戻ってきました。プルーフポイントは、配信方法、地域別の標的を追跡し、Emotetマルウェアおよび IcedIDローダーペイロードの分析を行いました。

脆弱性と脅威 脅威動向
図1:EmotetおよびTA542のシグネチャペイロードを含む電子メールメッセージ量のインデックス(2017年4月19日~2022年11月10日まで)
図1:EmotetおよびTA542のシグネチャペイロードを含む電子メールメッセージ量のインデックス(2017年4月19日~2022年11月10日まで) 全 22 枚 拡大写真

●主なポイント

・Emotet は、2022 年 7 月に活動休止に入っていましたが、11 月上旬にメールによる攻撃を再開しました。この攻撃グループは、Proofpoint が観測している中で最も配信する攻撃メールの量が多い攻撃グループの 1 つで、1 日あたり数十万通のメールを配信していることが再び確認されました。

・プルーフポイントは、使用されるルアー(おとりテーマ)、Emotetモジュール、ローダー、パッカーへの変更など、Emotet およびそのペイロードへの複数の変更を観測しました。

・今回の観測の中では、Emotet は感染後に別のマルウェアである IcedID をダウンロードすることが確認されました。

・この新しい活動は、Emotet が主要なマルウェア・ファミリーの配信ネットワークとして機能するよう、完全な機能を取り戻しつつあることを示唆しています。

・このボットネットには、以前の展開とは異なる重要な点がいくつかあるため、新しいオペレーターや管理者が関与している可能性があります。

●概要

 Emotetマルウェアを配布する攻撃グループである TA542 は、悪意のある電子メールを配信するための長い休暇から再び戻ってきました。この攻撃グループは、2022 年 7 月 13 日に目撃されたのを最後に、2022 年 11 月 2 日に活動を再開するまで、約 4 カ月間姿を現していませんでした。プルーフポイントは、配信方法、地域別の標的を追跡し、Emotetマルウェアおよび IcedIDローダーペイロードの分析を行いました。

 全体として、今回の活動は 7 月の攻撃キャンペーンと類似しており、以前に観察された多くの戦術は変わりませんが、新たな変化や改善は以下のとおりです。

・Excel の添付ファイルを用いた新しいルアー(おとり文書)

・Emotetバイナリの変更

・Emotet がダウンロードした IcedIDローダーは不必要な機能が落とされた軽い新しいバージョンのもの

・IcedID に加えて Bumblebee がダウンロードされたとの報告もあり

 Emotet を配信する TA542 のメール攻撃キャンペーンは、再び、そのメール送信量でトップグループに躍り出ました。プルーフポイントは、すでに毎日約十万通以上のメッセージをブロックしています。

 プルーフポイントは、TA542 は今後も進化を続け、メール送信量が増加し、より多くの地域が標的とされ、添付またはリンクされた脅威の新しい亜種や手法の出現が予想されると考えています。さらに、Emotetバイナリに変化が見られることから、今後も Emotet は変化に適応し続ける可能性があります。

●攻撃キャンペーン

 Emotet送信ボットが毎日配信しようとするメールの量は、約十万通以上にのぼります。この数字は、過去の平均値と同等です。したがって、Emotetボットネットは、稼働停止の期間中にスパム送信能力を失ったとは思えません。なお、Proofpoint が観測した過去の最高値は一日あたり数百万通であり、最後に急増したのは 2022 年 4 月でした。以下のグラフは、過去 5 年間の電子メールの量を指数化したものです。グラフの右下にあるスパイクは、2022 年 11 月のアクティビティを表しています。

図1:EmotetおよびTA542のシグネチャペイロードを含む電子メールメッセージ量のインデックス
(2017年4月19日~2022年11月10日まで)

●配信

 Proofpoint は、電子メールにおけるスレッドハイジャックと言語のローカライズが施された大量の Emotetメールを、今回の復活後も確認しています。この攻撃グループは、一般的なルアーを使用し続けています。Emotet は、11 月 8 日に IRS(米国 内国歳入庁)をテーマにしたルアーを短期間使用しましたが、これは米国に拠点を置く企業の四半期ごとの納税要件に対応するものであると思われます。他の時事問題や祝祭日をテーマにしたルアーはまだ観測されていませんが、近いうちに使われる可能性が高いと考えられます。

 本ブログの稿執筆時点では、プルーフポイントは 11 月 2 日以降のほぼすべての平日、より具体的には以下の日程でキャンペーンを観測しています。2022 年 11 月 2 日、11 月 3 日、11 月 4 日、11 月 7 日、11 月 8 日、11 月 9 日、11 月 10 日、および 11 月 11 日です。しかし、1週間以上毎日活動した後、Emotet の活動は停止しました。11 月 15 日現在、まだ活動はいったん停止はしていますが、プルーフポイントは TA542 の攻撃がすぐに再び戻ってくると予想しています。

●対象地域

 Emotet の攻撃グループは、以前、活動停止前に標的とされていた国々と同様の国々を引き続き標的にしています。プルーフポイントは、以下の国々を標的とし、大量の電子メールを送信していることを一貫して確認しています。米国、英国、日本、ドイツ、イタリア、フランス、スペイン、メキシコ、ブラジル(これは完全なリストではありません)。これらの例では、受信者の所在地だけでなく、メール本文、件名、ファイル名で現地の言語が適切に使用されていることも確認されました。

 特筆すべき点として、プルーフポイントは、「τιμολόγιο.xls」、「έγραφο.xls 」、「τραπεζικούς λογαριασμούς.xls 」といった添付ファイル名でギリシャを標的にしていることを確認しました。ギリシャは、これまで TA542 の一般的な攻撃の対象国ではありませんでした。

図2:米国をターゲットとした英語メールと、ドイツをターゲットとしたドイツ語メール

図3:イタリアをターゲットとしたイタリア語メールとメキシコをターゲットとしたスペイン語メール

図4:フランスを対象としたフランス語のメールとブラジルを対象としたポルトガル語のメール

図5:日本をターゲットにした日本語メール

●添付ファイル

 11 月 2 日の復帰以降、TA542 が送信したメールに含まれる悪質なコンテンツは、通常、Excel の添付ファイル、または Excelファイルを内部に含むパスワードで保護された ZIP の添付ファイルです。Excelファイルには XL4マクロが含まれており、複数の(通常は 4 つの)組み込みURL から Emotetペイロードをダウンロードします。

 これらは、2022 年 7 月の活動停止期間前に攻撃者が使用していたマクロ付きExcelシートと同じタイプのものです。しかし、今回新しい点は、ターゲットにされた標的が、ファイルを Microsoft Office Template の場所にコピーし、代わりにそこから実行するようにとの指示が、Excelファイルに含まれるようになったことです。このフォルダはオペレーティングシステム(OS)にとって信頼できる場所として定義されているため、このフォルダにある文書を開く場合、警告やユーザーによる操作を必要とせずに、マクロが即座に実行することができます。しかし、ファイルをテンプレートの場所に移動する際、オペレーティングシステムはユーザーに確認を求め、そのような移動を行うには管理者権限が必要であることを確認します。

 この技術がどの程度有効なのかは、まだ不明です。マクロを有効にするためにクリックする必要はなくなりましたが、ファイルの移動の際にダイアログが表示され、管理者権限が必要になります。

図6:テンプレートフォルダへのファイル移動時にユーザーに表示されるダイアログ

図7:11月2日以降に観測された典型的なExcel添付ファイルのスクリーンショット

図8:11月9日以降、加えられたExcelルアーの変化
攻撃者は若干の変更を加え、「Relaunch Required」の四角形には黄色の代わりに緑色の背景が使用されるようになりました。

●マルウェア分析

XMRig

 前述のとおり、TA542 は、2022 年 7 月 13 日に悪意のある電子メールを送信していたのを最後に、4 か月近く姿を消しました。しかし、この活動休止期間中にも、TA542 のメンバーの誰か、または他のグループがボットネットの改変に取り組んでいたことを示すいくつかの重要なイベントがありました。9 月 16 日、最も一般的な Monero(XMR)仮想通貨マイナーである XMRig が、モジュールをロードするためだけのコマンド 2 を使用して Emotet によってインストールされました。このサンプルは、他の Emotetモジュールと同じ方法でパックされていました。したがって、実質的には他の Emotetモジュールと同じように動作しますが、XMRig をドロップして実行しました。一般的に、これは開発チームがモジュールを長期的に提供することをコミットする場合にのみ行われます (クレジットカード泥棒のように)。XMRig には、マイニングプールとウォレットアドレスを指定するコンフィギュレーションが含まれています。ボットネットからは、2 つの特定のウォレットID が使用されていました。これらは以下で確認することができます。

図 9: XMRig コンフィグ 1

図 10: XMRig コンフィグ 2

ハードウェアモジュール

 2022 年 9 月の時点では、ボットネットからのスパムメールの配信はまだありませんでしたが、24 時間ごとにボットネットに対してモジュールが送信されていました。これらのモジュールは、標準的な情報スティーラーやメールスティーラーでした。そして、10 月 10 日、モジュールID 2381 がすべての E4ボットに配信されました。この新しいモジュールは、最終的に実際の Emotetローダーに組み込まれることになる、いくつかの新機能を示していました。このモジュールは、ホストからハードウェア情報を収集し、それをコマンド&コントロール(C2)サーバーの専用リストに送信します。以下のフィールドが、指定された順序でパケットに含まれて送信されます。

・Hostname / ホスト名

・Username / ユーザー名

・Process name / プロセス名

・OS (Operating System) information / OS(オペレーティング システム)情報

・Session ID / セッション ID

・CPU identifier / CPUアイデンティファイアー

・Total size of memory / メモリーの合計サイズ

・Used memory / 使用しているメモリサイズ

 このパケットの最後には、本物のボットと偽物のボットを選別するための値が設定されています。このモジュールのメイン関数内には、それぞれが 4 バイトの整数を返す 64 種類の関数に対応するテーブルがあります。モジュールがボットに送信される際、そのモジュールとボットに固有の ID であるジョブID も一緒に送信されます。このジョブID から 0~63 の値を計算し、整数を返す関数を 1 つ選択します。その整数をパケットの最後に配置する必要があります。この値が抜けていたり、期待した結果と違っていたりすると、オペレーターはそのボットが偽物であることを掴み、そのボットはボットネットから登録削除(BAN)されることになります。現在までのところ、これはボットネットがリサーチャーの分析を阻止するために実装した最も困難な回避技術となっています。

図11:64個のコールバックを含む関数表

 これらの値を抽出することをさらに難しくするために、整数値はハードコードされた値を返すだけでなく、動的に計算されるようになっています。以下のスクリーンショットでは、最終的に返される値は 0x523EC8 となります。

図12:定数値を返すための難読化のための演算

●Emotetローダーのアップデート

 7 月中旬以来、Emotet のローダーには更新がなかったため、Emotet が復活した際には、ボットネットに以下のようなかなりの違いがありました。

・新規のコマンド

・新しいコミュニケーションループの実装

・新しいチェックインパケットフォーマット

・新しいパッカーの使用

 Emotet は、様々なコマンドに対応しています。2021 年 11 月に復帰した当初は、1~7 の値で示される全 7 種類のコマンドがありました。やがて 2022 年 11 月の復帰まで、コマンド 4 以降が削除されました。現在、Emotet がサポートしているコマンドは以下の 5 つです。

・1 – Update bot / ボットの更新

・2 - Load module / モジュールのロード

・3 - Load executable / 実行ファイルのロード

・4 - Load executable via regsvr32.exe / regsvr32.exe を用いた実行ファイルのロード (新規追加)

・16343 – invoke rundll32.exe with a random named DLL and the export PluginInit / ランダムな名前の DLL で rundll32.exe を起動し、PluginInit / をエクスポート (新規追加)

 このボットネットの最新バージョンでは、コマンド 4 と 16343 が追加されました。16343 は、コマンドのパターンが他とは違う(1,2,3,4,5 と続いていない)ことと、特定のエクスポートを持つことから、他とは違う特徴を持っています。このエクスポートは、IcedID感染によく使用されるものです。注目すべきは、Proofpoint が、最近のキャンペーンで Emotet が IcedID をセカンドステージのペイロードとして配信しているのを確認していることです。

 Emotet のオリジナルのパケットフォーマットには、2 つのバージョン番号と思われるものが含まれていました。1 つはローダーに固有のもので、もう 1 つはプロトコルに固有のものです。これらの値は、パケット内で、最新のリターンで 4000 に設定された単一のバージョン番号に置き換えられています。

 解凍されたローダー自体に加えられた最も大きな変更の 1 つは、コミュニケーションループの再実装です。旧バージョンでは、C2サーバへのリクエストの頻度を決定するためにスリープを使用していました。新しいバージョンでは、Windows の API である CreateTimerQueueEx を利用しています。この API はコールバック関数を受け取り、最初の持続時間の後、そしてループの中で設定された期間の後に呼び出されます。これは、ボットの応答解析に変更が加えられたことも意味します。ボットが C2 から 12 バイトの値を受け取った場合、ボットは最後の 4 バイトを読み取り、それを整数に変換して 250 を掛け、それがスリープするミリ秒数となります。長いスリープの場合、Emotet のデフォルトは 150 秒で、短いスリープの場合は 30 秒か 7.5 秒になります。

 最後に、ローダーで使用されるパッカーが更新されました。11 月 2 日以前は、パックされたサンプルは、サンプル内のランダムな平文文字列と XOR復号化される暗号化されたリソースを含んでいました。この新しいパッカーは、暗号化されたペイロードを .data セクションのオフセット 20 付近に格納しています。ペイロードがサンプル内で見つかると、ランダムな平文文字列を見つけるのと同じプロセスで復号化され、XOR復号化され、解凍されたサンプルを得ることができます。

●コマンド&コントロールの誤操作

 これまでに、Emotet はボットネット(E4 と E5)ごとに 3 つの主要な C2プールを持っていました。これらのプールは、ローダー、汎用モジュール、そしてスパムモジュールです。これらのプールは重複しておらず、一般的に、汎用プールにあるモジュールは、他のモジュールにあるものと完全に一致していました。つまり、プロセス・リスト・モジュールに 6 つの C2 があれば、メール・スティーラー・モジュールにもまったく同じ 6 つの C2 があることになります。この構成が、今回は以前の Emotet のバージョンとは違っています。現在では、いくつかのモジュールから IP が欠落しており、開発者が有効な C2 の一部として localhost を残しているケースがあります。以下のグラフは、モジュールとその ID を緑のノード、C2 を赤のノードとして示しています。モジュール 1444 では、C2 テーブル内に localhost を残しているようです。

図 13: C2 にリンクされた一般的な Emotet モジュール (緑)

 スパムC2 については、他のモジュールには存在しない C2 が存在していますが、過去にはこのような違いは見られませんでした。一般的に、グループに属するすべてのモジュールには、C2リストにあるすべての C2 が含まれまていました。

図 14: C2 にリンクされたスパム Emotet モジュール (緑)

 このような構成のミスは、ボットネットが新たな組織や人間の管理下に置かれた可能性や、インフラを構築するために新たなオペレータが採用された可能性があることを示唆しています。

●感染後の活動

 Emotetボットに配信された最初のペイロードの 1 つは、IcedID loader の新しい亜種でした。この亜種は、正規の PDBパスを含んでいるため、真新しいものであるか、あるいはまだ開発中のものであると考えられます。

図15:「anubis」PDBパスを持つIcedIDペイロード

 2022 年 2 月に RaaS(Ransomware as a Service)の組織である Conti の内部にアクセスできる研究者がサイバー犯罪組織のデータの流出を開始した Conti Leaks について行われた分析から、Anubis が IcedID とこの IcedIDローダーの新しい亜種の内部名称であることが判明しました。

 IcedID は、2 つのステージを持つマルウェアです。第 1 段階はローダーで、第 2 段階(ボット)をダウンロードするためのリクエストを作成します。マルスパムで配信される標準的な IcedID は、ローダーC2 へのリクエストに含まれる Cookie を通じてシステム情報を流出させます。そして、C2 はその情報を使って、ローダーが IcedIDボットのペイロードを受け取るかどうかを決定します。生成されたシステム情報により、C2サーバーはサンドボックスを容易に特定することができ、これがほとんどのサンドボックスが IcedID の第 2 ステージを検知できない理由となっています。

 しかし、今回見つかった新しいローダーは、こうしたシステム情報の送信をおこないません。これは、ローダーがすでに感染したマシンに配信されているため、システムプロファイルをチェックする必要がないためだと、プルーフポイントのリサーチャーは考えています。ローダーは、適切に実行するために必要な API を解決することから始まり、次に暗号化された次のステージをダウンロードするために最大 2 つの HTTPリクエストを行います。

図16:Emotetからドロップされるローダーの主な機能(C2復号とレスポンス解析)

図17:この新しいローダーが、ポート443経由でHTTPSを経由し、ポート80でHTTPを経由してボットをダウンロードしようとしているコード

 この場合、マルウェアはハードコードされた URI とドメインを持ち、それらを連結して完全なペイロードパスである bayernbadabum[.]com/botpack.dat が作成されます。標準の IcedIDローダーとは異なり、このローダーはまず HTTPS上のポート443 で試行し、それが失敗すると標準の HTTP上のポート80 で再度試行します。もしレスポンスが 0x400バイト以上であれば、loader は第二ステージのペイロードを解凍し、インジェクションしようとします。セカンドステージは以下の Pythonコードで復号化することができます。

図18:ボット全体で一貫して使用されているIcedIDの復号化ルーチン

 botpack が復号された状態では、malspam IcedID ローダーが取得する GZIPレスポンスと同様のフォーマットになっています。その形式は以下の通りです。

図19 IcedIDで使用されるbotpack形式の構造定義

 復号化されたデータは、バージョンである可能性が高い”2”から始まる必要があります。次にブーリアン値ですが、これはローダーがエクスポート名で起動されるのか、それとも単に #1 という序数で起動されるのかを決定するものです。さらに、平文のカスタムボットのローダーと、暗号化されたボットに関連する 2 つのサイズが続きます。ボット自体は暗号化されているので、botpack.dat を復号したのと同じ方法で復号する必要があります。

図20:botpackの復号とDLLローダーと暗号化されたbotの解析

 コード的には、ここにある IcedIDボットは、IcedIDマルスパムキャンペーンに配信される標準ボットと全く同じですが、ボットの初期化方法に若干の違いがあります。標準の IcedID が C2 からコマンドを取得するとき、それはリストになっています。Emotet に感染したホストに配信される IcedID を見ると、これらのコマンドは異なっているのが分かります。

図 21: IcedID の標準コマンド

 レスポンスに含まれる整数は、ボット内のコマンドに対応します。つまり、上記のレスポンスに対して、ボットは以下のコマンドを特定の順番で実行することになります。

・54897577 – update C2 list / C2リストの更新

・36609609 – start beaconing / ビーコンの開始

・61593029 – get desktop info / デスクトップ情報の取得

・46731293 – get running processes / 起動しているプロセス情報の取得

・24258075 – get system information / システム情報の取得

・45055027 – get browser cookies / ブラウザクッキーの取得

・95350285 – get stored browser credentials / ブラウザに保存されている認証情報の取得

 Emotet に感染したマシンに送られたボットは、上記のコマンドの他に、以下のコマンドを取得します。

・58139018 – send internal IcedID log / 内部のIcedID のログの送信

・13707473 – read a file and send contents to C2 / ファイルの読み込みと C2 へのコンテンツの送信

・72842329 – search for file and send contents to C2 / ファイルの検索と C2 へのコンテンツの送信

 これは、Emotetマシン上で動作する IcedIDボットにより多くの優先順位が置かれていること、あるいは、マルスパムの IcedIDボットを管理するグループが、Emotet から供給されるボットを管理するグループとは異なることを示している可能性があります。

●展望とまとめ

 全体として、クライアントに加えられたこれらの修正は、マルウェアの開発者がリサーチャーを阻止し、ボットネット内に存在する偽またはキャプティブボット(リサーチャーの観察対象となっているボット)の数を減らそうとしていることを表しています。IcedID に関連するコマンドの追加や、新しい IcedIDローダーの広範なドロップは、所有者の変更、あるいは少なくとも IcedID と Emotet の関係の始まりを意味するかもしれません。

 Emotet が IcedID をドロップしたことは、他のマルウェア・ファミリーの配信ネットワークとして機能することで、Emotet が再び完全な機能を発揮することを示すものです。Emotet は、The Trick(TrickBot)と Qbot の配布が観測された 2021 年以来、完全な機能と一貫した後続ペイロードの配信(Cobalt Strike ではない)を示していません。TA542 の再起と IcedID の配信が重なったことは、懸念すべきことです。IcedID は以前、Emotet感染の後にドロップされる後続ペイロードとして観測されています。多くの場合、これらの感染はランサムウェアにつながる可能性があります。

《日本プルーフポイント株式会社 PIM TROUERBACH AND AXEL F》

この記事の写真

/

特集

関連記事

PageTop

アクセスランキング

  1. 尼崎市職員の公用スマホ紛失、虚偽報告が判明し懲戒処分に

    尼崎市職員の公用スマホ紛失、虚偽報告が判明し懲戒処分に

  2. 国内発が多数を占め増え続けるSMSフィッシング、携帯キャリアの対策は? ~ JPAAWG 5th General Meetingレポート-3

    国内発が多数を占め増え続けるSMSフィッシング、携帯キャリアの対策は? ~ JPAAWG 5th General Meetingレポート-3

  3. 不正アクセスで決済サービス停止中のメタップスペイメント、1月31日より順次再開

    不正アクセスで決済サービス停止中のメタップスペイメント、1月31日より順次再開

  4. 富士通 FENICS のネットワーク機器に不正な通信、「ニフクラ レンタルサーバー」にも影響

    富士通 FENICS のネットワーク機器に不正な通信、「ニフクラ レンタルサーバー」にも影響

  5. 北ガスジェネックス委託先の北斗興業がネットワーク共有している会社のサーバに不正アクセス

    北ガスジェネックス委託先の北斗興業がネットワーク共有している会社のサーバに不正アクセス

ランキングをもっと見る
PageTop