カーネルドライバーと名前付きパイプを通じてWindowsのLPE脆弱性を発見する

Whitehat Schoolのセキュリティ研究者は最近、Windowsシステムにおける権限昇格(LPE)脆弱性の特定に焦点を当てた集中的なバグハンティングプロジェクトを完了しました。

調査結果は、サイバーセキュリティチームが直ちに優先すべき2つの主要な攻撃対象領域、すなわちカーネルドライバーと名前付きパイプにおける重大な脆弱性を明らかにしています。

カーネルドライバーの課題

カーネルドライバーはシステムの中核で動作し、ユーザーアプリケーションからの要求を処理するため、重大なセキュリティリスクとなります。

調査では、多くのドライバーがユーザーからコマンドを受け取る際に適切な検証を行っていないことが示されています。

Image
抽出されたファイルは解析ディレクトリへ正しく移動されました

ドライバーが正当性を確認せずにユーザー入力を受け入れると、攻撃者はこの信頼のギャップを悪用して、保護されたカーネルメモリ内の任意のデータを読み書きできてしまいます。

Image
攻撃者はこの信頼のギャップを悪用して任意のデータを読み書きできます

チームは実践的な手法を示しました。まずシステム上で脆弱なドライバーを特定し、次にそのコードを解析して、データを無条件にコピーする「memmove」関数のような安全でないメモリ操作を見つけます。

Image
 脆弱性が確認されました

悪意のあるコマンドを作成することで、研究者は任意の読み取り・書き込み能力を獲得し、最終的に権限をシステム管理者レベルへ昇格させました。

名前付きパイプは、ユーザーアプリケーションが高い権限で動作するシステムサービスとやり取りするための通信チャネルです。

Hackyboizの調査で明らかになったのは、多くのシステムサービスがこれらのパイプに過度に緩いアクセス制御を設定しており、任意のユーザーが接続して要求を送信できてしまうという点です。

特に懸念されるのは、開発者が「認可された当事者だけが接続するはずだ」と信頼し、十分な検証なしにコマンドハンドラーを実装してしまうことがある点です。

Image
名前付きパイプのターゲット収集

チームは、すべてのユーザーがアクセス可能な名前付きパイプを持つ、実在の脆弱なアンチウイルスサービスを特定しました。

特別に細工した要求を送ることで、SYSTEMサービスに重要なWindowsレジストリ設定を変更させ、最終的に管理者権限で任意のコードを実行しました。

両方の脆弱性には共通の根本原因があります。それは、信頼境界の検証が不十分であることです。カーネルドライバーとシステムサービスは、適切なチェックなしにユーザー入力が安全だと想定しています。

Image
権限昇格攻撃

このギャップにより、ユーザーモードからシステム権限へ至る直接的な経路が生まれます。

提示された研究手法は、セキュリティチームにとって体系的なアプローチを提供します。露出しているインターフェースを列挙し、アクセス権限を検証し、安全でないパターンがないかコードを解析し、WinDBGやProcess Monitorのような動的監視ツールでテストします。

組織は、サードパーティ製ドライバーおよびシステムサービス、特にアンチウイルスベンダー、セキュリティツール、システムユーティリティのものについて、緊急の監査を実施すべきです。

これらの調査結果は、Windowsがローカル権限昇格攻撃の主要な標的であり続ける理由、そして多層防御戦略が依然として不可欠である理由を浮き彫りにしています。

翻訳元: https://gbhackers.com/hunting-windows-lpe-flaws/

ソース: gbhackers.com