Zscalerのブログ
Zscalerの最新ブログ情報を受信
購読するウクライナでのHermeticWiperと標的型攻撃の再活性化
まとめ
2022年1月以来、ThreatLabzは、ウクライナに対する標的型攻撃の再活発化を確認しています。これまでに2022年1月から2月の期間内に2つの攻撃チェーンを特定しましたが、これは中程度の信頼水準を備えた同一の脅威アクターによるものです。最終のペイロードと攻撃の動機を完全に掴み切れていないため、現時点ではこの攻撃が国家が支援する脅威アクターによるものか断定できないことに注意することが重要です。C2インフラストラクチャの再利用は、Gamaredon APT脅威アクターの存在を示すものですが、適切に識別するにはより多くの可視性が必要です。
最初の攻撃チェーンは、2022年2月1日にウクライナのCERTチームによりブログに投稿されました。ブログへのリンクはこちら これには「State Administration of Seaports of Ukraine」へ送信されたスピアフィッシング電子メールが関与しています。次の段階の文書テンプレートとVBScriptペイロードに対応するサンプルは、まだパブリックドメインでは利用できません。文書テンプレートとVBScriptペイロードを特定できましたので、このブログでその技術的な解析を共有していきます。
2022年2月11日、ウクライナからVirusTotalにアップロードされたサンプルが特定されましたが、これが以前に文書化されていなかった攻撃チェーンの発見につながりました。このブログでは、この第2の攻撃チェーンの技術的な詳細を説明します。ファイルのメタデータを解析することにより、7つの固有なサンプルと、2020年に遡るキャンペーンの起源を発見することができました。
2022年2月23日、データを破壊しビジネスを混乱に陥れることを目的とした、新しい洗練されたワイパー型マルウェアがウクライナのいくつかの組織を攻撃したと報じられました。Threatlabzのチームは、この関与したマルウェアペイロードを解析し、これらの攻撃で使用された新しい戦術を解明したところ、PartyTicketとして知られるランサムウェアのデコイ もこれらの攻撃の間、デプロイされていたことが分かりました。
このブログでは、これらの最近の攻撃の標的となったウクライナの商業的および公共エンティティの技術的詳細を見ていきます。
1. HermeticWiper DoS攻撃 - 技術的解析
- HermeticWiperは、洗練されたマルウェアの系列で、データを破壊しシステムが動作できなくなるように設計されています。
- ワイパーはマルチスレッドで、速度を最大化し、低レベルのディスクアクセスのためにカーネルドライバーを悪用します。
- これらのドライバーファイルは、CHENGDU YIWO Tech Developmentにより開発されたEaseUS Partition Masterアプリケーションの旧バージョンの一部であるように見受けられます。
図1に示すように、SHA256 1bc44eef75779e3ca1eefb8ff5a64807dbc942b1e4a2672d77b9f6928d292591に代表されるHermeticWiperマルウェアは、2022-02-23 09:48:53 UTCにコンパイルされ、Hermetica Digital Ltd.が発行した有効な証明書を用いてデジタル署名されました。
図1: HermeticWiperのデジタル署名
このマルウェアは、2つのコマンドライン引数をサポートしており、これらの引数は、システムを強制再起動する前にデータを破壊するのに費やす最長期間をコントロールします。コマンドラインの解析後、HermeticWiperは、アクセスマスクTOKEN_ADJUST_PRIVILEGES | TOKEN_QUERYを使ってOpenProcessToken()を呼び出します。このワイパーに十分な特権がない場合、悪意のある行動を行うことなく終了します。さもなければ、 HermeticWiperは、自身に特権SeShutdownPrivilege およびSeBackupPrivilege を付与しようと試み、Windowsカーネルドライバーをインストールします。このドライバーは、マルウェアのリソースセクションに埋め込まれますが、これには表1に示す複数の名前とSHA256ハッシュが含まれます。これらのファイルはデジタル署名されたドライバーで、ディスクとのやりとりに使用されます。
ドライバーファイル名 |
圧縮SHA256 |
解凍SHA256 |
DRV_X64 |
e5f3ef69a534260e899a36cec459440dc572388defd8f1d98760d31c700f42d5 |
96b77284744f8761c4f2558388e0aee2140618b484ff53fa8b222b340d2a9c84 |
DRV_X86 |
b01e0c6ac0b8bcde145ab7b68cf246deea9402fa7ea3aede7105f7051fe240c1 |
8c614cf476f871274aa06153224e8f7354bf5e23e6853358591bf35a381fb75b |
DRV_XP_X64 |
b6f2e008967c5527337448d768f2332d14b92de22a1279fd4d91000bb3d4a0fd |
23ef301ddba39bb00f0819d2061c9c14d17dc30f780a945920a51bc3ba0198a4 |
DRV_XP_X86 |
fd7eacc2f87aceac865b0aa97a50503d44b799f27737e009f91f3c281233c17d |
2c7732da3dcfc82f60f063f2ec9fa09f9d38d5cfbe80c850ded44de43bdb666d |
表 1.HermeticWiperに埋め込まれているドライバーファイル
展開された特定のドライバーは、Windowsのオペレーティングシステムのバージョンが、32ビットか64ビット、およびWindows XPあるいはそれ以降のバージョンかに依存します。Windowsのオペレーティングシステムのバージョンを判断するために使用されている関数は、 VerSetConditionMask とVerifyVersionInfoWです。これらの関数は、Windowsのバージョンを識別する標準の関数GetVersionと比較すると普段はほぼ目にしないものです。
これらのリソースがバイナリから展開後、Windows LZ展開ライブラリ関数を使って解凍されます。また、Windowsのコマンドラインユーティリティexpand.exeも、図2に示すように手動でドライバーを解凍するために使用することも可能です。
図2: Windows展開ユーティリティを使ったHermeticWiperドライバーの手動解凍
これら署名済みドライバーの証明書は CHENGDU YIWO Tech Development Co., Ltd.に登録されていますが、図3に示すように2014年9月11日に有効期限が切れています。
図3: HermeticWiperドライバーに署名するために使用された有効期限切れの証明書
これらのドライバーファイルは、CHENGDU YIWO Tech Developmentにより開発されたEaseUS Partition Masterアプリケーションの一部であるに見受けられます。
ドライバーファイルは、Windowsのドライバーディレクトリに、現在のプロセスIDを使い疑似的に選択された2つのアルファベット文字を含むファイル名を使って直接書き込まれ、ファイル名には「dr」が連結され、拡張し「.sys」が付加されます(例:lxdr.sys)次に、Hermetic Wiperは、その特権を SeLoadDriverPrivilegeに昇格させ、ドライバーを読み込んで、サービスとしてそれを開始します。このマルウェアは、バックアップとデータ復元に使用されるvss (Volume Shadow Copy)サービスを無効にして、レジストリキーHKLM\SYSTEM\CurrentControlSet\Control\CrashControlの CrashDumpEnabled レジストリ値を0に設定して、クラッシュダンプを無効にします。これにより、このマルウェアがクラッシュしても、Windowsが原因を特定するために使用できるクラッシュダンプファイルを生成しないことが保証されます。レジストリ値 ShowCompColor と ShowInfoTip も、レジストリ―キーHKEY_USERS\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced の下で0に設定され(すなわち無効にされ)、データの破壊を示すポップアップや他のインジケータを抑制します。
このドライバーは、自身を、EPMNTDRVという名前のデバイスとして登録し、自身をHermeticWiperのユーザーランドコンポーネントへ公開します。 このマルウェアは、物理ディスク0-100をエミュレートし、すべての物理ディスクのMaster Boot Record (MBR)を、ランダムデータを用いて最初の512バイトを上書きすることで破壊します。マルウェアは次にファイルシステムを解析し、パーティションがNTFSかFATかを判断します。フィルシステムが前者の場合、マルウェアは、システム上のすべてのファイルに関する情報を保管するMaster File Table (MFT)を上書きします。また、Hermeticは以下のディレクトリ内に配置されているファイルを標的にします:
- C:\System Volume Information
- C:\Windows\SYSVOL
- C:\Documents and Settings
- C:\Windows\System32\winevt\Logs
データ破壊の発生後に、強制再起動が生じ、その結果、ブートローダーは、図4に示すようにオペレーティングシステムを読み込むことができなくなります。
図4. HermeticWiperがMaster Boot Recordを削除し、システムを強制再起動した後の結果
2.標的型攻撃
期間-2021年11月から継続中
今回の分析では、C2インフラストラクチャが、以下の図4と図5に示すように2つの標的型攻撃チェーン間に重複していることが分かりました。
図4:標的型攻撃チェーン#1
図5:標的型攻撃チェーン#2
技術的な分析
攻撃チェーン#1
攻撃チェーン#1の感染は、悪意のあるRARアーカイブ添付ファイルを持つ電子メールから始まります。被害者は、現在続いているロシアとウクライナ間の地政学的な紛争を利用した話題を標榜する悪意のある文書ファイルを含むRARアーカイブコンテンツをダウンロードし展開します。
[+] ステージ1:文書
実行中のこの文書は、特定の遠く離れた場所からマクロベースのテンプレートを単にダウンロードするだけです。以下の図6には、この文書の1つの内部に存在するテンプレートへの参照を示しています。
図6:マクロベースのリモートテンプレートを参照する関係
[+] ステージ2:マクロテンプレート(714f8341bd1c4bc1fc38a5407c430a1a)
テンプレート内部のマクロコードは、多数のジャンクコードを追加することで難読化されています。これは、マクロコードのサイズを膨らますだけでなく、コードの解析を妨げます。このコードの主な動作は、VBScriptをドロップし実行することです。
このVBScriptは、以下の図Xに示すようにVBAマクロ内でBase64でエンコードされています。
図7:VBAマクロ内のBase64でエンコードされたVBScript
[+] ステージ 3: VBScript
OSINTによれば、ステージ2のマクロでドロップされたこのステージ3のVBScriptは、GammaLoadと呼ばれています。VBScripのコードは、マクロコードと同様に難読化されています。実行すると、VBScripは以下のように処理します:
1. 流出させるのためのユーザーとシステム情報を収集する
2. WMIを使用して構成済みC2ドメインに関連するIPアドレスを入手する
WMIクエリフォーマット:
SELECT * FROM Win32_PingStatus WHERE Address={configured_c2_domain}
3. ステップ#2で得たIPアドレスを使用して次のステップのペイロードをダウンロードするためにネットワークリクエストを送信し、また、UserAgentフィールドを使用してステップ#1で取集した情報を流出させる
UserAgentフォーマット:
{hardcoded_useragent_string}::%USERPROFILE%_%SYSTEMDRIVE%.SerialNumber::\.{static_string}\.
4. ダウンロードしたペイロードをドロップし実行する
注:解析の時点では、この次のステージのペイロードを入手していませんでしたが、過去の解析に基づくと、この脅威アクターは、UltraVNCのようなリモート デスクトップ アプリをドロップすることが知られています。
攻撃チェーン#2
同一の脅威アクターが使用し、知られている限りではパブリックドメイン内ではどこでもまだ文書化されていない他の攻撃チェーンを特定しました。当社の研究に基づくと、このキャンペーンは2020年11月初旬から活動中であり、このキャンペーンに関連する固有サンプルは現在までわずか7つしか識別できていません。最も最近の事例は2022年2月11日に観察され、ファイル名から2022年2月8日に標的となった(複数の)被害者にばらまかれたと考えられます。
この小規模なキャンペーンには、スピアフィッシング電子メールを通じてばらまかれたRARアーカイブファイルが関係しています。これらのRARアーカイブファイルには、悪意のあるWindowsショートカットファイル(LNK)が含まれており、このファイルは、攻撃者が管理するサーバーからMSIペイロードをダウンロードし、MSIEXECを使用してエンドポイントで実行します。
これにより、パッケージ化されたNSISバイナリがシステム上にドロップされることになり、感染チェーンを開始します。
NSISバイナリのコンポーネントは、その実行の過程においてディレクトリ: %temp%\<random_name>.tmp\ 内に展開されます。
以下に展開されたすべてのコンポーネントを示します。
図8:NSISバイナリのコンポーネント
上記のディレクトリからDLLを読み込みます。
DLLのMD5ハッシュ: 74ce360565fa23d9730fe0c5227c22e0
DLLのファイル名: ypagjgfyy.dll
NSISインストーラの実行をコントロールするNSISスクリプトは、アクティビティの解析にも使用可能です。このスクリプトからの関連するコードセクションは、付録セクションに掲載されています。
以下のステップでアクティビティをまとめます:
- DLLファイル- ypagjgfyy.dll エクスポート関数「oqiuqqaxaicm」と呼び出し、2つのパラメータを渡します。最初の1つは暗号化された文字列で、二番目は、復号化キーです。
- 復号化文字列はURL: hxxp://kfctm[.]online/0102adqeczoL2.txtです。
- nsisdl(NSISインストーラのダウンローダコンポーネント)の「download_quiet」関数を呼び出し、ステップ#2で復号化されたURLの内容を取り込みます。
- 応答は、ファイル- $PLUGINSDIR\readme.txtに保存されます。
- エクスポート関数を呼び出す:DLLファイル - ypagjgfyy.dll にある "cfyhayyyu" を呼び出し、3つのパラメータを渡します。最初のパラメータは、ステップ#4で生成されたファイルで、他の2つのパラメータは「readme.txt」ファイルの内容を復号化するために使用されます。
- この時点で、このコードは、ステップ#4で「readme.txt」ファイルの生成に成功したかどうかによって2つの経路をとります。ステップ#4が成功した場合、「readme.txt」ファイルの復号化された内容が、他の重要な文字列の復号化のための復号化キーとして使用され、悪意のあるアクティビティが継続されます。
当社による解析の時点では、ステップ#2のURLが応答しなかったため、「readme.txt」ファイルは生成されませんでした。結果として、コードの実行は、NSISインストーラ内部にパッケージ化されたDATファイル- gofygsg.datの内容を復号化するためにDLL - ypagjgfyy.dll内のエクスポート関数「euuxijbaha」を呼び続けました。その結果、解読されたコンテンツはDOCXファイルとなり、MS Office Wordアプリケーションで被害者に表示されます。
インフラストラクチャの重複と再利用
標的型攻撃の解析の間、C2ドメインの1つ- "download.logins[.]online"(攻撃チェーン#2の一部としてMSIペーロードをホストするために使用される)が、Anomali labsによるGamaredon APT脅威アクターによるものだということが分かりました。その時点で、そのドメインはマクロベース テンプレート文書をホストするために使用されていましたが、これは、このブログで説明したように、攻撃チェーン#1と重複していました。
Zscalerの対応
このような攻撃で見られるペイロードには、高度な脅威シグネチャと高度なクラウドサンドボックスによって確実に対応します。
Advanced Threat Protection
Win32.Trojan.KillDisk
Win32.Trojan.HermeticWiper
高度なクラウドサンドボックス
Win32.Trojan.HermeticWiper
高度なクラウドサンドボックスレポート
以下の図9は、Wiperマルウェアのサンドボックス検出レポートを示しています。
図9:Zscalerクラウドサンドボックスレポート - Hermetic Wiper
以下の図10は、Zscalerのサンドボックスで検出された文書テンプレート(攻撃チェーン#1によるもの)を示しています。
図3:Zscalerクラウドサンドボックスレポート - 標的型攻撃文書テンプレート
侵害の痕跡(IoC)
#攻撃チェーン1
[+]ハッシュ
MD5 |
定義 |
9fe8203b06c899d15cb20d2497103dbb |
RAR アーカイブ |
178b0739ac2668910277cbf13f6386e8 fd4de6bb19fac13487ea72d938999fbd |
_document |
714f8341bd1c4bc1fc38a5407c430a1a 8293816be7f538ec6b37c641e9f9287f |
テンプレート |
[+] C2ドメイン
coagula[.]online
deer.dentist.coagula[.]online
declaration.deed.coagula[.]online
surname192.temp.swtest[.]ru
[+] ダウンロード済みURLs
コンポーネント |
URL |
テンプレート |
http://surname192.temp.swtest[.]ru/prapor/su/ino.gif http://surname192.temp.swtest[.]ru/prapor/su/derg.gif http://surname192.temp.swtest[.]ru/prapor/su/derg.gif http://surname192.temp.swtest[.]ru/prapor/su/derg.gif |
二次ペイロード |
94.158.244[.]27/absolute.ace 94.158.244[.]27/distant.cdr |
[+] 関連するIP
94.158.244[.]27
#攻撃チェーン2
[+]ハッシュ
MD5 |
定義 |
7c1626fcaf47cdfe8aaed008d4421d8c 6d40826dc7a9c1f5fc15e9823f30966b c2ef9f814fc99670572ee76ba06d24da 3751b3326f3963794d3835dbf65ac048 3cfc9972ad7cbd13cac51aade3f2b501 ba1f2bfe95b219354ddad04b79579346 56be65fe4d9709c10cae511d53d92d1a |
RAR アーカイブ |
5f568c80ab68a4132506f29ede076679 2b7b4ad2947516e633f5008ace02690d bdcb83cc6f54d571a2c102fbbd8083c7 b25865010562a3863ef892311644b3bb bc740d642893e0fe23c75264ca7c2bca d5628fe5de110e321110bbc76061702b 53ee0babcf03b17e02e4317b6a410b93 |
LNK |
c3564bde7b49322f2bacdc495146cfbc 6fa9d3407b70e3928be3ee0a85ddb01c e6a9e19e1b019f95bfc5a4e161794a7f 2cc96a41092e7adf726365bbc5726150 9f566a164a5c6ae046c24d0e911dc577 |
MSI |
[+] C2ドメイン
kfctm[.]online
my.cloud-file[.]online
my.mondeychamp[.]xyz
files-download.infousa[.]xyz
download.logins[.]online
[+] ダウンロード済みURLs
コンポーネント |
URL |
MSI |
http://kfctm[.]online/0802adqeczoL7.msi http://my.cloud-file[.]online/Microsoft_VieweR_2012.msi http://my.mondeychamp[.]xyz/uUi1rV.msi http://my.mondeychamp[.]xyz/ReadMe.msi http://files-download.infousa[.]xyz/Windows_photo_viewers.msi http://files-download.infousa[.]xyz/Windows_photo_viewer.msi http://download.logins[.]online/exe/LinK13112020.msi |
付録I
NSIスクリプト