カーネルメモリのKASLRバイパス脆弱性からコンピュータを保護する

カーネルメモリのKASLRバイパス脆弱性からコンピュータを保護する

Windowsカーネルは、ハードウェアとオペレーティングシステムをつなぐ重要な橋渡しとして機能します。強力なデフォルトのセキュリティ対策により、マルウェアがシステムに侵入することは困難です。しかしながら、KASLRバイパスの脅威が増加しており、Living Off the Landドライバー(LOLドライバー)の脆弱性やキャッシュタイミング攻撃を悪用して、昇格されたアクセス権限を回避しています。これらの攻撃はこれまで古いシステムを標的としてきましたが、現在ではWindows 11 24H2も標的となり、重要なカーネルメモリを露出させているという証拠があります。以下は、これらのセキュリティの抜け穴を効果的に塞ぐ方法に関する包括的なガイドです。

KASLRバイパスの脅威を理解する

Windowsカーネルは、メモリやCPU使用率など、重要なシステムリソースへのアクセスを綿密に制御しています。採用されている主要な防御策の一つは、カーネルアドレス空間レイアウトのランダム化(KASLR)です。これはメモリ位置を隠蔽することで、カーネルレベルのマルウェアによるアクセスを極めて困難にするように設計されています。しかし、最近の進歩により、2025年6月時点でWindows 11 24H2においてKASLR保護を回避できる新しいドライバー「eneio64.sys 」が利用可能になりました。

この特定のドライバはLOLドライバに分類され、「Low Stub」と呼ばれる手法によって侵害を受ける可能性があります。攻撃者はメモリスキャンと推測に基づいてシステムのベースメモリアドレスを特定します。カーネルの回避に成功すると、実世界での悪用が可能となり、深刻な脅威レベルとなります。

System32 ドライバーのリストを確認しています。

System32フォルダを手動で確認し、これらのドライバを探すことができます。問題のあるドライバが検出されない場合は、それらのドライバが存在しないか、適切に削除されていることを示しています。

2025年5月に確認されたもう一つの注目すべきエクスプロイトは、キャッシュタイミング手法を用いてKASLRを完全に回避するというものでした。攻撃者は、SeDebugPrivilegeなどの権限を取得することなく、「0xfff」範囲内の潜在的なカーネルアドレスへのアクセス遅延を測定しました。この攻撃は主にWindows 10とそれ以前のWindows 11バージョン(21H2、22H2、23H2)を対象としていましたが、Windows 11ユーザーは防御を強化するために24H2以降のバージョンに移行することが不可欠です。24H2へのアップグレード中に互換性の問題に遭遇したユーザーのために、スムーズな移行を支援するための効果的な解決策をまとめました。

KASLRバイパスリスクを軽減するためのLOドライバーの特定

2025年以降、Windows 11 24H2のカーネルセキュリティ強化では、SeDebugPrivilegeを活用してより強力な保護を提供しました。しかし、悪意のある攻撃者は、LOLDriversを介してKASLRバイパス技術を悪用し、最新のWindows 11に侵入し続けています。

問題のあるシステム ドライバーを確認するには、PowerShell を管理者モードで起動し、次のコマンドを実行します。

Get-WindowsDriver -Online | Where-Object { $_. OriginalFileName -match "sys"} | Format-Table OriginalFileName, ProviderName

PowerShell の昇格モードで System32 ドライバーのリストを取得します。

このコマンドを実行した後、出力でLOLドライバの有無を確認してください。このようなドライバの例としては、MsIo64.sys、nt3.sys、VBoxTap.sysなどがあります。さらに注意を払うには、LOLドライバのユニバーサルリストを参照してください。

Microsoftは、LOLDriversを含む、ブロックされたドライバーや古いドライバーの包括的な最新リストを提供しています。このリストはXMLファイルとしてダウンロードでき、enio64.sysなどの問題のあるドライバーを以下の方法で検索できます。

Get-WindowsDriver -Online | Where-Object { $_. OriginalFileName -match "eneio64.sys"}

PowerShellで特定のLOLDriverを検索する、enio64.sys

概説した方法により、KASLRバイパスを可能にする可能性のある脆弱なLOLDriverからデバイスを確実に保護できます。よりユーザーフレンドリーな方法としては、「Windowsセキュリティ」「デバイスセキュリティ」→ 「コア分離の詳細」に移動し、 「メモリ整合性」が有効になっていることを確認する方法があります。

メモリ整合性は、Windows セキュリティのコア分離で有効になっています。

KASLRバイパス手法はWinos 4.0マルウェアの挙動に類似しています。どちらも非常に永続的で、複雑な攻撃チェーンを通じてペイロードを拡散します。

SeDebugPrivilege の強制による Windows セキュリティの強化

キャッシュタイミングサイドチャネル攻撃は、KASLRバイパス技術に関連する重大なリスクです。攻撃者が様々な手法を用いてカーネルメモリを直接操作することで、Windows 11 24H2以降に導入された重要なセキュリティ対策であるSeDebugPrivilegeを必要とせずにカーネルアドレスを露出させることが可能です。

ただし、Windows 10 やそれ以前のバージョンの Windows 11 を使用しているユーザーでも、 SeDebugPrivilege を適用することでシステムを強化することができます。その簡単な方法を以下に示します。

Windows 10/11 ProまたはEnterpriseデバイスでは、「ファイル名を指定して実行」コマンドを押し、 と入力すると、ローカルセキュリティポリシーsecpol.mscウィンドウが表示されます。 「ローカルポリシー」→ 「ユーザー権利の割り当て」に移動し、「プログラムのデバッグ」をダブルクリックしてください。

「ローカルポリシー > ユーザー権利の割り当て」の下にある「プログラムのデバッグ」をダブルクリックします。” title=”「ローカルポリシー > ユーザー権利の割り当て」の下にある「プログラムのデバッグ」をダブルクリックします。” width=”701″ height=”451″ loading=”lazy” class=”wp-image” src=”https://cdn.thefilibusterblog.com/wp-content/uploads/2025/06/KASLR-Bypass-Local-Security-Policies-Debug-Programs.webp”/></figure> <p>「プログラムのデバッグ」設定が、管理者などの特定のユーザーグループに対して有効になっている場合は、これ以上の操作は必要ありません。そうでない場合は、「<strong>ユーザーまたはグループの追加</strong>」をクリックして、この権限を他のユーザーに拡張します。</p> <figure class=プログラムのデバッグ設定は、デバイス上でデフォルトで有効になっています。

新しいユーザーを追加したら、「名前を確認」をクリックし、 「OK」をクリックします。最後に「適用」を選択し、もう一度「OK」をクリックして変更を確定します。

SeDebugPrivilege リストにユーザー名またはグループを追加します。

Windows 10/11 Homeをご利用の場合、ローカルセキュリティポリシーにアクセスできません。代わりに、 と入力してレジストリエディターregeditにアクセスしてください。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

このキーがまだ存在しない場合は作成してください。右クリックして、 という新しい REG_SZ 値を作成しSeDebugPrivilege、その値を に調整してくださいAdministrators。変更を加える前に、必ずレジストリをバックアップしてください。

KASLRバイパスなどのカーネル指向のマルウェア脅威に対抗するには、Windowsセキュリティによってフラグが付けられたドライバのインストールを阻止することが不可欠です。署名されていないドライバが必要になるケースは稀ですが、この点に関してはベストプラクティスに従うことが不可欠です。オペレーティングシステムを最新の状態に保ち、最新のWindowsバージョンを導入することは、システムのセキュリティを確保するための基本的な要素です。

よくある質問

1. KASLR とは何ですか? また、Windows セキュリティにとってなぜ重要ですか?

KASLR(カーネルアドレス空間レイアウトのランダム化)は、Windowsのセキュリティ機能です。カーネルプロセスへのメモリ割り当てをランダム化することで、マルウェアが悪意のあるコードを挿入する場所を予測することを著しく困難にします。このランダム化されたレイアウトは、カーネルレベルの攻撃に対する重要な防御層を追加します。

2. Windows マシンで LOLDrivers を確認するにはどうすればよいですか?

PowerShell を管理者特権モードで使用すれば、LOLDrivers を簡単に確認できます。コマンドを実行するとGet-WindowsDriver -Online | Where-Object { $_. OriginalFileName -match "sys"} | Format-Table OriginalFileName, ProviderName、現在システムにインストールされているドライバーの一覧が表示されます。

3.システムに古いドライバーや安全でないドライバーがある場合はどうすればいいですか?

古くなったドライバーや安全でない可能性のあるドライバーに遭遇した場合は、アンインストールし、Microsoftが推奨する安全で最新のドライバーに置き換えることをお勧めします。また、Microsoftから最新のドライバーブロックリストをダウンロードして、既知の安全でないドライバーを特定し、インストールを防止することも可能です。

出典と画像

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です