Trusted Design

T1179 - Hooking

概要

Windows processes often leverage application programming interface (API) functions to perform tasks that require reusable system resources. Windows API functions are typically stored in dynamic-link libraries (DLLs) as exported functions.

Hooking involves redirecting calls to these functions and can be implemented via:

Similar to Process Injection, adversaries may use hooking to load and execute malicious code within the context of another process, masking the execution while also allowing access to the process's memory and possibly elevated privileges. Installing hooking mechanisms may also provide Persistence via continuous invocation when the functions are called through normal use.

Malicious hooking mechanisms may also capture API calls that include parameters that reveal user authentication credentials for Credential Access. (Citation: Microsoft TrojanSpy:Win32/Ursnif.gen!I Sept 2017)

Hooking is commonly utilized by Rootkits to conceal files, processes, Registry keys, and other objects in order to hide malware and associated behaviors. (Citation: Symantec Windows Rootkits)

管理者によるコメント

T1179は「Hooking(フッキング)」として定義されている、OSやアプリケーションの正常な処理フローを横取りする極めて強力な攻撃手法です。

APIの呼び出し経路やシステム関数の動作を書き換えることで、特定のイベント(キー入力、ファイルの読み書き、通信など)が発生した際に、攻撃者の用意した悪意あるコード(マルウェア)を最優先で割り込ませて実行させる手法です。

1. 概要(攻撃者は何を実現できるのか?)

この手法で攻撃者は、「OSやアプリケーションの内部に深く潜り込み、ユーザーの操作やシステムデータを完全に監視・操作・隠蔽すること」を実現します。

2. 攻撃の流れ

フッキングは、OSのメモリ領域やシステム構成を直接書き換える必要があるため、多くの場合、攻撃者は事前に管理者権限(WindowsであればAdministratorやSYSTEM、Linuxであればroot)を確保した上で実行します。

  1. 初期侵入と権限昇格:
    脆弱性を突くなどしてターゲット端末に侵入し、フッキングを行うための高い権限(特権)を獲得します。

  2. ターゲットの選定とメモリ展開:
    マルウェアをシステム(または特定の正規プロセス、例: explorer.exe やブラウザなど)のメモリ空間にインジェクション(注入)します。

  3. フックの設置(関数書き換え):
    Windowsを例に挙げると、以下のような手法を用いて関数のルートを捻じ曲げます。

    • SetWindowsHookEx(正規APIの悪用):
      OSが提供するメッセージ監視用の正規関数を悪用し、特定のイベント(キーボード入力など)をマルウェアに転送させます。

    • インラインフッキング(IAT/EAT改ざん):
      メモリ上にある正規のシステム関数(例: CreateFileW など)の先頭数バイトを、攻撃者のマルウェアDLLの場所へジャンプ(JMP)する命令に直接書き換えます。

  4. 横取りと実行:
    ユーザーやシステムが正規の操作(例: メモ帳でファイルを開くなど)をすると、呼び出された関数が途中で攻撃者のコードへと脱線します。マルウェアは目的の処理(データのコピーなど)を済ませた後、システムがクラッシュしないよう、何事もなかったかのように処理を正規の関数へと戻します。

3. 防御・対策

フッキングはメモリ上で行われる高度な攻撃であるため、従来の「ファイルスキャン」だけでは防ぎにくく、メモリ保護と挙動監視が中心となります。

4. 重要ポイント

5. 関連する主なCWE

フッキングを許してしまう、またはフッキングによって悪用されるソフトウェア設計・管理上の脆弱性には以下のようなものがあります。

6. 関連する代表的なCVE

フッキングは「攻撃の手法(テクニック)」そのものであるため、特定の単一バグ(CVE)を指すものではありません。しかし、「一般権限しか持たないハッカーが、フッキングを行うために特権を奪取する(昇格する)際」や、「正規のセキュリティ機能をバイパスするためにフックを利用する際」に、以下のような脆弱性が関連インシデントとして取り沙汰されます。

実務上のアドバイス

インシデントハンドリングにおいて、「マルウェアの実行ファイル自体は削除したはずなのに、PCを操作すると特定のアプリケーション(ブラウザなど)が今でもおかしな挙動をする」という場合、そのアプリケーションのプロセスメモリ内にフックのコードだけが残存(寄生)しているケースがあります。その場合は端末を一度完全に再起動し、メモリをリフレッシュした上で、フックを注入した大元のファイル(DLLやレジストリ)を特定・駆除する必要があります。

分析

この攻撃手法を利用する脅威アクター

この攻撃手法を利用する脅威アクターは登録されていません。

関連する CVE

攻撃手法 – 脅威アクター Graph


← Technique一覧に戻る ← Tactics一覧に戻る