GoogleのProject ZeroチームのJames Forshawは、WindowsのCOMオブジェクトにおける重大なセキュリティ脆弱性を報告した。この脆弱性は、IDispatchインターフェースを介してトラップされたCOMオブジェクトにアクセスする際に発生し、攻撃者が高い特権を持つサーバープロセス内でコードを実行できる可能性がある。

具体的には、オブジェクト指向リモート技術のプロセス間通信機能を悪用することで、サーバープロセス内にCOMオブジェクトをインスタンス化し、セキュリティ境界を越えてサーバーを制御することが可能となる。Forshawは、OleView.NET PowerShellモジュールを使用してこの問題をデモンストレーションし、Windowsの特定のサービスクラスがどのように攻撃に悪用されうるかを調査した。

この脆弱性により、攻撃者はProtected Processとして実行されているWindowsサービスにコードを注入し、特権を昇格させる可能性がある。Microsoftは、タイプライブラリの検証強化などの対策を講じているが、依然として脆弱性のある領域が残っていると指摘されている。ユーザーは、システムを最新の状態に保ち、公開されたCOMインターフェースを確認することが推奨される。

WindowsのCOMオブジェクトの脆弱性が引き起こすリスクと影響

WindowsのCOMオブジェクトを悪用した脆弱性は、単なるリモートコード実行(RCE)にとどまらず、システムの制御権を攻撃者に奪われる危険性をはらんでいる。この脆弱性が特に危険なのは、COMオブジェクトがもともとプロセス間通信(IPC)を容易にするための技術であり、通常のアプリケーションでも幅広く利用されている点にある。

COMオブジェクトのマーシャリング処理が適切に管理されていないと、攻撃者は任意のオブジェクトを意図しないプロセスで実行させることができる。これにより、特権を持つシステムプロセス内でコードを動作させることが可能となり、情報の漏洩や権限の昇格が現実の脅威となる。

特に、Protected Process(PPL)として実行されるWindowsサービスが標的となった場合、通常のセキュリティ対策では防げない攻撃が成立する可能性がある。

また、Forshawの調査によれば、特定のタイプライブラリを介して未署名のライブラリをロードすることで、Windows 11のセキュリティ機能を回避できることが判明している。これは、攻撃者がWindowsのセキュリティ境界を突破する新たな手法を開発する余地があることを示しており、Microsoftが今後さらなる対策を講じる必要があることを浮き彫りにしている。

IDispatchインターフェースの脆弱性とスクリプトエンジンの関係

この脆弱性の発生源の一つは、WindowsのOLEオートメーション機能に深く関係している。OLEオートメーションは、スクリプト言語とWindowsのシステムコンポーネントを接続する役割を担っており、VBAやJScriptといったスクリプトエンジンによって広く利用されている。

IDispatchインターフェースは、こうしたスクリプト環境でCOMオブジェクトを操作するための仕組みであり、動的にメソッドを呼び出すことが可能となる。この仕組みを悪用することで、攻撃者は制御可能なオブジェクトを作成し、ターゲットの環境内で任意のコードを実行できる可能性がある。

また、Forshawは、OleView.NET PowerShellモジュールを用いて、IDispatchベースのCOMオブジェクトの動作を詳細に解析している。その結果、いくつかのWindowsサービスが、この脆弱性の影響を受けやすいことが確認された。

特にWaaSRemediationAgentクラスなどは、Protected Process Light(PPL)環境下で動作するため、通常のユーザープロセスからはアクセスできないはずの権限を悪用することが可能となる。

これにより、PowerShellを利用したスクリプト攻撃のリスクが高まり、企業や個人ユーザーのシステムが不正アクセスの危険にさらされる可能性がある。スクリプトベースの攻撃は従来から多くのマルウェアで使用されており、今回の脆弱性はその手法に新たな選択肢を提供するものとなる。

Microsoftの対応と今後の課題

Forshawの報告を受けて、MicrosoftはWindows 11(24H2)においてセキュリティ機能の強化を図っている。特に、未署名のタイプライブラリのロードを制限することで、従来の攻撃手法の一部を封じる措置が取られている。しかし、Forshawの研究によると、32ビット版のタイプライブラリを利用することで、この対策を回避できる可能性が示唆されている。

これは、Windowsのセキュリティ設計において、依然として未解決の脆弱性が存在することを意味している。特に、古い技術が現在のシステムに残存していることが、攻撃者にとって格好の標的となっている点は見過ごせない。COMオブジェクトやIDispatchインターフェースのようなレガシー技術が、最新の攻撃手法と組み合わされることで、新たなリスクが発生し続ける可能性がある。

ユーザー側の対策としては、Windowsの最新パッチを適用することはもちろん、PowerShellの制限強化や、不要なCOMオブジェクトの登録を解除するなどの措置が求められる。また、セキュリティ監査を定期的に実施し、公開されたCOMインターフェースの設定を見直すことも重要となる。

Forshawの研究は、単なる脆弱性の発見にとどまらず、Windowsの基本的な設計が抱える問題を改めて浮き彫りにした。今後もMicrosoftがどのような対応を取るのか、そして攻撃者がこの知見をどのように悪用するのかが、セキュリティ業界全体の注目点となるだろう。

Source:Cyber Security News