Windows Downdate の脆弱性:アップデートの無効化とルートキットのインストールが可能に

New Windows Driver Signature bypass allows kernel rootkit installs

2024/10/26 BleepingComputer — Windows カーネル・コンポーネントをダウングレードする攻撃者が、ドライバ署名強制などのセキュリティ機能を回避し、完全にパッチが適用されたシステムに対して、ルートキットを展開できることが判明した。それは、Windows Update プロセスを制御して、完全にパッチが適用された状態へと OS を変更させないことで達成される。つまり、最新の状態のマシンであっても、脆弱で古いソフトウェア・コンポーネントを導入することになる。

Windows のダウングレード

SafeBreach のセキュリティ研究者である Alon Leviev は、このアップデート乗っ取り問題を Microsoft に報告した。しかし同社は、管理者としてカーネルコードの実行権限を得ることが可能であっても、定義されたセキュリティ境界を越えていないとして、これを却下した。

2024年の BlackHat/DEFCON セキュリティ・カンファレンスで、この攻撃が実行可能であることを Alon Leviev が実演した。つまり、問題は解決されておらず、ダウングレード/バージョン・ロールバック攻撃の余地が残存していることになる。

彼が作成/公開した Windows Downdate は、DLL/ドライバ/NTカーネルなどの旧式コンポーネントを介して、一見すると完全にアップデートされたターゲット・システムを、修正済みの脆弱性にさらすことを可能にするツールである。

Leviev は、「完全にパッチが適用された Windows マシンを、過去の脆弱性に対して無防備にし、修正済みの脆弱性を未修正の状態にし、世界中の Windows マシンに付与される “完全にパッチが適用された” という言葉を、無意味にできることが確認された」と述べている。

カーネルのセキュリティは、ここ数年で大幅に改善されている。しかし Leviev は、DSE (Driver Signature Enforcement) 機能を回避する方法を見つけ出した。つまり、署名のないカーネル・ドライバをロードしてセキュリティ制御を無効化する攻撃者が、侵害の検出につながる可能性のある活動を隠蔽しながら、ルートキット・マルウェアの展開を達成することが判明している。

Leviev は、「近年において、管理者権限で侵害された可能性があるという想定のもとで、カーネルのセキュリティを強化するための、大幅な機能強化が実施されている」と述べている。

新しい保護により、これまで以上にカーネル侵害は困難になる。しかし Leviev は、「カーネルに存在するコンポーネントをダウングレードする能力は、攻撃者にとって非常にシンプルなものになる」と指摘している。

Leviev は、この手法を “ItsNotASecurityBoundary DSE バイパス“ と呼んでいる。その理由は、カーネル特権で任意のコードを実行する方法として、Elastic の Gabriel Landau により特定された Windows の新しい脆弱性クラスである、偽のファイル不変性の欠陥を活用する、ItsNotASecurityBoundary エクスプロイトのダウングレードという点にある。

カーネルを標的に

10月26日に発表された新しい研究成果で Leviev は、標的となるマシン上の管理者権限を持つ攻撃者が Windows Update プロセスを悪用し、パッチ適用されたコンポーネントをダウングレードし、DSE の保護を回避する方法を提示している。

この攻撃は、DSE の実行を担うファイルである “ci.dll” を、ドライバ署名を無視するパッチ未適用のバージョンに置き換えることで可能になる。それにより、Windows の保護チェックの回避が可能になる。

Loading the old DLL while Windows verifies the latest version
Windows が最新バージョンを検証している間に古い DLL をロードする
Source: SafeBreach

コンポーネントが脆弱なバージョンにダウングレードされると、正規の更新プロセスと同様に、マシンを再起動する必要がある。

以下の Leviev によるデモ動画では、ダウングレード攻撃により DSE パッチを元に戻した後に、完全にパッチが適用された Windows 11 23H2 マシンのコンポーネントを悪用する方法を実演している。

また、Leviev は、Windows の重要なリソースやセキュリティ資産 (セキュア・カーネル・コードの整合性メカニズム “skci.dll” や、認証済みユーザーの資格情報など) を保護するために、Windows に隔離された環境を作成する Microsoft の VBS (Virtualization-based Security) を、無効化/回避する方法についても説明している。

通常において VBS は、不正な変更を防止するために UEFI ロックやレジストリ・コンフィグなどの保護機能に依存しているが、最大のセキュリティ (“Mandatory” フラグ) でコンフィグされていない場合には、特定のレジストリキーの変更を行うことで、それらの無効化が可能になるという。

部分的に有効化されている場合には、”SecureKernel.exe” などの主要な VBS ファイルを破損したバージョンに置き換えることで、VBS の動作を妨害し、”ItsNotASecurityBoundary” バイパスと ”ci.dll” の置き換えが可能になる。

Ignoring the VBS configuration during boot
起動時の VBS 構成を省略する
Source: SafeBreach

Leviev の研究は、時には強力な特権が前提条件となる場合があるとしても、いくつかの経路を通じて、依然として ダウングレード攻撃が可能であることを示している。

問題解決の兆しが見えてきた

BlackHat と DEFCON で発表されたダウングレード攻撃では、悪用された脆弱性 (例:CVE-2024-21302/CVE-2024-38202) がある。したがって、Microsoft が行うべきことには、Windows Update 乗っ取り問題への対処がある。

Leviev は、「Microsoft にも報告された Windows Update の乗っ取りは、定義されたセキュリティ境界を越えていないという理由により、いまだに修正されていない。カーネルコードを管理者として実行することは、セキュリティ境界を越えることとはみなされない。つまり、脆弱性ではないとのことだ」と述べている。

彼が強く訴えるのは、ダウングレード攻撃がユーザー組織に重大なリスクをもたらし続けているため、この問題を Microsoft が修正するまで、ダウングレード攻撃を監視し、検知すべきであるという点だ。

Microsoft の広報担当者は、「これらのリスクから保護するための緩和策を積極的に開発している」と、BleepingComputer に述べている。影響を受ける全てのバージョンにわたる、徹底的な調査/アップデートの展開/互換性テストが含まれており、それにより、顧客は確実に保護され、業務中断が最小限に抑えられるという。

すでに同社は、セキュリティ更新プログラムを開発している。そのプログラムは、古いバージョンのパッチ未適用の VBS システムファイルを無効化することで、この問題を軽減するという。この問題は複雑であり、また、統合エラーやリグレッションを回避するための包括的なテストが必要である。したがって、この更新プログラムが提供される時期は不明である。

UPDATE [10月27日]: Microsoft が、この問題を軽減するための措置を取っていないという誤解を招く可能性があるため、同社からの情報を追加した。それにより、記事を編集し、”この攻撃には管理者権限が必要である” ことを明確にした。