● SECDRV.SYSの脆弱性情報がアドバイザリで公開された
マイクロソフトは11月8日、セキュリティアドバイザリ「Windows 上の Macrovision SECDRV.SYS ドライバの脆弱性により、特権の昇格が行なわれる(944653)」を公開した。
この脆弱性は、10月18日に「Windows 2003 ServerとWindows XPで、特定できないがWindowsに含まれるドライバに脆弱性があり、ローカルユーザーがカーネルレベル特権を不正に取得できる」としてBugtraqメーリングリストなどに情報公開されていたものだ。
これがマクロビジョン製のDRMドライバSECDRV.SYSであると判明したため、マイクロソフトによってWindows Updateによるパッチ提供前の情報公開として、このセキュリティアドバイザリが公開されたわけだ。
なお、このマクロビジョン製のドライバSECDRV.SYSは、サードパーティ製だが、マイクロソフトがWindows XPおよび2003 Serverに標準で添付しているドライバで、OSインストール時にデフォルトでインストールされるものだ。つまり、これらのOSを使っていれば、ドライバをアップデートしない限り、どのPCもこの脆弱性を持っていることになる。
Microsoft Updateの11月の更新には含まれていなかったが、現在、マクロビジョンはすでにマイクロソフトに先行して修正済みのドライバを公開しており、マイクロソフトもセキュリティアドバイザリ内で、推奨するアクションについて、以下のように述べている。
マイクロソフトのセキュリティアドバイザリより引用: Windows Server 2003およびWindows XPのサポートされているエディションについて、ユーザーは Macrovision により提供される更新プログラム(英語)をインストールすることができます。マイクロソフトはお客様に Macrovision により提供される更新プログラムを適用する前にMacrovisionのアドバイザリを検討することを推奨します。 |
ローカルでの特権昇格なので自分しか使わないようなPCであればMicrosoft(Windows)Updateから提供が始まってからでもいいかもしれないが、たとえば、公共施設やネットカフェなど、不特定多数が利用するPCなどでは、不正にPCの特権を利用されないようにこのドライバをマクロビジョンのサイトからダウンロードして適用しておいたほうがいいだろう。
● ドライバの適用方法
ドライバの適用方法だが、マクロビジョンの最新のSECDRV.SYSドライバは「Macrovision:Updating the Macrovision SECDRV.SYS Driver」ページで公開されている。
|
ドライバが公開されているマクロビジョンのサイト
|
サイトの説明によれば、このサイトは、Windowsが不正なプログラムの終了を感知した際に起動するWindows エラー報告(Windows Error Reporting・WER)、オンラインクラッシュ解析(Microsoft onlline crash analysis)によってもこのページが表示されることがあるという。
もっとも、今回の脆弱性が悪用されそうになった時に、PCの持ち主がこの画面を見られる、というわけではなさそうだ。おそらく、悪意のユーザが、特権を手に入れようと試みた段階で表示されるのではないかと筆者は推測している。
上記ページで公開されたドライバをダウンロードして導入すれば、脆弱性は修正できる。このドライバは、導入してもWindowsの再起動は起こらないので、作業中断の必要もなく比較的手軽に導入できるだろう。
インストールの方法としては、たとえば、Windowsのファイルウィンドウから、中に含まれるSecdrv.infを右クリックメニューの「インストール」を選ぶことで導入可能だ。また、ドライバのバージョンを事前に確認したいときなどは、デバイスマネージャからインストールでもかまわないだろう。
|
更新されたドライバのインストールするには、Secdrv.infファイルのアイコンを右クリックし、メニューから「インストール」を選択する
|
なお、この公開ドライバを導入した場合も、12月以降にMicrosoft(Windows)UpdateやWSUS(Microsoft Windows Server Update Services)によって、マイクロソフトが新しいドライバの提供を開始した場合、このドライバを上書きする形で、同じように脆弱性が修正されたドライバがあらためてインストールされるはずだ。
● 脆弱性の技術的な内容
この脆弱性は、脆弱性情報名標準化プロジェクト「CVE」ではCVE-2007-5586、CVE-2007-5587として登録されている。CVEのサマリーページや、そこからリンクされているBugtraqのアーカイブや、発見者のBlogなどを参照すると、もう少し、この脆弱性の技術的な内容も把握することができる。
ちなみに、CVE-2007-5586は脆弱性をもつドライバがどれかわからない段階での正体不明の脆弱性としての登録の残り、CVE-2007-5587はsecdrv.sysが原因とわかってからの情報だ。
これらによると、この脆弱性をもつドライバsecdrv.sysは、MacrovisionのSafeDiscと呼ばれるDRM製品に含まれるもので、これはWindows XP、Server 2003に標準で含まれるものだ。
脆弱性の原因は、ドライバとユーザープログラムがデータをやりとりする際に使われるIOCTLに、伝達方法としてMETHOD_NEITHERが指定されたときのパラメータの扱いの問題で、この問題を突くことで、悪意のユーザーに、メモリの任意のアドレスに好きなデータを書き込ませることができてしまうようになっている、ということだ。
デバイスドライバを作成する際には、意外とこの手のパラメータはチェックを怠りがちで、ましてサードパーティ製となるとマイクロソフトのセキュリティチェックの手もなかなか及びにくいだろう。
今回はWindows Vistaは対象にはならなかったが、どのバージョンのOSに関しても、この手の問題は潜在的に存在するものと考えておいた方がいいかもしれない。
関連情報
■URL
Macrovision SECDRV.SYSドライバの脆弱性に関するセキュリティアドバイザリ(944653)
http://www.microsoft.com/japan/technet/security/advisory/944653.mspx
Macrovision:Updating the Macrovision SECDRV.SYS Driver(修正ドライバ公開ページ、英文)
http://www.macrovision.com/promolanding/7352.htm
CVE-2007-5587脆弱性情報(英文)
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5586
CVE-2007-5586脆弱性情報(英文)
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5587
( 大和 哲 )
2007/11/15 16:00
- ページの先頭へ-
|