タスクマネジャーからプロセス消失 隠ぺい手法を研究者らが公開セキュリティニュースアラート

HVCI有効環境でのプロセス隠ぺい手法をOutflankが公開した。プロセス管理リストを改ざん後、終了直前の公式コールバックで整合性を修復することで、PatchGuardの検知を回避できてしまうという。

» 2026年01月10日 07時00分 公開
[ITmedia エンタープライズ編集部]

この記事は会員限定です。会員登録すると全てご覧いただけます。

 Outflankは2026年1月7日(現地時間)、「Windows」に実装されているカーネル保護機構「PatchGuard」およびハイパーバイザーで保護されたコード整合性(HVCI)が有効な環境において、プロセスをユーザーモードの列挙から隠ぺいし得る手法に関する技術的研究を公開した。

 同研究では、従来のカーネルフックや保護回避がほぼ通用しなくなった現行Windows環境において、どのような範囲の操作が成立するのかを検証した。

Windowsの防御を潜り抜けるプロセス隠ぺい 技術的な詳細

 Outflankによれば、最近のWindowsにおいてはカーネルコード領域がハードウェア支援の仮想化技術によって厳格に保護されており、ドライバーがコードを書き換えようとすると即座に拒否されるか、システム停止が発生する設計となっている。

 PatchGuardは従来、カーネル内部構造の整合性を検証してきたが、HVCIや「Secure Kernel PatchGuard」(SKPG)の導入により、その監視はハイパーバイザー層にまで拡張されている。

 こうした状況の中で、同社の研究は「プロセス隠ぺい」という限定的な目的に焦点を当てた。Windowsは、実行中の全プロセスを「EPROCESS」構造体(Windows内部のプロセス管理構造)内の「ActiveProcessLinks」と呼ばれる双方向リストで管理している。

 このリストから特定のエントリーを外すことで、タスクマネジャーなどのツールからプロセスを見えなくする手法は古くから知られている。ただし、現行環境ではプロセス終了時に「PspProcessDelete」という内部関数がリスト構造の整合性を検査し、異常があれば高速失敗割り込み(int 29h)を介して0x139のエラー(KERNEL_SECURITY_CHECK_FAILURE)で停止する。

 Outflankは、この終了処理の直前に着目。Microsoftが公式に提供している「PsSetCreateProcessNotifyRoutineEx」を使うことで、プロセスの生成や終了の通知をカーネルドライバーが受け取れる。研究ではプロセス終了の通知を受けた時点で、改変されていたActiveProcessLinksの前後ポインターを元の整合した状態に修復する手法を示した。これにより、プロセスの実行中は不可視の状態を維持しつつ、終了処理時には検査を通過できることが確認されたという。

 この方法は、カーネルコードや割り込み記述子テーブル(IDT)などの保護対象領域には一切手を加えず、書き込み可能なデータ構造のみを操作する点に特徴がある。そのため、HVCIが提供する拡張ページテーブルによるコード保護には抵触しないと説明されている。ただし、実行には署名済みのカーネルドライバーが必要であり、任意の環境で容易に再現できるものではないという。

 Outflankは今回の結果について、Windowsの防御機構が破られたことを示すものではないと位置付けている。あくまでPatchGuardが検査する特定の条件とタイミングを理解した上で成立する限定的な事例であり、SKPGによる監視の全容については未解明の部分が残るとしている。同社は、Windows環境では保護の境界を正確に理解することが研究の前提条件になっているとし、本稿はその一端を示す技術的記録であると結論付けている。

Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

注目のテーマ

あなたにおすすめの記事PR