マイクロソフトは13日、Microsoft Updateによる月例セキュリティ更新プログラム(修正パッチ)とセキュリティ情報の公開を行なった。事前予告では、最大深刻度が“緊急”の7件と、“重要”の5件が公開予定とされていたが、実際には緊急の1件がキャンセルされ、緊急6件、重要5件の公開となった。
今月公開のセキュリティ更新は、件数が非常に多い。個人的にはその中でも注意しておくべきは、「MS08-010:Internet Explorer用の累積的なセキュリティ更新プログラム」あたりではないかと考える。すでに公開されている実証コードのある脆弱性を含んでいるためだ。
それでは、今月は深刻度“緊急”とされた6件の内容と、“重要”のうち1件について内容を確認しておこう。
● MS08-007:WebDAV Mini-Redirectorの脆弱性により、リモートでコードが実行される
WebDAV Mini-Redirectorは、Windows XP以降のOSに実装された機能だ。そのため、脆弱性が存在する環境も、Windows Vista/XP SP2、Windows Server 2003 SP1/SP2ということになる。
Windowsでは、IEやエクスプローラからWebサーバー上のファイルやフォルダを透過的に扱える、WebDAV対応機能が搭載されている。いわゆる「Webフォルダ」と呼ばれる機能だが、WebDAV Mini-Redirectorは、このWebフォルダをドライブ文字でマウントできるように強化する機能だ。
脆弱性の内容は、このWebDAV Mini-Redirectorを使用しているクライアント側のレスポンス処理に、ヒープオーバーフローの問題があるというものだ。
クライアントが意図しないWebサーバーに、WebDAVを使ってファイル操作をするように仕向けられた場合、アクセスしたクライアントが、サーバーから不正なプログラムを送り込まれて実行される可能性がある。
ヒープオーバーフローということなので、おそらく、サーバー側からは、非常に長いレスポンスコードやエラーメッセージなどを返し、クライアント側のデータ管理領域をあふれさせ、あふれたデータ内のコード実行させるということのようだ。
この脆弱性によって不正に実行されるコードは、管理者権限で動作し、Administrator権限を持つユーザーを作ったり、Administratorしか作成や削除ができないファイルを作ったり、あるいは削除したりすることもできる。その意味では、悪用された場合の危険度は高いセキュリティホールであると言えるだろう。
悪用の可能性だが、現在まで一般には公開されていない脆弱性情報なので、コード実行まで行なう悪用の可能性はある程度低いと考えられる。ただし、WebサーバーからWebDAVのレスポンス文字列を長くするといった実験は割と簡単なため、DoS程度の悪用であればこの情報からでも再現できる可能性はあるのではないかと筆者は考える。ただし、もともと挙動に不審な点が多いとされるXPのWebDAV関連機能なので、試してみたところで本当にこの脆弱性情報を突いて実現したものなのか、検証しながら悩んでしまうという可能性もありそうだが。
注意しておくにこしたことはない脆弱性情報というところだろうか。
● MS08-008:OLEオートメーションの脆弱性により、リモートでコードが実行される
OSではWindows Vista/XP SP2/2000 SP4、Windows Server 2003 SP1/SP2、OS以外のソフトではOffice 2004 for MacおよびVisual Basic 6 SP6に存在する脆弱性だ。
これらのOS、ソフトに含まれるOLEオートメーションに関するモジュール「oleaut32.dll」内に、ヒープオーバーフローの問題が存在する。OLEオートメーションは、たとえばExcelのシートに含まれるVBAから、WordやIEの機能を呼び出すなどの場合に使われるが、このようにOLEオートメーションが使用されているときに、特別な細工がされたスクリプトがリクエストされるとメモリの破損を起こす可能性がある。
これまで一般に非公開の脆弱性情報であったために、悪用される可能性は少なさそうだ。また、この脆弱性を突いて作られ、実行されるコードは、そのコードが実行されたユーザーの権限でしか動かない。
ただ、問題になるのは、この脆弱性を持つソフトだ。
OSの場合、Windows Updateをかけることで脆弱性がカバーされるが、この脆弱性を持つソフトにはVisual Basic 6が存在する。OLEオートメーションに関するモジュールは、Visual Basic 6の再配布用ランタイムのアーカイブなどにも含まれるので、たとえば、VBで書かれたオンラインソフトをインストールしている場合なども、この脆弱性のあるDLLがOSの意図しないフォルダに入っている可能性もある。しかも、その場合には、Windows UpdateではDLLは新しいものにアップデートされない。ユーザー自身がDLLを別途インストールする必要があるので注意が必要だ。
● MS08-009:Microsoft Wordの脆弱性により、リモートでコードが実行される
Office 2003 SP2/XP/2000に含まれるWordのほか、Word Viewer 2003にもこの脆弱性が存在する。
マイクロソフトの説明によれば、Wordファイルを処理する方法に問題があり、特殊なWordファイルを開いた場合、Wordがそのファイルの内容を解析する際に必要なメモリの割り当て量を間違えるため、メモリ破壊が起こる。
これまで一般には公開されていない脆弱性情報であり、また、Wordがメモリ割り当て量を間違えるというファイルがどのような形のものであるかも知られていないため、悪用の可能性は非常に低いのではないかと筆者は考える。
なお、この脆弱性はファイルの扱いを変えたOffice 2007や、2003でもMOICE(Office 2003のファイルを新しいOffice 2007のOpen XMLフォーマットに変換するツール。ファイルから攻撃コードを取り除く効果がある)を使うことで回避することができる。
セキュリティアドバイザリ(937696)でも広報されているが、MOICEとOffice 2003およびOffice 2007のファイルブロック機能を使うことで、今回の脆弱性に限らず、一般に脆弱性を突くような攻撃コードからシステムを守ることが可能だ。セキュリティパッチを適用するだけでなく、Officeのセキュリティに関してはこのツールを利用することも考えてみるといいだろう。
● MS08-010:Internet Explorer用の累積的なセキュリティ更新プログラム
このセキュリティ更新は、Internet Explorer(IE) 7/6およびWindows 2000のIE5.01を対象としており、
・HTMLレンダリングのメモリの破損の脆弱性 - CVE-2008-0076
・プロパティのメモリの破損の脆弱性 - CVE-2008-0077
・引数処理のメモリ破損の脆弱性 - CVE-2008-0078
・ActiveXオブジェクトのメモリの破損の脆弱性- CVE-2007-4790
という4つの脆弱性を修正している。
・HTML レンダリングのメモリの破損の脆弱性 - CVE-2008-0076
いずれのOS、IEのバージョンでも深刻度“緊急”とされている脆弱性だ。IEのレンダリングエンジンに問題があり、ある特定のレイアウトを行なうHTMLデータが読み込まれた場合に、メモリ破壊を起こし、悪意の第三者によって、IEを使っているユーザーと同じ権限でリモートコード実行が行われる可能性がある。
これまで一般には未公開の脆弱性で、悪用もされていない。どのようなレイアウトを使うことでこれが起こるのか不明で、悪用もされにくい脆弱性のではないかと考えられる。
・プロパティのメモリの破損の脆弱性 - CVE-2008-0077
Internet Explorerがプロパティを処理する際に、リモートでコードが実行される脆弱性が存在し、スクリプトでプロパティとしてありえない数値を設定した場合、メモリ破壊が行なわれ、結果として不正なコード実行を行なわれる可能性がある。
マイクロソフトにこの脆弱性を報告したZero Day Initiativeがセキュリティ系MLに投稿した内容によると、これはSVG animateMotionの扱いよって引き起こされる問題で、他のDOM要素によってアサインされた場合に、このプロパティにVariant型引数を指定している場合の処理に問題があるということだ。
Windows XP上のIE7/6などで深刻度“緊急”とされている脆弱性で、最悪の場合、IEを使っているユーザーと同じ権限でリモートコード実行が行なわれる可能性がある。
一般にはこれまで未公開で、悪用された形跡もないとされているが、ある程度具体的に問題箇所が知られている以上は、一応悪用を警戒すべき情報だろう。
・引数処理のメモリ破損の脆弱性 - CVE-2008-0078
Windows XP上のIE 7/6などで深刻度“緊急”とされている脆弱性だ。IEが画像処理、具体的には「dxtmsft.dll」というActiveXコントロールに、ある引数を渡した場合の検証処理に、リモートコード実行が可能になる脆弱性が存在する。
このdxtmsft.dllは、IEのビジュアルフィルタと呼ばれている機能を実装しているActiveXコントロールで、IE上で画像の半透明処理やにじみ処理などを実現する。HTMLコンテンツとして、特殊な値を指定したビジュアルフィルタを指定しているページを読み込んだ場合に、DoSや、IEを使っているユーザーと同じ権限でリモートコード実行がされてしまう。
これまで一般には未公開で、悪用の形跡も確認されていない脆弱性だが、どのようなデータでメモリ破壊が起こるのかを検証するのは簡単そうだ。注意しておきたい脆弱性だ。
・ActiveXオブジェクトのメモリの破損の脆弱性- CVE-2007-4790
shinnaiという人物がWebなどに技術内容と実証コードを2007年10月ごろから公開しており、一部では「Microsoft Visual FoxPro FPOLE.OCX ActiveX control buffer overflow」あるいは「Microsoft Visual FoxPro 6.0 FPOLE.OCX Arbitrary Command Execution」として知られていた脆弱性だ。
内容としては、Microsoft Fox ProのActiveXコンポーネント「Foxtlib.ocx」と「fpole.ocx」における、「FoxDoCmd()」というコマンド実行メソッドの境界チェックエラーで、ここで引き渡されるデータが300,000バイト程度あると、ActiveXコンポーネントがメモリ破壊を引き起こす。公開されている実証コードでは、HTMLコンテンツ中にVBScriptでこのFoxDoCmdメソッドから文字列変数内に300,000バイトの‘b’という文字列を入れてこのメソッドを呼び出すことで、システムをサービス拒否に陥れていた。
深刻度は、Windows XP SP2/2000 SP4上のIE6などで“緊急”とされている。
このようなコマンド実行メソッドにおいて、文字列の長さや引数の内容はよく検証しないと危険であるというのは、セキュアなプログラミングのテキストならどれにでも載っているような典型的な内容だ。今まで、このようなでわかりやすい脆弱性が残っていたことは少々驚きだ。
● MS08-012:Microsoft Office Publisherの脆弱性により、リモートでコードが実行される
・Publisherの無効なメモリ参照の脆弱性 - CVE-2008-0102
・Publisherのメモリの破損の脆弱性 - CVE-2008-0104
という2つの脆弱性に対するセキュリティ更新で、Office 2003 SP2/XP/2000にそれぞれ含まれるPublisher 2003/2002/2000が対象となる。
どちらの脆弱性も、Microsoft Office PublisherがPublisher(.pub)ファイルを読み込む際に、データを検証する方法に問題あり、リモートでコードが実行される危険性がある。
不正に実行されたコードは、どちらも管理者権限で実行されるため、少々危険な脆弱性と考えるべきだろう。ただし、どちらもこれまで一般には未公開の脆弱性で、悪用された形跡もないということだ。
● MS08-013:Microsoft Officeの脆弱性により、リモートでコードが実行される
リモートコード実行が可能な脆弱性で、Office 2000 SP3で“緊急”、Office XP SP3/2003 SP2およびOffice 2004 for Macで“重要”の深刻度とされている。
脆弱性の内容は「Microsoft Officeで実行がジャンプさせられる脆弱性 - CVE-2008-0103」という名称で登録されているもので、ある形式のオブジェクトを含む特別な細工をしたOfficeファイルを開く際に、Microsoft Officeがメモリの境界処理エラーを起こすことでこの脆弱性が発生する。
なお、この脆弱性によって、攻撃者は、コンピュータの利用者と同じ権限でコードをリモート実行することが可能になる。
これまで一般には未公開で悪用の形跡はなく、公開された情報量も少ないので、おそらくこれからの悪用の可能性も低そうだ。
● MS08-011:Microsoft Worksファイルコンバータの脆弱性により、リモートでコードが実行される
深刻度が“重要”とされている5つのセキュリティ更新のうち、情報が公開された段階では「実証コードがない」とされていた「MS08-011」については、セキュリティ更新が公開された12日中に早くも実証コードが公開されたので触れておきたい。
このセキュリティ更新は、Microsoft Office 2003 SP3/SP2、Microsoft Works 8.0、Works Suite 2005に含まれる「Microsoft Works 6ファイルコンバータ」に関する問題で、
・Microsoft Worksファイルコンバータの入力の検証の脆弱性 - CVE-2007-0216
・Microsoft Worksファイルコンバータのインデックス表の脆弱性 - CVE-2008-0105
・Microsoft Worksファイルコンバータのフィールドの長さの脆弱性 - CVE-2008-0108
という3つの脆弱性を修正している。このうち、「CVE-2008-0108」について、早くも実証コードが公開された。
この脆弱性については、「ファイルコンバータのフィールド長さ検証には問題があり、不正な数値を入れることでリモートコード実行が可能なメモリ破壊が可能になる」という技術情報がアナウンスされていた。これをあるユーザーが確かめてみたところ、テキストセクションの数字を0x10以上に変更することで、確かにスタックオーバーフローが起こせることが確認された。そして、こうしたファイルを作る実証コードが作成され、セキュリティ系MLに公開された。
この実証コードがすぐ悪用されるだろうとは言わないが、これで悪用に一歩近づいたことは確かだろう。修正パッチが公開された時点では実証コードが存在していないとしても、内容によっては即座に実証コードが作られることもある。油断してはならないということを示す一例と考えるべきだと筆者は思う。
関連情報
■URL
2008年2月のセキュリティ情報
http://www.microsoft.com/japan/technet/security/bulletin/ms08-feb.mspx
■関連記事
・ マイクロソフトが2月の月例パッチ11件を公開、IEの累積的修正など(2008/02/13)
( 大和 哲 )
2008/02/14 14:46
- ページの先頭へ-
|