第8回 Vistaにおけるデバイスドライバのゆくえ元麻布春男のWatchTower「Windows Vista編」(1/2 ページ)

» 2006年09月05日 08時30分 公開
[元麻布春男,ITmedia]

デバイスドライバの脆弱性が潜在的なセキュリティホールになる

 前回の連載の最後でも記したように、July CTPではWindows Updateのオプションで、各種ハードウェアに対応したデバイスドライバが配布される。古いビルドでは、どうしてもデバイスドライバが間に合わず、Windows XP用のものを流用しなければならないことが多かった。だが、Windows Vistaで大きく変わる部分の1つがデバイスドライバであり、既存のものを流用するのは望ましいことではない。

 Windows Vistaのデバイスドライバ環境が変わるのは、セキュリティと安定性の向上を図ってのことだ。もう少し具体的に言えば、現在カーネルモードで動作しているデバイスドライバのうち、必要性の少ないものをユーザーモードに移そうということである。

 元々Windows NTのアーキテクチャでは、デバイスドライバの多くがユーザーモードで動作するサブシステムドライバと、カーネルモード(Windows Executive)で動作するカーネルモードドライバで構成されていた。カーネルモードで動作するコードは、システム全体を不安定にすることが可能であり、これを極力減らそうという発想であった。

 しかしWindows NT 4.0以降、多くのドライバがカーネルモードへ移されていく。その最大の理由は、Windows 9xから主役の座を奪うためだったと思われる。Windows NT 4.0がリリースされた1996年当時、デスクトップの主役だったのはWindows 95であった。Windows 95はWindows 95 OSR2(OEM Service Release 2)となり、Windows 98、Windows 98 Second Editionと進化して行き、相変わらずデスクトップの主役であった。Windows NTがWindows 9xに苦戦したのは、グラフィックス性能やDirectX系APIのサポートで見劣りしたからだ。

 デバイスドライバをカーネルモードへ移すことは、システムの安定性という観点からはマイナスだが、性能の向上には役立つ(コンテキストスイッチの際のオーバーヘッドが小さいなど)。Windows NT 4.0はWindows 9xに対抗するため、あえて安定性より性能をとったことになるが、このおかげもあって、だんだんと主流のOSとして認められていく。とくにプラグ&プレイのサポートが加わったWindows 2000以降その流れは強まり、Microsoft自身がWindows 9x系OSの開発を打ち切ったこともあり、Windows NTの流れをくむWindows XPが、すべてのPCにおいて主役となった。

 この間、デバイスドライバの大半をカーネルモードにおくというWindows NT 4.0の方針は維持され続けてきた。おかげで性能は上がったが、デキのよくないディスプレイドライバやサウンドドライバが、簡単にシステムをリブートさせてしまう、という問題も抱えたままになってしまった。これは同時に、デバイスドライバに潜む脆弱性が潜在的なセキュリティホールになるということでもある。

Windows Vistaではドライバモデルが大幅に見直されてセキュアな環境を確保

Vistaでドライバ導入時に表示される警告画面

 Windows Vistaでは、ドライバモデルが見直され、カーネルモードドライバとユーザーモードドライバを組み合わせた、いわばWindows NT 3.xへの先祖返りが行われる。これにより、システムの安定性とセキュリティを向上させることが狙いだ。とくに、レガシーの少ないx64版は、デバイスドライバに限らず、カーネルモードで動くコードが厳しく制限される。具体的には、デジタルサインのないコード(デバイスドライバだけでなく、EXEやDLLを含む)をカーネルモードで動かすことはできなくなる

 x86版(32ビット版)では、既存のアプリケーションやデバイスドライバとの互換性を保つ意味から、デジタルサインのないコードをカーネルモードで動かすことが認められるが、この場合も制約が加わる。著作権保護されたHD DVDやBlu-rayコンテンツの再生をサポートするため、Windows Vistaではセキュアな環境、Protected Video Pathが用いられる。システムに1つでもデジタルサインのないカーネルモードドライバが組み込まれると、Protected Video Pathは成立しない。言い換えれば、ディスプレイドライバがデジタルサインされているだけではだめで、すべてのカーネルモードドライバにデジタルサインが必要になる。カーネルモードで動作して、セキュアなデータを取り出そうとするようなマルウェアを排除するためだろう。

 Windows 9xからWindows NT/2000への移行を促すために、当時のMicrosoftはWindowsロゴ取得の条件として、アプリケーションやデバイスドライバがWindows 9xとWindows NT/2000両方に対応することを求めた。おそらくWindows Vistaのリリースに際しては、Windowsロゴ取得の条件として32ビット版と64ビット版の両方に対応することを求めてくるだろう。デベロッパは、ロゴ取得のためには、うちは32ビット版だけ対応すればいいや、などとは言えなくなるはずである(Windowsロゴを取得しないと、大手PCベンダへの採用が著しく不利になる)。64ビット版のドライバを作成するのにデジタルサインが必要になるとしたら、それを32ビット版に使わない手はない。おそらくカーネルモードドライバのデジタルサイン対応は急速に進むだろう。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

2024年03月29日 更新
  1. ミリ波レーダーで高度な検知を実現する「スマート人感センサーFP2」を試す 室内の転倒検出や睡眠モニターも実現 (2024年03月28日)
  2. Synology「BeeStation」は、“NASに興味があるけど未導入”な人に勧めたい 買い切り型で自分だけの4TBクラウドストレージを簡単に構築できる (2024年03月27日)
  3. ダイソーで330円の「手になじむワイヤレスマウス」を試す 名前通りの持ちやすさは“お値段以上”だが難点も (2024年03月27日)
  4. 「ThinkPad」2024年モデルは何が変わった? 見どころをチェック! (2024年03月26日)
  5. ダイソーで550円で売っている「充電式ワイヤレスマウス」が意外と優秀 平たいボディーは携帯性抜群! (2024年03月25日)
  6. 次期永続ライセンス版の「Microsoft Office 2024」が2024年後半提供開始/macOS Sonoma 14.4のアップグレードでJavaがクラッシュ (2024年03月24日)
  7. 日本HP、個人/法人向けノート「Envy」「HP EliteBook」「HP ZBook」にCore Ultra搭載の新モデルを一挙投入 (2024年03月28日)
  8. サンワ、Windows Helloに対応したUSB Type-C指紋認証センサー (2024年03月27日)
  9. あなたのPCのWindows 10/11の「ライセンス」はどうなっている? 調べる方法をチェック! (2023年10月20日)
  10. レノボ、Ryzen Threadripper PRO 7000 WXシリーズを搭載したタワー型ワークステーション (2024年03月27日)
最新トピックスPR

過去記事カレンダー