FortiGuard Labs 脅威リサーチ
FortiGuard Labsは先日、ハンガリー政府を装って送信されたEメールを発見しました。メールの内容は、政府のポータルサイトにアクセスするための新しい認証情報が添付されているというものです。しかし、この添付ファイルはZIP圧縮された実行ファイルであり、これを実行するとメモリにWarzone RATが解凍され、実行されます。FortiGuard Labsによる最初の検知から数日後、ハンガリー国家サイバーセキュリティセンターがこの攻撃に関する警告を発表しました。このブログでは、実行ファイルの詳細な分析結果を報告します。
影響を受けるプラットフォーム: Microsoft Windows
影響を受けるユーザー: Microsoft Windowsユーザー
影響: 攻撃者によるリモートアクセスが可能になる。
深刻度: 高
最初の感染は、ハンガリー政府のポータルサイトを偽装したフィッシングメール(図1)を介して発生します。このポータルは、書類の提出やIDの発行などの公務をオンラインで行うために使用されています。
このEメールは被害者に対し、認証情報が変更されたため新しい認証情報を添付すると伝えています。全文の翻訳を以下に示します。
件名:idp.gov.hu: 新しいログインデータ
登録ユーザー様、
ハンガリー政府はWebサイトのメンテナンスと更新を行っています。あなたの新しいログインデータを添付いたします。このパスワードをダウンロードし、保存しておいてください。ポータルのメンテナンス終了後、このパスワードが必要になります。
どうぞよろしくお願いいたします。
文体を見るとネイティブスピーカーが書いたもののようですが、このメールには公的な通信に求められる語法が使用されていませんでした。
添付ファイルはZIP圧縮されており、PDFに見せかけた実行ファイルが含まれています。図2のように、このファイルにはAdobe PDF Readerを模したアイコンが付けられています。ファイル名はpdfで終わっていますが、拡張子は.exeです。しかし、Windowsのデフォルト設定ではファイル拡張子が表示されないため、このファイルは本物のPDFファイルのように見えます。ユーザーが唯一予兆に気づくとすれば、File Explorerでファイルの[Type(タイプ)]が[Application(アプリケーション)]と表示される点でしょう。これは、そのファイルが文書ではなく実行ファイルであることを示しています。ただし、一般のユーザーがすぐに見抜けるものではありません。
「Uj bejelentkezEsi adatai·pdf.exe'」の分析を開始して間もなく、私たちはそれがマトリョーシカ人形に似ていることに気づきました。ただし、1つ開けるたびにそれよりも小さい人形が出てくるのとは違い、.NETバイナリがどんどん難読化されていくのです。このセクションではその点について見ていきましょう。
「Uj bejelentkezEsi adatai·pdf.exe」は32ビットの.NET実行ファイルです。FortiGuard Labsがdnspy(有名な.NETデコンパイラ)で逆コンパイルしたところ、シンプルな反面、奇妙でもあるソースコードを発見しました。このコードの全体構造を図3に示します。おそらくiANOが元のバイナリで、「Uj bejelentkezEsi adatai·pdf.exe」に名前変更されています。
コードには、卓上ゲームBattleShipの実装と思われるBattleShipLiteLibraryの奇妙な組み合わせと、電卓が表示されています。図4は、電卓を実装するコードが実際にあることを示しています。
このコードは、場合によっては電卓のように見え、電卓のように動作します。しかしながら、電卓ではないのです。このコードでは、電卓用のユーザーインタフェースを設定しているように見えるInitializeComponent() 関数が、末尾でPerformLayout()関数も呼び出しています。そしてさらに、ResourceTemplateDefine()関数を呼び出しています(図5)。
ResourceTemplateDefine()関数は、「Web」というリソースを読み込みます。初めのうち、このリソースはビットマップとして解釈されるかに見えますが、最終的にはアセンブリに変換されます。バイナリエディタでこのリソースを開くと(図6)、ビットマップヘッダーが表示されます。しかし、もう少し詳しく見てみると、MZという文字も確認できます。これはPE(Portable Executable)ファイルのマジックナンバーです。そして一番下には、あの評判の悪い「This program cannot be run in DOS mode」(このプログラムはDOSモードで実行できません)の文字列まであります。これもPEファイルである証拠です。
このPEファイルがリソースから読み込まれます。図7ではGetMethod(),を使用してメソッドが読み込まれ、そのうちのいずれか一つが呼び出されています。図8のデバッガーは、呼び出されたメソッドが「sk41Ua2AFu5PANMKit.abiJPmfBfTL6iLfmaW.Y5tFvU8EY()」であることを示しています。
「Web」リソースにあるPEファイルの元の名前はKeyNormalize.dllです。呼び出された関数の名前から、ファイルが難読化されていることは想像がつきます。これも.NET実行ファイルであるため、dnspyやDetect It Easy(図9)でこのファイルを開くと、SmartAssemblyを使って難読化されていることがわかります。
バイナリの難読化解除には、難読化解除ツールのDe4Dotを使用できます。ただし、難読化された文字列を解除することはできません。そのためFortiGuard Labsは、文字列の難読化を解除できるカスタムプログラムを作成しました。これについては別のブログ記事で解説します。
KeyNormalize.dllを静的分析した結果、リソースからさらに別のバイナリを読み込み、先に見たように関数を呼び出していることが判明しました(図10)。
ここでもデバッガーを使用してバイナリを復元し、呼び出された関数を確認できます。図11は変数「text6」内のデータで、base64でエンコードされています。これをデコードすると(図12)、もう一つのPEファイルであることがわかります。このPEファイルも.NET実行ファイルであり、元の名前は「Metall.dll」です。
デバッガーでは、新たに復元されたPEファイルで「OwbdG5aNVQQYu6X20i.o9pVsMvoTr75y5TrkE.V4j9c6YCwC()」関数が呼び出されていることも確認できます。
図13は、このバイナリの分析を開始してから初めての私の反応です。
いうまでもなく、Metall.dllは制御フロー平坦化などの機能をバイナリに追加して難読化のレベルを上げていました。難読化ツールの目的がリバースエンジニアリングの妨害であることは、誰もが知るところです。この妨害は、ある程度までは有効です。しかし今回の場合、私たちはショートカットを作成するだけで、バイナリを自動的に実行し、最終ペイロードをメモリに読み込ませることができました。私たちはメモリの内容をファイルにダンプし、さらに分析を進めました。
Metall.dllによってメモリに読み込まれた最終ペイロードは、Warzone RAT(リモートアクセス型トロイの木馬)です。これはよく知られたマルウェアで、MaaS(Malware-as-a-Service)として動作します。Warzone RATはインターネットで一般に入手でき、サブスクリプションモデルを通じて誰でも利用することができます。現在の価格を図14に示します。
登録ユーザーに提供される機能は次のとおりです。
図15の文字列がバイナリに表示されることから、Warzone RATはしばしば「Ave_Maria Stealer」とも呼ばれます。
GitHubへの埋め込みリンクはまったく役に立ちません。おそらくこれも、リバースエンジニアリングを妨害する一つの手段でしょう。
Warzoneは、Windowsのバージョンに応じて複数の方法で権限を昇格させます。一つは同じバイナリに実装する方法、もう一つはWM_DSP(図16)というリソースとしてバイナリに追加する方法です。これは必要に応じて実行時に読み込まれ、実行されます。
Warzoneはウイルス対策ソフトウェアを回避するために、自身をWindows Defenderの除外リストに追加しようとします(図17)。
また、以下のパスに自身をコピーして永続性を確保します。
C:\Users\Admin\Documents\Adobe5151.exe
さらには、C2サーバーとの通信を暗号化します。これまでは、暗号化のパスワード / キーに文字列「‘warzone160\x00’」が使用されていました。今回のサンプルでは、文字列が「nevergonnagiveyouup」に変更されています(図18)。つまり、被害者は知らないうちにリックロールされているのです。
動的分析の結果、C2サーバーのアドレスは171.22.30.72:5151であると判明しました。このIPとポート番号をフォーティネットの社内システムで調べたところ、図19のような図が示されました。この図から、Warzoneの関与する攻撃が2022年6月20には始まっていたことがわかります。
攻撃者は、政府を装って巧妙に細工したEメールをおとりに使用し、添付したマルウェアを実行します。このおとりは非常によく考えられています。なぜならその内容が、オンラインの行政ポータルを利用するすべてのハンガリー人に関係しているからです。このようなおとりや、Eメールで使用されている言語の正確さは、ハンガリー国内の攻撃者が関与している可能性を示唆しています。
埋め込まれた.NETバイナリはマトリョーシカ人形のように、難読化が徐々に複雑さを増していきます。これは、攻撃者が最新の難読化手法への依存を強める傾向にあることを裏付けています。結果として、リバースエンジニアがマルウェアの難読化解除や分析に費やす時間が増大しています。
最終ペイロードとしてWarzone RATが使用されていることから、サイバー犯罪者のMaaSへの依存度も高まっています。ランサムウェアのサンプルでも同様の傾向が見られ、Ransomware-as-a-Service(サービスとしてのランサムウェア)プロバイダーの人気が拡大しています。こうした傾向については、最新のFortiGuard Labs脅威レポートで取り上げています。
Fortinetアンチウイルスエンジンは、以下のシグネチャを使用して上記のすべてのバイナリに対応しています。
MSIL/Kryptik.AGIJ!tr – Uj bejelentkezEsi adatai·pdf.exe
W32/PossibleThreat – KeyNormalize.dll
MSIL/Agent.UDJ!tr – Metall.dll
W32/Agent.TJS!tr – Warzoneペイロード
W32/AntiAV.NIZ!tr – 権限昇格ペイロードWM_DSP
C2サーバーは、FortiGuard Webフィルタリングサービスによって「不正」に分類されており、適宜ブロックされます。
FortiMailとFortiSandboxは、この攻撃の不正な添付ファイルを検知して隔離し、フォーティネットのCDR(コンテンツ無害化)サービスがそれを無効化します。
FortiEDRは、添付された悪意ある実行ファイルとWarZone RATペイロードを、その振る舞いに基づいて「不正」として検知します。
これらの保護機能に加えて、フォーティネットはフィッシング攻撃の検知 / 理解に関するユーザートレーニングも支援します。
FortiPhishフィッシングシミュレーションサービスでは、実際の攻撃をシミュレーションし、フィッシングの脅威に対するユーザーの認識や備えをテストするほか、フィッシング攻撃を受けた場合の適切な対処方法を訓練および強化できます。
フォーティネットが無償で提供するNSEトレーニングプログラム:NSE 1 – 情報セキュリティ意識向上には、インターネットの脅威に関するモジュールが含まれ、エンドユーザーはフィッシング攻撃を識別して自らを保護する方法を学習できます。
ファイル名 |
sha256ハッシュ |
Uj bejelentkezEsi adatai·pdf.exe |
21d09c77de01cc95209727752e866221ad3b66d5233ab52cfe5249a3867ef8d8 |
KeyNormalize.dll |
8b533ffaed24e0351e489b14aaac6960b731db189ce7ed0c0c02d4a546af8e63 |
Metall.dll |
66319bf905acac541df26fecc90843a9a60fdbc1a8a03e33f024088f586cb941 |
<Warzoneサンプル> |
27743b5b7966384cc8ef9cfef5c7a11c8b176123b84c50192926c08ab7e6d7d7 |
ネットワークアドレス |
タイプ |
171[.]22[.]30[.]72:5151 |
C2サーバー |
Warzone RATのTTPの詳細については、https://attack.mitre.org/software/S0670/でご確認いただけます。