Windows HotFix Briefings

緊急セキュリティ情報
DirectXの未チェック・バッファの脆弱性により、不正なプログラムが実行される可能性(MS03-030)

―― 攻撃者がローカル・システム権限でユーザーのコンピュータを操作する危険性 ――

DA Lab Windowsセキュリティ
2003/07/29

セキュリティ・ホールの概要と影響度

 2003年7月25日、マイクロソフトは、Windows環境に対して各種のマルチメディアAPIを提供するDirectXに含まれるDirectShowに重大なセキュリティ・ホールが存在することを報告し、それらを修正するための修正プログラムを公開した。深刻度は最も危険性の高い「緊急」となっている。このセキュリティ・ホールを攻撃することで、攻撃者はコンピュータを乗っ取り、ローカル・システム権限でコンピュータを操作可能になる。早急に修正プログラムの適用作業を開始する必要がある。

 DirectShowは、クライアント側のオーディオやビデオの操作、レンダリング処理を担当する機能モジュールである。このDirectShowが、音楽データのMIDIオーディオ・ファイルを解析する部分に未チェック・バッファが存在する。このため、DirectShowが不正なデータを含むMIDIファイルへアクセスすると、最悪の場合コンピュータが乗っ取られ、そのユーザーの権限で攻撃者のプログラムが実行される危険がある。

 具体的な攻撃方法としては、セキュリティ・ホールを悪用するMIDIファイルを作成し、それをWebサイト上に配置したり(Webサイトを訪れるだけでMIDIファイルを自動的に演奏させることも可能)、ネットワーク・ファイル共有に保存したり、電子メールに添付してユーザーに送信したりすることが考えられる。攻撃が成功した場合、DirectShowまたはDirectShowを利用しているアプリケーションが強制終了したり、ログオン・ユーザーの権限によりコード(プログラムならびにスクリプト)が実行されたりする。

修正プログラムの対象プラットフォーム

 DirectXは、Windows OSとは別に追加インストールすることも可能なため、OSバージョンや適用済みService Packのバージョンとは別に、個々のシステムによって異なるDirectXバージョンがインストールされている可能性がある。今回のセキュリティ・ホールは、DirectX 5.2以降のすべてのバージョンが対象である。ただし、マイクロソフトのTechNetセキュリティ情報によれば、DirectX 8.0/8.1b/9.0はテスト対象とはなっておらず、これらのバージョン用の修正プログラムが提供されないだけでなく、セキュリティ・ホールの有無も明らかにされていない。これらのDirectXバージョンを使用している場合は、今回のセキュリティ・ホール対策を終えているDirectXの最新バージョンにバージョンアップする必要がある。具体的には、DirectX 5.2/6.1/8.0/8.1b、Windows 2000+DirectX 8.1に対応した修正プログラムは提供されない。これらのバージョンを利用している場合は、今回のセキュリティ・ホールを対策済みである最新のDirectX 9.0bをインストールする。

 ただし、DirectX 9.0bはWindows NT 4.0にはインストールできない。Windows NT 4.0に関しては、Windows Media Player 6.4またはInternet Explorer 6 Service Pack 1をインストールしている場合に、今回のセキュリティ・ホールが存在する。Windows NT 4.0 Service Pack 6a向けとして今回の修正プログラムが提供されているが、Windows NT Workstation 4.0については、マイクロソフトのライフサイクル・ポリシーによって、すでにサポート対象外となっているので注意が必要である。

 複数のDirectXバージョン用の修正プログラムが提供されているので、自身が使っているDirectXバージョンに合わせて適当な修正プログラムをダウンロードしてインストールする。現在利用しているDirectXバージョンが分からない場合には、次に述べる方法で確認できる。

■システムのDirectXバージョンを確認する方法
 [スタート]メニューの[ファイル名を指定して実行]をクリックし、表示される[ファイル名を指定して実行]ダイアログ・ボックスで“dxdiag”と入力し[OK]ボタンをクリックする。

 こうして表示される[DirectX診断ツール]ダイアログの[システム]タブにある[DirectXバージョン]で現在インストールされているDirectXのバージョンを確認できる。

[DirectX診断ツール]ダイアログ
現在システムにインストールされているDirectXのバージョンを確認するには、“dxdiag”を起動する。
  DirectXのバージョン。この場合は「DirectX 8.1」となっている。

 修正プログラムを適用するには、以下の対象プラットフォームに示されているService Packの適用が前提となる(SPバージョンが明記されていないものはSPと無関係に対象となる)。

影響を受けるソフトウェア 対象プラットフォーム
DirectX 5.2 Windows 98/98SE/Me+DirectX 5.2
DirectX 6.1 Windows 98/98SE/Me+DirectX 6.1
DirectX 7.0 Windows 98/98SE/Me/2000 SP3+DirectX 7.0
DirectX 7.0a Windows 98/98SE/Me/2000 SP3+DirectX 7.0a
DirectX 8.1 Windows 98/98SE/Me/2000 SP3/XP/Windows Server 2003+DirectX 8.1
DirectX 9.0a Windows 98/98SE/Me/2000 SP3/XP/Windows Server 2003+DirectX 9.0a
MS03-030の修正プログラムの適用対象環境

修正プログラムに関する注意

 Windows 2000 Service Pack 4(SP4)には、DirectX 7.0(Windows 2000のオリジナル・バージョン)に対応した修正プログラムがすでに適用されている。ただしMS03-030の修正プログラムが置き換えるファイル(Quartz.dll)のバージョンは、SP4に含まれるものと異なっている。MS03-030に含まれるファイルのバージョンは6.1.9.729であるのに対し、SP4では6.1.9.728となっている。マイクロソフトの説明(前述のセキュリティ情報参照)によれば、SP4の適用によって今回のセキュリティ・ホールは解消されるとされるが、MS03-030の修正プログラムよりはバージョンが古いということだ。なおSP4に対しては、MS03-030の修正プログラムは適用できない。ファイルを最新バージョン(6.1.9.729)にしたければ、SP4の適用前にMS03-030の修正プログラムを適用し、SP4のインストールを行う必要がある。

 DirectX 8.1やDirectX 9.0/9.0aなどの新しいバージョンをインストールしている場合は、Windows 2000 SP4を適用してもMS03-030のセキュリティ・ホールは解消されない。このため、別途修正プログラムの適用が必要である。End of Article

 Windows HotFix Briefings


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間