Vistaのカーネル変更を許可するAPI、サービスパック1で実装へ

Windowsカーネルを拡張するAPIのドラフト仕様がリリースされた。このAPIはVistaの最初のサービスパックで提供されるが、そのリリース時期はまだ発表されていない。

» 2007年02月20日 08時30分 公開
[Michael Cherry,Directions on Microsoft]
Directions on Microsoft 日本語版

 Windows Vistaの64ビット版には、サードパーティー製ソフトウェアがカーネルに変更を加えることを困難にする「カーネルパッチ保護」機能が導入されている。だが、この機能は、セキュリティユーティリティソフトウェアの正規の開発者が、Windowsカーネルに悪意ある変更が加えられていないかを監視する製品を開発することも困難にする。ユーティリティソフトウェアベンダー、政府の競争当局、Microsoftによる公の場での激しい議論を経て、同社は、カーネルの特定の動作の監視を可能にするAPIを提供することに同意した。

 Microsoftは2006年12月にこのAPIの最初のドラフト仕様をリリースし、レビューとコメントを求めている。このAPIはVista SP1で正式に実装される予定だ。しかし、このサービスパックのリリース時期はまだ発表されていない。

カーネルパッチ保護とは何か、なぜ物議を醸したのか

 カーネルの保護方法をめぐる議論が公に行われるようになったのは、Vistaが2006年11月のリリースを前に最終テストに入ってからだった。だが、カーネルパッチ保護機能は2005年5月から、Windows XPとWindows Server 2003の64ビット版で提供されていた。どちらもそれほど普及していなかった(ほとんどの64ビットコンピュータには、まだ32ビットOSが搭載されている)ため、以前はこの新しいカーネル保護方法についての不満はほとんど表面化しなかった。

 カーネルパッチ保護(旧称PatchGuard)は、サードパーティーソフトウェアがOSの中核部に変更を加えたり、「パッチを当てる」ことを防ぐ機能だ。「カーネルパッチ保護」という名前に「パッチ」という言葉が含まれているために、カーネルパッチ保護機能がサードパーティソフトウェアのどのような動作を妨げるのかをめぐって、混乱が生じている。カーネルパッチ保護の文脈では、「パッチを当てる」とは、「カーネルの問題を修正する正規の更新プログラムをインストールする」ことを指すのではなく、「カーネルにフックを仕掛けることで、カーネルへの要求がサードパーティーのソフトウェアコンポーネントに渡され、このコンポーネントがサービスが提供するようにする」ことを指す。また、「カーネルコンポーネントを、類似の機能を提供するサードパーティーコンポーネントに完全に置き換える」ことを指す場合もある。

 パッチを当てる正当な理由もあるかもしれない。例えば、カーネルの動作を監視するユーティリティを提供するため、といった理由だ。しかし、パッチを当てるメカニズムは、悪意あるプログラマーがルートキットやそのほかの悪意あるソフトウェアをインストールして隠す目的で利用でき、実際に利用してきた。Microsoftがドラフト仕様をリリースした新APIでは、開発者がカーネルを拡張する方法が定義されることになるが、同社はこれまでも、必要に応じて開発者と協力してインタフェースを追加している。例えば、アプリケーションがネットワークトラフィックのフィルタリングや検査を行うためのWindows Filtering Platform(WFP)は、ファイアウォール開発者と共同で開発された。

 Windowsのカーネル保護方法のこうした変更は、Microsoftが無料のWindows Defender(スパイウェア対策機能を提供)とサブスクリプションベースのWindows Live OneCare(ウイルス対策、スパイウェア対策、PCシステム管理機能を提供)により、セキュリティユーティリティ市場への参入を進めていた時期に行われた。このことは、Microsoftがカーネルパッチ保護機能を導入したのは、「競合するセキュリティ製品の機能を損なわせ、自社の新しいセキュリティユーティリティ製品のVistaユーザーにとっての魅力を高めることが狙いだった」という批判を招いた。MicrosoftはVistaをリリースする前に、カーネルの拡張に利用できるAPIや、Vistaのそのほかのセキュリティ機能の変更を発表した。この動きは、ユーティリティベンダーが欧州連合(EU)に苦情を申し立てるのを未然に防ごうとしたものと見られた。EUは、MicrosoftがEUの独禁法に違反しているかどうかを調査する一環として、同社がVistaに加えたセキュリティ関連の変更についてベンダーから聞き取りを行っている。

新APIの目指すもの

 Microsoftは、アプリケーションがWindowsカーネルを変更できるようにすることで、64ビットWindowsのセキュリティを弱めることはしないと述べている。だが、Microsoftはセキュリティユーティリティ開発者と協力して、セキュリティアプリケーションがカーネルパッチ保護機能を直接変更したり、迂回したり、弱めたりすることなく、必要なタスクを実行するための新しいWindows APIを開発する計画だ。

 これまでMicrosoftは、カーネルにパッチを当てる文書化されていないアプローチを一切推奨しておらず、サポートもしていない。同社は自社のアプリケーション開発者を含む開発者に、カーネルの変更を試みたり実際に行ったりしないよう一貫して勧めている。システムのセキュリティや安定性、パフォーマンス、サポートに影響するからだ。Microsoftはすべての開発者に、カーネルの変更を避け、より安全な方法を用いるようにプログラムを修正することを促すために、新しいAPIを、32ビット版と64ビット版の両方のWindows用に提供する考えだ。

 またMicrosoftは、新しいAPIが同社への批判者に、「Microsoftはカーネルパッチ保護機能を利用して、自社のセキュリティ製品の競争力を強化しようとしているのではない」という安心感を与えることを期待している。

 Microsoftは、セキュリティユーティリティベンダーが提示した要件と、ソフトウェアがカーネルにフックを仕掛けるのを防ぐという全体的な目標の両方を満たす、4つのカテゴリーのAPIを提供しようとしている。これらのAPIは以下の機能をカバーする。

  • プロセスとスレッドの制御:アプリケーションを起動または操作できるかどうかを管理する
  • セキュリティソフトウェアの改ざん防止
  • メモリの制御:プログラムがほかのプログラムのメモリを操作するのを防ぐ
  • イメージのロード操作:特定のアプリケーション、DLL、カーネルドライバ(技術的に言えば、これらの「コードイメージ」)がロード、実行されるのを防ぐために利用できる

 MicrosoftはこれらのAPIのドラフト仕様セットをリリースし、セキュリティ専門家やセキュリティユーティリティ開発者のフィードバックを集めている。同社はこのAPIセットを、Vista SP1の32ビット版と64ビット版の両方に搭載してリリースする計画だ。このAPIセットが32ビット版Windows用にも提供されるのは、開発者がプロセッサにかかわらず、一貫した方法でカーネルを扱えるようにするためだ。

 Microsoftはまた、カーネルパッチ保護機能が同社の競争力強化に利用されることはないという認識を広めるため、Microsoftアプリケーションによるカーネル変更についても、例外を一切認めないというポリシーを採用する。さらにMicrosoftは、今後も引き続きソフトウェア業界と密接に協力し、相互運用性の問題が生じた場合に解決に取り組むとともに、新たなAPI機能の導入を図っていくとしている。

 Microsoftは開発者に、現在依存している文書化されていないプロセスから脱却し、カーネルパッチ保護APIに移行するよう呼びかけていく。このAPIは、開発者がソフトウェアをこのAPIに対応させてテストを行い、SP1に合わせてリリースできるようなタイミングでテスト版が提供される。Vista SP1のリリース時期は発表されていないが、リリースされるのは2007年後半以降だろう。

Vistaのセキュリティ機能の他の変更点

 Microsoftは、カーネルパッチ保護機能によって実行を妨げられるタスクに似たタスクを正当なアプリケーションが実行できるようにするAPIを新たに提供するだけでなく、Vistaのセキュリティ機能に以下のような変更を加えている。これらの変更は、政府の競争当局の指導や業界のベンダーの意見に対応したものだ。

  • Windowsセキュリティセンターのダッシュボードの設計が変更され、どのベンダーのセキュリティソフトウェアがインストールされているかにかかわらず、ウイルス対策、スパイウェア対策、ファイアウォール、関連するセキュリティソリューションの状態を表示するようになった。
  • Windows Defender APIにより、セキュリティベンダーやコンピュータメーカーが、Windows Vistaの統合型マルウェア対策ソリューションであるWindows Defenderを無効に設定し、代わりのソリューションをインストールできるようになった。
  • Windows Security Center Alerts APIにより、Microsoft以外のセキュリティユーティリティソフトウェアのセキュリティアラートが、Windowsセキュリティセンターの提供するアラートに取って代われるようになった。

 後者の2つのAPIは、2006年11月のリリース前にWindows Vistaに追加された。

Windowsセキュリティセンター Windowsセキュリティセンターは、Microsoftのセキュリティユーティリティソフトウェア市場への参入に伴い、同社と既存ベンダーの間に生じている対立の焦点の1つだ。MicrosoftはWindowsセキュリティセンターについて、「ファイアウォール、更新、悪意あるソフトウェア(マルウェア)対策、そのほかのセキュリティ設定の状況といったコンピュータのセキュリティ状態を、特定のアプリケーションに依存せずに一元的に把握する手段」として設計したと主張している。Windowsセキュリティセンターでは、ユーザーがセキュリティ製品をインストールしていない場合、すべてのベンダーの入手可能なすべての製品の一覧が(ランダムに)表示されるようになっている。しかし、セキュリティユーティリティベンダーは、Windowsセキュリティセンターを独自のユーザーインタフェースで全面的に代替したいと考えている。彼らはその理由について、彼らの製品をインストールすることを選んだ顧客は、状態監視ソフトウェアも彼らのものを使おうとするためとしている

Copyright(C) 2007, Redmond Communications Inc. and Mediaselect Inc. All right reserved. No part of this magazine may be reproduced, stored in a retrieval system, or transmitted in any form or by any means without prior written permission. ISSN 1077-4394. Redmond Communications Inc. is an independent publisher and is in no way affiliated with or endorsed by Microsoft Corporation. Directions on Microsoft reviews and analyzes industry news based on information obtained from sources generally available to the public and from industry contacts. While we consider these sources to be reliable, we cannot guarantee their accuracy. Readers assume full responsibility for any use made of the information contained herein. Throughout this magazine, trademark names are used. Rather than place a trademark symbol at every occurrence, we hereby state that we are using the names only in an editorial fashion with no intention of infringement of the trademark.

注目のテーマ