図1. 呼び出しフローの比較 (上: 「一般的な ReadFile() API 呼び出しのフロー」、下: 「indirect syscall 呼び出しフロー)」)
一般的に実行ファイルから ReadFile() API を呼び出す時、内部的には kernel32.dll、kernelbase.dll、ntdll、dll モジュールが順に呼び出され、必要な因子と NtReadFile の system call 番号である0x6をレジスタに保存して syscall を呼び出す。
上記のように一般的な native API 呼び出しプロセスでは、stub code と system call 番号を ntdll でレジスタに保存した後、syscall を呼び出す。一方で、Rhadamanthys マルウェアで使用した indirect syscall 手法では、stub code と system call 番号を直接レジスタに保存した後、ntdll.dll 領域の syscall コマンドがあるアドレスに分岐して ntdll メモリ領域で syscall が呼び出されるようにする。
Rhadamanthys マルウェアは、Windows の正常なファイルである c:\windows\system32\ntdll.dll を直接読み込んで、フックされていない状態の ntdll.dll をメモリにマッピングする。検知を回避するため、メモリに直接マッピングした ntdll.dll を利用して必要な stub code と system call 番号を直接レジスタに保存し、ロードされた実際の ntdll モジュールの syscall アドレスに分岐する。
このマルウェアは、上記の方法で検知を回避し、Windows システムの正常なプログラムである %system32% パスの dialer.exe にインジェクションを実行する。類似した形態で配布されたマルウェアで確認したインジェクション対象プロセスは、以下の通りである。
- %system32%\dialer.exe
- %system32%\openwith.exe
- %system32%\dllhost.exe
- %system32%\rundll32.exe
インジェクションされたプロセスは、「C:\Program Files\Windows Media Player\」パスにある正常なプログラムに再度インジェクションして実行する。確認されたインジェクション対象のプログラム名は以下の通りである。
インジェクション対象のプログラム
● C:\Program Files\Windows Media Player\wmpshare.exe
● C:\Program Files\Windows Media Player\wmpnscfg.exe
Rhadamanthys マルウェアは、最終的に PC からユーザーの情報を窃取するインフォスティーラーの振る舞いを実行する。
[MDS 製品の検知]
AhnLab MDS は、サンドボックス環境でこのようなタイプのマルウェアを「Injection/MDP.Event.M10231」の検知名で検知している。
攻撃者は、フィッシングメールや正常なサイトに偽装した偽のサイトを通してマルウェアを配布したりもする。このようにマルウェアが配布された場合、ユーザーは疑うことなくマルウェアを実行しやすく、特にインフォスティーラーマルウェアの場合にはユーザーが感染事実を認知することも難しい。
サンドボックスベースのファイル解析ソリューションである Ahnlab MDS は、仮想環境でファイルを実行した後、発生した振る舞いを解析する。既知のマルウェアだけでなく、APT 攻撃で攻撃者が直接製作した知られていないマルウェアも結局、実行プロセスで情報窃取の振る舞いを実行することになる。AhnLab MDS は、このような情報の窃取振る舞いを検知し、管理者が攻撃を認知して攻撃者の次の攻撃を事前に遮断できるようにする。
[IOC]
[MD5]
9437c89a5f9a51a4ff6d6076083fa6c9
[C2]
147.124.220[.]237:8123
[ファイル検知]
Trojan/Win.Malware-gen.R637934 (2024.03.08.00)
[振る舞い検知]
Injection/MDP.Event.M10231
サンドボックスベースの動的解析によって未知の脅威を検知して対応する AhnLab MDS に関する詳しい情報は、ahnlab.com で確認できる。
Categories: AhnLab 検知