piyolog

piyokangoの備忘録です。セキュリティの出来事を中心にまとめています。このサイトはGoogle Analyticsを利用しています。

Officeのファイル検証機能について調べてみた。(追記修正版)

(注)掲載情報で誤っていた箇所や一部表現を見直しました。

昨日、Microsoft恒例のセキュリティアップデートが行われました。パッチ大量に出ましたね。皆さん当て終ったでしょうか。
今回のアップデートでは、Office2003,2007に対してセキュリティ機能の強化「ファイル検証機能」が行われており、それについて少し調べてみました。

It is my pleasure to announce the general availability of Microsoft Office File Validation for Office 2003 and Office 2007.

Office File Validation General Availability Announcement−Microsoft Office Updates
 

Officeファイル検証機能とは何か

OfficeはほぼすべてのPCに標準でインストールされていることもあり、Officeのファイルがよく狙われる傾向にあります。そこでMicrosoftはOfficeに多層防御のセキュリティ機能を組み込むようになりました。その1つが「ファイル検証機能」で、Office2010から搭載されています。詳しくは下記のブログを参照していただくことにして、規定として決まったフォーマットに従わないファイルが読み込まれた場合は、それを検知して、利用者側に通知します。
Office 2010 のファイル検証機能−Microsoft Office 2010 Engineering
 
蛇足かもしれませんが、Officeの多層防御の全体的な話はこちらに掲載されています。
Office 2010 のセキュリティの概要−Technet
 

ファイル検証機能が追加された経緯

このようにしてOffice2010にはファイル検証機能が標準で搭載されているのですが、「将来的にOffice2003,2007に対しても実装される」という発表が去年末にありました。

We're really excited to announce that Office File Validation, currently part of Office 2010, will soon be made available for Office 2003 and 2007.

Benefits of Office 2010 File Validation will be made available for Office 2003 and 2007

どうもそれが今回のアップデートだった模様で、今日の更新プログラムをあてることで、ExcelPowerPointには自動的にこのファイル検証機能が組み込まれます。(MS11-021MS11-022MS11-023
ただし、WordとPublisherについては今回のアップデートでは自動的には更新プログラムが適用されないため、個別に更新プログラムをダウンロード、インストールする必要があります。
 

ファイル検証機能、Officeのバージョン・ファイルの種類、更新プログラムの関係

ファイルの種類*1 Excel
(.xls/.xlt)
PowerPoint
(.ppt/.pps/.pot)
Word
(.doc/.dot)
Publisher
(.pub*2)
Office2003 SP3 MS11-021
+MS11-023で追加
MS11-022
+MS11-023で追加
KB2464603
+MS11-023で追加
KB2464598
+MS11-023で追加
Office2007 SP2 MS11-021
+MS11-023で追加
MS11-022
+MS11-023で追加
KB2464605
+MS11-023で追加
KB2464598
+MS11-023で追加
Office2010 標準搭載 標準搭載 標準搭載 不明*2

*1 ファイル検証機能は「バイナリファイル」に対して有効な機能です。つまりXML形式のファイル(docxやxlsx,pptxなど)はこの検証機能の対象外となっています。
*2 このファイル検証機能はそもそも.pubファイルの検証をキッカケとしているはずなのですが、ここを見るとPublisher2010が記載されていません。.pubファイルについても記載は日本のセキュリティチームのBlogには書かれているみたいですが、実際のところどうなのでしょうか。
 

検証機能の実力はどの程度なのか

先のブログでは次のように記載がされています。

私たちのチームでは、Office ファイル形式を使用した新手の攻撃がマイクロソフトに報告されるたびに、検証機能を使用して検証し、このような攻撃を防御できるかどうかを確認しています。今までのところ、成果は上々です。

都度この手の攻撃が確認され次第検証を行っているそうで、今のところ効果はあるそうですが具体的に検証された結果が出てこないと何とも言えないというところでしょうか。
 

ファイル検証機能の追加方法

上でも書いていますが、今日のセキュリティアップデートで全て更新プログラムを当てていれば、ExcelPowerPointにはこの検証機能が自動的に追加されます。
WordやPublisherへ検証機能を追加する場合は上記KBより個別に適用してもよいのですが、パッケージングされた更新プログラムも提供されているので、KB2501584の「Microsoft Office ファイル検証アドイン」をDLして適用してください。
すみません。間違えていたみたいで、個別に上記KBを更新プログラムを適用しないと検証機能が有効にならないようですね。(なぜこんなわかりづらいことに・・)
マイクロソフト セキュリティ アドバイザリ (2501584)
 

検証機能を試された方を発見

実際の挙動について気にかかっていたのですが、有志の方が早速この検証機能を試された模様で次のようにツイートされています。ありがたいことです。
http://twitter.com/shu_tom/status/58472236004278272:twitter:detail:left
http://twitter.com/shu_tom/status/58845026435874817:twitter:detail:left
 
Upされている画像を見る限りだとこのまま「開く」を押すと保護ビューなどの機能はないため、以降は不正ファイルであった場合「開く」を押すとそのまま攻撃が実行されてしまいそうですね。また良く見かけるような感じのダイアログであるため、デフォルトはキャンセルのようなのでそのまま連打で開くことは無さそうですが、特に意識せずに操作をしていた場合はそのまま「開く」を押してしまいそうです。
 
関連した話題で、別件でAdobeのWordファイルにFlashを組み込まれた0day攻撃が確認されていますが、これに関連して@kaito834さんとのやり取りも。
http://twitter.com/kaito834/status/58481201253584896:twitter:detail:left
http://twitter.com/shu_tom/status/58483347940323328:twitter:detail:right
http://twitter.com/kaito834/status/58486125152575488:twitter:detail:left
やはりこの検証機能を追加してもOffice2003/2007で検出はされないみたいです。@kaito834さんが推測されてらっしゃいますが、この検証機能はOfficeファイルのフォーマットとして適切かどうかのチェックであって、Flashの内容が妥当であるかどうかまではさすがに検査しないためなんでしょう。
 

今回のOfficeのアップデートに関連したバグ・問題

やはりバグ無し・・というわけには中々いかず、いくつかバグらしき事象が確認されているみたいです。

 なおファイル検証機能には以下の問題が見つかっており、マイクロソフトでは、これらについて調査中だという。
・Office2003のファイル検証機能では、Excel2.0/3.0/4.0で作成されたファイルは検証をパスできない。Solver.xla(Excel用のソルバーアドイン)も検証をパスできない。
・Office2003のドキュメントに大量の図やデータを貼り付ける際、貼りつけが完了するまでに時間がかかることがある。
・Office2003では、大量の図やデータを含むファイルを共有ネットワークから開く際に、時間がかかることがある。

Officeの「ファイル検証機能」〜2007/2003でも利用可、アドバイザリ公開−セキュリティ関連ニュース
直接このファイル検証機能に関係しているのかは不明ですが、PowerPoint2003では不具合も確認されています。(私も同じ事象を確認しました。。)
http://twitter.com/ntsuji/status/58412684298825728:twitter:detail:left
MS11-022 (KB2464588) を適用後、PowerPoint 2003 でファイルを開くと「ファイルが壊れています」というメッセージが出力される