■適用テストの結果
DA Labでは、以下のプラットフォームで修正プログラムの適用テストを行った。
プラットフォーム
|
適用テスト結果
|
Windows NT Workstation 4.0+IE 6 SP1 |
○
|
Windows NT Server 4.0+IE 6 SP1 |
○
|
Windows NT Enterprise Server 4.0+IE 6 SP1 |
○
|
Windows 2000 Professional SP3+IE 6 SP1 |
○
|
Windows 2000 Professional SP4+IE 6 SP1 |
○
|
Windows 2000 Server SP3+IE 6 SP1 |
○
|
Windows 2000 Server SP4+IE 6 SP1 |
○
|
Windows 2000 Advanced Server SP3+IE 6 SP1 |
○
|
Windows 2000 Advanced Server SP4+IE 6 SP1 |
○
|
Windows XP SP未適用 |
○
|
Windows XP SP1 |
○
|
Windows XP SP1a |
○
|
Windows Server 2003, Standard Edition |
○
|
Windows Server 2003, Enterprise Edition |
○
|
|
|
Windows NT Workstation 4.0 SP6a+Office XP Personal SP3 |
○
|
Windows NT Workstation 4.0 SP6a+Office XP Standard SP3 |
○
|
Windows NT Workstation 4.0 SP6a+XP Professional SP3 |
○
|
Windows 2000 Professional SP3+Office XP Standard SP3 |
○
|
Windows 2000 Professional SP4+Office XP Professional SP3 |
○
|
Windows XP SP未適用+Office XP Personal SP3 |
○
|
Windows XP SP1a+Office XP Professional SP3 |
○
|
Windows Server 2003+Office XP Personal SP3 |
○
|
Windows Server 2003+Office XP Standard SP3 |
○
|
■実証ファイルが公開(追記)
MS04-028の脆弱性を確認するための実証ファイル(JPEGファイル)がセキュリティ関連の掲示板などで公開された。実証ファイルは、MS04-028の修正プログラムを適用していないWindows
XP SP未適用/SP1/SP1a向けでファイルをプレビューすると、Explorer.EXEが異常終了するというもの。DA Labで確認したところ、MS04-028未適用のWindows
2000+IE 6 SP1では正常に画像が表示できたが、Windows XP SP1aでは「Windows画像とFAXビューア」が起動し、その後にExplorer.EXEが異常終了(エラー・ダイアログの表示)した。
なお、すでに多くのウイルス対策ソフトウェアが、この脆弱性に対応している。例えばMcAfeeの場合、実証ファイルは「トロイの木馬:Exploit-MS04-028.demo」と検出した。後述のように、gdiplus.dllはサードパーティ製のアプリケーションにも含まれており、システムから完全に脆弱性を解消するのは事実上無理そうだ。ウイルス対策ソフトウェアで、不正なJPEGファイルの表示をブロックすることが、当面の回避策となるだろう。
■OS用、Office用、IE用は別々にインストールが必要
MS04-028の修正プログラムは、IE 6 SP1とOffice XP/2003、.NET Framework 1.0/1.1用などがそれぞれ用意されており、コンピュータのOSなどの環境によって適用する修正プログラムが異なる。OS用は、Windows
XP SP未適用/1/1aとWindows Server 2003用が対象となり、IE 6 SP1用はWindows NT 4.0/Windows 2000が対象となる。Office用は、OSの種類によらず、インストールされているOffice製品に対応する修正プログラムの適用が必要だ。また、Windows
NT/2000にインストールされた.NET Frameworkでこの脆弱性を解消するには、.NET Frameworkのサービスパックを適用する必要がある。.NET
Framework 1.0ならSP3を、1.1ならSP1を適用する。なお、Windows XPとWindows Server 2003は、OS用の修正プログラムを適用することで、.NET
Frameworkの脆弱性も解消される。OS自体にはこの脆弱性のないWindows 2000/NT 4.0でも、IE 6.0 SP1がインストールされていると脆弱性の対象となるので特に注意したい。
■サードパーティ製アプリケーションでも脆弱性が影響する可能性あり(一部追記)
サードパーティ製アプリケーションでも、Visual Studio .NET 2002/2003、.NET Framework version 1.0 SDK
SP2などを利用して開発を行っている場合、JPEG処理に脆弱性が存在するバージョンの「gdiplus.dll」が利用され、アプリケーション・パッケージに含まれている可能性がある(gdiplus.dllは再配布可能コンポーネントである)。このようなgdiplus.dllを含むアプリケーションも脆弱性の影響を受ける。
こうして追加されたgdiplus.dllの影響を受けるかどうかを簡易に調べるには、[スタート]−[検索]−[ファイルやフォルダ]メニューを選択し、「ファイルまたはフォルダの名前」に「gdiplus.dll」を入力して検索を行い、gdiplus.dllがインストールされているかどうかを確認する。このとき、システム・フォルダや不可視属性ファイル/フォルダも検索するように、あらかじめ設定しておくこと。こうして特定アプリケーションのインストール・フォルダ以下にgdiplus.dllが見つかれば、対象となるアプリケーションを特定できる場合もある(この場合は、対象アプリケーションのベンダのWebサイトなどで対応状況を確認する)。しかし実際には、DLLがアプリケーションとは別のフォルダにコピーされることが多く、対象アプリケーションの特定は容易ではないだろう。特にWindows
XPとWindows Server 2003は、同名のDLLの複数バージョンを並行して利用可能なside-by-sideアセンブリの仕組みが用意されており、複雑になっている。この詳細については、以下のサポート技術情報を参照されたい。
・サポート技術情報 835322(グローバルに提供される side-by-side アセンブリを適用しないアプリケーションは、マイクロソフトのソフトウェア更新プログラムで修正される問題に対して脆弱になる可能性がある):
http://support.microsoft.com/default.aspx?scid=kb;ja;835322
米Microsoftが開催した9月のセキュリティに関するWebキャスト「Microsoft's September Security Bulletins」によれば、gdiplus.dllを単純に置き換えた場合、アプリケーションに障害が発生する可能性があるとのことだ。必ずアプリケーション・ベンダから新しいgdiplus.dllを含む修正プログラムを入手すること。
・Microsoft(TechNet Webcast: Information about Microsoft's September Security
Bulletins):[参加には登録が必要]
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID
=1032257198&EventCategory=5&culture=en-US&CountryCode=US
■マイクロソフト提供のドキュメント・ビューアにもgdiplus.dllが含まれる(追記)
MS04-028で説明されている脆弱性を含んでいるgdiplus.dllは、マイクロソフトが無償提供しているドキュメント・ビューアにも含まれている。
そのうちの1つVisio ViewerはVisioで作成したドキュメントを閲覧するためのツールだ。Visio Viewer 2002/2003の最新版はいずれもMS04-028の修正プログラムと同じ日にリリースされており、新しいgdiplus.dll(ファイルバージョン5.1.3102.1360または6.0.3264.0)が同梱されている。Visio
Viewer 2002/2003を利用している場合は、最新版をインストールすべきだろう。
・ダウンロード・センター(Visio Viewer 2002):
http://www.microsoft.com/downloads/details.aspx?FamilyID=8fad9237-c0a7-4b80-a5df-46ce54dad2df&DisplayLang=ja
・ダウンロード・センター(Visio Viewer 2003):
http://www.microsoft.com/downloads/details.aspx?FamilyID=3fb3bd5c-fed1-46cf-bd53-da23635ab2df&DisplayLang=ja
このほか調査した限りでは、PowerPoint Viewer 2003に古いgdiplus.dll(ファイルバージョン6.0.3260.0)が含まれていた。2004年9月20日時点で、PowerPoint
Viewer 2003のインストーラは更新されておらず、MS04-028の修正プログラムもPowerPoint Viewer 2003に適用できない。マイクロソフトからの情報提供がないため、詳細は不明だ。現時点では、PowerPoint
Viewer 2003をアンインストールして、代わりにPowerPointそのものを利用するなどの回避策をとる方が安全だ。
■Windows XP SP2でもOffice製品を利用している場合は適用が必要
Windows XP SP2は、すでにこの修正プログラムが反映されており、脆弱性は存在しないという。ただし、脆弱性が存在するOfficeやVisio、Visual
Studio .NETなどをインストールした場合は、対応する修正プログラムの適用が必要になる。
■Windows UpdateにWindows XP SP1/SP1a用修正プログラムが表示されない(訂正ならびに追記)
9月15日23時現在、Windows UpdateにWindows XP SP1/SP1a用修正プログラムが表示されず、適用が行えない場合があることを確認した(配信は、SP未適用も表示されないと記載しましたが、SP未適用は問題がなかった)。
DA Labで修正プログラムなどを調査した結果、「TechNetセキュリティ:MS04-024」にもMS04-028の修正プログラムに含まれるsxs.dllが含まれており、そのバージョンが「5.1.2600.1515」と、MS04-028の「5.1.2600.1363」よりも大きいものであることが分かった。Windows
Updateでは、このファイルのバージョンを確認し、「5.1.2600.1363」よりも大きなバージョン(つまり新しい)が存在するため、MS04-028の修正プログラムは適用済みと判断していたと思われる。この不具合は、16日の午前中に解消されたようで、現在ではMS04-024の修正プログラムが適用済みのWindows
XP SP1/SP1aにおいても、Windows UpdateでMS04-028の修正プログラムが表示される。
.NET Framework向けの修正プログラムは提供されず、最新のサービスパックをインストールすることが推奨されているので注意したい。
■Windows 2000 SP2+IE 6 SP1はサポート対象外
Windows 2000 SP2のサポートは、2004年6月30日に終了したため、MS04-028の修正プログラムはサポート対象外となっている。なぜか、同じく2004年6月30日にサポートが終了したWindows
NT Workstation 4.0 SP6aはサポート対象となっている。いずれにせよ、今後提供される修正プログラムが、常にWindows 2000 SP2に適用できるわけではないので、早期にWindows
2000 SP4の適用を開始していただきたい。
■GDI+検出ツールを使った脆弱性の検出
MS04-028の脆弱性は、広範囲のプログラムに存在することからマイクロソフトでは、対象となるマイクロソフト製品がコンピュータにインストールされているかどうかを検出するツールの提供を行っている。ただし、このツールは脆弱性の有無を調べるものではない。そのため、MS04-028の修正プログラムを適用して脆弱性を排除しても、対象製品がインストールされていれば「実行中の
Microsoft ソフトウェアにセキュリティ上の脆弱性が含まれている可能性があることが検出されました」と表示する。
・サポート技術情報 873374(Description of the Microsoft GDI+ Detection Tool):
http://support.microsoft.com/default.aspx?scid=kb;ja;873374
また、サードパーティ製品に関しては一切の検出作業を行わないので、前述のとおりgdiplus.dllをファイル検索してシステムに潜む脆弱性を調べる必要がある。
現在、GDI+検出ツールの「サポート技術情報:873374」は英語のままで、そこに記載されているGDI+検出ツール(gdidettool.exe)へのリンクも英語版のものとなっているが、日本語版もダウンロード・センターで提供されている(英語版でも検出は可能だが、メッセージは英語となる)。
使い方は簡単だ。ダウンロードしたgdidettool.exeを実行すると、使用許諾契約が表示されるので、[はい]ボタンをクリックする。これで検出が実行され、脆弱性の有無をダイアログで表示する。実行はローカル・コンピュータ上で行う必要があるので、リモートで脆弱性の有無を確認したい場合は、MBSA
1.21を利用することになる(ただし、MBSAもOffice製品はローカルで実行しないと検出できない)。
・ダウンロード・センター(Microsoft GDI+ 検出ツール (KB873374)):
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=71CD9E74-7142-4780-83E5-CE54401DA1D1
■MBSA 1.21の結果
MS04-028の修正プログラムが正しく適用されているかどうかは、MBSA 1.21で完全には確認できない。OS本体の脆弱性の場合、修正プログラムが未適用だと、「Windowsのセキュリティの更新」の「結果の詳細情報」に「JPEG
処理 (GDI+) のバッファ オーバーランにより、コードが実行される (833987)」が表示される。Office製品がインストールされている場合は、「Office
のアップデート」にも同様に表示されるので確認できる。ただし、Office製品はMBSAをローカルで実行した場合のみ検出可能である。
|