Process hollowing occurs when a process is created in a suspended state then its memory is unmapped and replaced with malicious code. Similar to Process Injection, execution of the malicious code is masked under a legitimate process and may evade defenses and detection analysis. (Citation: Leitch Hollowing) (Citation: Elastic Process Injection July 2017)
T1093「Process Hollowing」(プロセス・ホロウィング) は、攻撃者が「信頼されたプロセス」の皮を被り、その中身(コード)を自分のものに入れ替える、非常に高度でステルス性の高いプロセスインジェクション手法です。
「Hollowing(中身を空にする)」という名の通り、正規のプロセスを起動し、そのメモリ内にある正規のコードを抜き取って、代わりに悪意のあるコードを流し込みます。
svchost.exe や explorer.exe といった「Microsoft署名済みの正規プロセス」が動いているように見えます。Windows APIを巧みに操る、以下のステップで行われます。
lsass.exe)を、「サスペンド(一時停止)状態」で起動します(CREATE_SUSPENDED フラグを使用)。NtUnmapViewOfSection などを使用)。VirtualAllocEx)。WriteProcessMemory)。ResumeThread)。これにより、正規のプロセスの名前でマルウェアが動き出します。「正規プロセスが動いている」という外見に騙されない監視が必要です。
NtUnmapViewOfSection や WriteProcessMemory の呼び出し、特にリモートプロセス(他人のプロセス)のメモリを操作する挙動を検知します。svchost.exe を起動しないようなプロセス(不審なWordマクロなど)が、サスペンド状態でプロセスを生成していないか監視します。T1093はOSの標準機能(プロセス管理機能)を悪用するため、特定の脆弱性を突くというよりは「手法」そのものですが、これに関連して悪用されるケースがあります。
豆知識:
T1093が使われる際、よくセットで登場するのが「空の器」にされるsvchost.exeです。このプロセスはWindows内に多数存在するため、一つくらい中身が入れ替わっていても目立たないからです。
この攻撃手法に関連する CVE は登録されていません。