10月15日、マイクロソフトが月例のセキュリティ更新プログラムのリリースと、セキュリティ情報の公開を行なった。
今回公開されたセキュリティ更新プログラムは11点で、内訳としては最大深刻度は最高レベルに当たる“緊急”のものが4件、2番目のレベルの“重要”のものが6件、3番目のレベルの“警告”が1件だ。また、セキュリティ更新以外にも、セキュリティアドバイザリも1件追加されている。
今月は、一般ユーザーにも関係がありそうなセキュリティ更新情報3件とセキュリティアドバイザリ、そして今月から導入された「Exploitability Index」という指標について確認しておこう。
● MS08-058:Internet Explorer用の累積的なセキュリティ更新プログラム
MS08-058は、最大深刻度“緊急”で、Internet Explorer(IE)関連の6個の脆弱性を修正している。そのうちの1つ、「ウィンドウロケーションプロパティのクロスドメインの脆弱性」に関しては、マイクロソフトの公開前に、既に6月に「IE6とIE5.01に存在するクロスドメインの脆弱性」としてインターネットに公開され、エクスプロイトコードも公表されている。
この脆弱性は、本来IEではウィンドウが表示するURLがどのゾーンやどのドメインに属するかによって、どのようなアクションを許可しているのかを規定しているのだが、「location」「location.href」でのページ移動した場合の挙動に問題があり、簡単なJavaScriptコードを書くことで他のサイトのCookieを漏洩させたり、スクリプト実行などの悪用が可能になるというものだ。
筆者も確認したのだが、エクスプロイトは非常にシンプルなJavaScriptで、プログラム経験の全くない素人でもそのままコピー&ペーストで利用できそうな内容だった。マイクロソフトでは、「一般に公開されていた情報だが、悪用されたという情報はない」としているが、これだけ簡単なものを「悪用されないだろう」と考えるのは無理な話ではないかと筆者は思う。最近ではWindows Updateなどで自動的にパッチが当たるので心配はいらないとはいうものの、できるだけ早めにパッチを適用すべき脆弱性だろう。
なお、インターネットで公開された当初、この脆弱性はIE6/5にのみ存在するとされていたが、マイクロソフトのセキュリティ情報によれば、この脆弱性はIE7にも存在し、情報の漏洩が起き得るという。この点についても、当時から情報をフォローしていた人には要注意だろう。
ちなみにこの脆弱性は、今月から導入された脆弱性の悪用のしやすさの指標「Exploitability Index」では、最も悪用しやすい「1」にランク付けされている。
● MS08-057:Microsoft Excelの脆弱性により、リモートでコードが実行される
重要度“緊急”のセキュリティ更新で、公開された3点の脆弱性の内容は以下の通りだ。
- Excelの式解析の脆弱性 - CVE-2008-4019
- Excelのファイル形式の解析の脆弱性 - CVE-2008-3471
- Excelのカレンダーオブジェクトの検証の脆弱性 - CVE-2008-3477
いずれもExcel 2000などでリモートでコードが実行されるものなのだが、最も注意を要するのは「Exploitability Index」でも「1」とされている「Excelの式解析の脆弱性」だろう。
この脆弱性は、Excelの式解析の問題によるもので、具体的には、セル中のリピート(REPT)関数がセルの最大の長さを計算する際の整数オーバーフローによるメモリ破壊だ。ちなみに、REPT関数はセル中の指定した文字や文字列を指定した回数だけ連結表示する機能で、Excelではよく使われるセル関数だ。
また、「Excelのファイル形式の解析の脆弱性」は、その名の通り、Excelスプレッドシートのファイルフォーマットを解析する方法の不具合だ。ある形式のExcelのスプレッドシートを表示しようとした場合に、リモートでコードが実行される可能性があるとされている。
「Excelのカレンダーオブジェクトの検証の脆弱性」は、VBAパフォーマンスキャッシュ内のデータについて十分に検証を行わないという脆弱性があり、これを突くよう細工したExcelファイルを開かせることでことで、Excelを利用しているユーザーの権限で、任意のプログラムを実行させることができるとされている。しかし、VBAのパフォーマンスキャッシュという仕組みがそもそも公開された情報ではなく、カレンダーオブジェクトとの関連も不明だ。Exploitability Indexは「不安定な悪用コードの可能性」とされる「2」となっているが、エクスプロイトコード自体を書くことは情報が少なすぎて難しいのではないかと筆者は思う。
● MS08-061:Windowsカーネルの脆弱性により、特権が昇格される
- Windowsカーネルのウィンドウ作成の脆弱性 - CVE-2008-2250
- Windowsカーネルの例外未処理の脆弱性- CVE-2008-2251
- Windowsカーネルのメモリ破損の脆弱性- CVE-2008-2252
上記3つの脆弱性を修正しているセキュリティ更新で、最大深刻度は“重要”だ。いずれもリモートからの実行は不可能だが、ローカルのユーザーとしてプログラムが実行できる場合には特権が昇格される可能性がある。また、他のリモートPCから一般ユーザーの権限でプログラム実行が可能となるような脆弱性を突く、他のプログラムと組み合わせて使われる可能性もある。
「Windowsカーネルのウィンドウ作成の脆弱性」は、簡単に言うと子ウィンドウ表示の際に、その座標を検証していないために起こる脆弱性だということだ。比較的内容が理解しやすく(テストプログラムを作ってちょっと確認すればわかるだろう)、Exploitability Indexでも「安定した悪用コードの可能性」がある「1」とされているので、注意すべき脆弱性と言えるだろう。
また、「Windowsカーネルの例外未処理の脆弱性」は、筆者は確認できなかったのだが、インターネット上で既に知られた情報だということだ。
「Windowsカーネルのメモリ破損の脆弱性」は、技術的な情報はあまり詳しく公開されていないが、マイクロソフトの記載した注意事項によれば「機能する悪用コードは、マルチプロセッサーシステムに対して作成される可能性が最も高いと考えられます」とされている。現在では、多くのシステムがデュアル・クアッドコア、あるいはハイパースレディング搭載であることを考えると注意すべき情報だろう。
● マイクロソフトセキュリティアドバイザリ(956391)
マイクロソフト製品ではないのだが、悪用される可能性のあるサードパーティ製ソフトウエアのKill Bitを設定するプログラムも、Windows UpdateやMicrosoft Update経由で配布されている。対象となっているのは、以下の3つのソフトだ。
- Microgaming Download Helper
- System Requirements Lab
- PhotoStockPlus Uploader Tool
これらはいずれも海外ソフトで、一見日本のユーザーには影響がないように思えるが、MicrogamingとSystem Requirements Labの2つに関しては注意が必要だ。というのも、Microgamingはオンラインカジノなどで多く使われている海外製ソフトなのだが、日本語が使えるオンラインカジノでも利用されているからだ。
なお、 Microgamingの悪用に関しては、2007年春にバージョン7.2.0.18以前のDownload Helper ActiveXコントロールにバッファオーバーフローの脆弱性があり、Secuniaなどのセキュリティ組織からKill Bitの設定が勧告されていた。既にこの脆弱性を塞いだ新しいバージョンも配布されているのだが、ユーザーが多いことからか、今回マイクロソフトでも対応することになったようだ。
また、System Requirements Labは、3Dゲームなどがプレイ可能かどうかをオンラインで分析するためのサイトなのだが、(日本語の)3Dゲーム関連のサイトなどで紹介されているため、日本にも利用者がいるかもしれないので要注意だ。このサイトは、ページを表示するとシステム解析用のソフトをダウンロードしてくるのだが、これが計測後もそのまま残ってしまいセキュリティホールとなるという。PC内に「System Reuirements Lab」というソフトがインストールされていないか、特にPCゲームユーザーは一度確認してみたほうがいいかもしれない。
● Exploitability Indexとはなにか
ところで、今月のセキュリティ情報から、各脆弱性の「Exploitability Index (悪用可能性指標)」が記載されるようになったので、これについて確認しておこう。
この指標は、それぞれの脆弱性を悪用した攻撃の可能性がどの程度あるかを数値化したもので、3段階にクラス分けされている。それぞれの数値は、
- 1 - 安定した悪用コードの可能性
- 2 - 不安定な悪用コードの可能性
- 3 - 機能する見込みのない悪用コード
というマイクロソフトの評価であることを示している。
従来公開されていた「深刻度」との違いは、簡単に言えば、深刻度は脅威の危険性の指標、Exploitability Indexは悪用コードが公開された場合どの程度機能するかを示した指標ということになる。
深刻度の評価基準は「緊急」「重要」「警告」「注意」の4段階で、それぞれ、
- 緊急:ユーザー操作なしでウイルス、ワームを蔓延させる
- 重要:悪用された場合、機密性・機能性などがおびやかされる可能性ある(情報漏洩、DoSなど)
- 警告:既定の構成などで悪用される可能性が低い
- 注意:悪用が困難
というような内容になっている。緊急の「ユーザー操作なしで」とは、つまり悪意のユーザーによってユーザーのPCを乗っ取り、好きに利用することができるかどうかと考えてもいいだろう。つまり、「もし悪用された場合に、どの程度PCの自由が奪われるか」と「そもそも悪用が可能か」を掛け合わせた評価が、「深刻度」となるなわけだ。
それに対してExploitability Indexは、悪意のユーザーがもし必要な情報を手に入れることができた場合、どの程度「確実に」悪意のプログラムが実行可能かを示している。
この指標が公表されるようになった背景だが、おそらくは悪意のプログラム、特にスタックオーバーフローを使った悪意のプログラムなどの場合には、成功すればPCの乗っ取りが可能になるが、そもそも成功する可能性が低いケースがあるためだと思われる。作成した悪意のプログラムが、システムの状態によっては実行アドレスを変えるつもりが全然別の場所を書き換えていて実行されなかったり、中途半端に書き換えていて単なるメモリエラーのメッセージが表示されるだけになるなど、成功するかどうかが不確実なケースがあるからだ。
悪意のプログラムを作成する側にとっては、エラー表示がされて仕掛けたサイトや仕掛けたプログラムが見破られては最悪なわけだ。成功すればユーザーのPCを乗っ取れるが確率が低いプログラムよりは、メリットはやや少なくても確実に実行できるプログラムの方を選ぶ、という考え方もあるだろう。
そのため、深刻度が同じ“緊急”でも、悪用のされ方には差異が出るものと考え、Exploitability Indexというランク分けも必要になったのだろう。
では、深刻度は“重要”だが、Exploitability Indexは「1」のものと、深刻度は“緊急”だが、Exploitability Indexは「2」や「3」のものでは、どちらがより深刻な脅威なのだろうか。
もし、脆弱性情報がすべて公開されており、悪意のユーザーがアクセス可能な状態になっているという条件であるならば、より深刻なのは「重要・1」の方になるだろう。というのは、安定して悪用が可能であって、誰にでも広範に利用することができるのであるならば、脅威となるのは悪用が容易なものの方だからだ。
ただし、実際にはどの程度深刻であるか、迅速に対応が必要であるかは、システムや持っている資産の重要度などによっても変わるので、そのシステムにあった判断が必要となるだろう。
例えば、個人のPCと大量の個人情報が保存されたサーバーPCでは、持っている情報の価値が異なるので、情報漏洩が起こった場合の被害も全く異なってしまうからだ。サーバーPCの個人情報がインターネットに流失すれば、サーバーの持ち主にとって被害は甚大になるだろう。逆に、情報のほとんど入っていないPCであれば、むしろワームや他の悪意のプログラムの踏み台になることの方が問題なはずである。
また、Exploitability Indexが「2」「3」のものでも、悪意のユーザーの目的によっては注意が必要なケースがある。これは、悪意のユーザーがPCの乗っ取りや秘密情報の獲得を目指すのではなく、単にシステムを止めてしまおうと考えている場合だ。
今月のセキュリティ更新で言えば、MS08-061で修正している「Windowsカーネルの例外未処理の脆弱性」は、深刻度が“重要”、Exploitability Indexが「3」と、ほとんど重要視しなくてよい情報のように見える。Exploitability Indexが「3」となっているのは、この脆弱性で任意のプログラムを実行させることは難しいためだと思われるが、エラーを起こしてシステムを停止させるだけの目的であれば、それほど悪用は難しくないだろう。つまり、そういう目的の悪意のユーザーに対しては、Exploitability Indexはほとんど意味をなさないわけだ。
また、実際の脅威としては、脆弱性情報がどの程度詳細に公開されているかや、エクスプロイトコードや実際に動作する悪意のプログラムなどが既に開発されているか、それらのプログラムがネット上から簡単に入手できるかどうか、といった要素にも大きく左右されることにも注意してほしい。
悪意のユーザーも技術レベルは様々であると考えられるが、数の上から言えば「スクリプトキディ」と呼ばれるような低レベルのユーザーが圧倒的に多いだろう。悪意のプログラムが彼らにとって魅力的で入手可能となったらば、あっという間に広まり大流行となる可能性は高い。
そうした意味では、例えば今月の「Excelのカレンダーオブジェクトの検証の脆弱性」などは、Exploitability Indexは「2」となっているが、公開された情報が少なすぎて、ほとんど悪用は不可能なのではないかと筆者は思う。Excelのセキュリティチームや開発チームのように、脆弱性の詳細な情報やExcelのソースにアクセスでき、その仕組みを理解して検証コードを作ればある程度は再現できるということであって、おそらく悪意のユーザーはそこまでは到達しないだろう。
結局のところ、個々の脆弱性がどの程度切迫したものであるかは、これらの情報を総合的に勘案して判断すべきということになるだろう。なお、深刻度評価やExploitability Indexの内容については、マイクロソフトのサイトにも情報が掲載されているので、それぞれ参照してほしい。
関連情報
■URL
マイクロソフト 2008年10月のセキュリティ情報
http://www.microsoft.com/japan/technet/security/bulletin/ms08-oct.mspx
マイクロソフト セキュリティ情報の深刻度評価システム
http://www.microsoft.com/japan/technet/security/bulletin/rating.mspx
Exploitability Index(悪用可能性指標)
http://www.microsoft.com/japan/technet/security/bulletin/cc998259.mspx
■関連記事
・ マイクロソフトが10月の月例パッチ公開、“緊急”4件を含む計11件(2008/10/15)
・ マイクロソフト、修正パッチの脆弱性悪用可能性を示す指標を公開(2008/10/15)
( 大和 哲 )
2008/10/16 14:35
- ページの先頭へ-
|