Windows HotFix Briefings

緊急セキュリティ情報
Officeのプログラム機能に重大なセキュリティ・ホール(MS03-037)

―― VBAの未チェック・バッファにより、不正なプログラムが実行される可能性 ――

DA Lab Windowsセキュリティ
2003/09/09

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

 2003年9月4日、マイクロソフトは、Officeアプリケーションを利用したカスタマイズ・プログラムを作成可能にするVBA(Visual Basic for Applications)の文書プロパティのチェック部分に未チェック・バッファがあり、ここを攻撃されることで、攻撃者の任意のプログラムが実行されてしまう緊急レベルのセキュリティ・ホールが存在することを報告し、修正プログラムを公開した。

 具体的な攻撃の手法としては、Office向けの文書ファイルにVBAを呼び出すコントロールなどを配置し、このコントロールの文書中のIDを不正な値に変更することで、VBA内部でバッファ・オーバーランを発生させることが可能である。こうした不正な攻撃用の文書ファイルを作成し、メールに添付してユーザーに送信したり、Webサイトなどに配置し、ユーザーがこれを開くように誘導したりすることで攻撃が可能だ。これにより攻撃者は、ユーザーのコンピュータ上で、ユーザーの権限で任意のプログラムを実行し、コンピュータ内部の情報を盗み出したり、システムを破壊したりすることが可能になる。

 原稿執筆時点で、このセキュリティ・ホールを悪用するようなウイルス/ワームの報告はないが、すでに多くのセキュリティ関連の電子掲示板などで、これを悪用可能なエクスプロイト・コード(exploit code。セキュリティ・ホールを攻撃可能であることを実証する小さなコード)が公開されている。深刻な被害を受ける以前に、早急に検証を行い、セキュリティ・ホールをふさいでおく必要がある。

対象となるソフトウェア

 今回のセキュリティ・ホールは、基本的にOffice 97、Office 2000、Office 2002(Office XP)製品を利用しているユーザーが対象となる。個別製品(WordやExcelなど)も対象である。また日本国内向けには、Word 98という単体製品も存在しており、こちらも対象に入る。

影響を受けるソフトウェア 対象プラットフォーム
VBA 5.0 Office 97/Access 97/Excel 97/PowerPoint 97/Word 97/Word 98など+ VBA 5.0
VBA 6.0 Office 2000 SP3/Access 2000/Excel 2000/PowerPoint 2000/Word 2000/Project 2000/Works Suite 2001など+VBA 6.0
VBA 6.2 サードパーティ製アプリケーション
VBA 6.3 Office XP SP2/Access 2002/Excel 2002/PowerPoint 2002/Word 2002/Publisher 2002/Project 2002/Visio 2002など+VBA 6.3
今回のセキュリティ・ホールの影響を受けるソフトウェア

 なおVBAは、マイクロソフト以外のサードパーティ製品でも利用されている。このため上記のOffice製品を使っていない場合でも、セキュリティ・ホールの影響を受ける可能性がある。自システムがセキュリティ・ホールの影響を受けるかどうかを調べるには、以下のファイルの有無を調査し、システムにVBAが組み込まれているかどうかを確認する。以下のうち、どちらかのファイルが存在していれば、影響のあるVBAが組み込まれていることになる。

  • VBA 5.0の場合:
    %ProgramFiles%\Common Files\Microsoft Shared\VBA\vbe.dll

  • VBA 6.0/6.2/6.3の場合
    %ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\VBE6.DLL

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

■Windows Installer 2.0のインストール
 
Office 2000またはOffice XP向けの修正プログラムを適用するには、事前にWindows Installer 2.0をインストールしておく必要がある(修正プログラムのインストーラがこれを利用するため)。Windows 2000 SP3/SP4とWindows XPにはWindows Installer 2.0が同梱されているが、これ以外の環境で、Windows Installer 2.0がインストールされていない場合は、以下のページから必要なモジュールをダウンロードし、修正プログラムの適用前にインストールする。

■Office Service Packのインストール
 Office 2000向けの修正プログラムはSP 3以降が、Office XP向けの修正プログラムはSP 2以降がそれぞれ対象プラットフォームとなる。従ってこれらのSP(Service Pack)を適用していない場合には、修正プログラムを適用する以前にService Packを適用する必要がある。

■Office以外のサードパーティ製製品によるVBAの利用
 MS03-037の修正プログラムでは、各Office製品をインストールした環境向けの修正プログラム以外に、サードパーティ製アプリケーションなどに添付されている汎用のVBAが組み込まれた環境向けの修正プログラムが提供されている。いずれの修正プログラムも、変更するファイルはVbe.dllまたはVbe6.dllである。従ってOfficeをインストールした環境に対し、汎用の修正プログラム(VBA64-KB822150-X86-JPN.exe)を適用することも可能であり、この方法でもセキュリティ・ホールを解消することはできる。

 ただしこの状態で、Office 2000/XPなどの修復セットアップを実行すると、Vbe.dllやVbe6.dllがセキュリティ・ホールを含む古いバージョンに戻ってしまう可能性がある(Office向けの修正プログラムを適用した場合には、この修復セットアップを行ってもバージョンダウンは発生しないようになっている)。この汎用のVBAが組み込まれた環境向け修正プログラムは、対応するOffice専用の修正プログラムが提供されていない場合にのみ適用していただきたい。利用している環境をよく確認し、正しい修正プログラムを適用することが重要だ。

■修正プログラム適用による副作用の検査
 今回の修正プログラムで置き換えられるVbe.dll/Vbe6.dllファイルは、VBAの重要なコンポーネントの1つである。このため、修正プログラムの適用により、VBAを利用する業務アプリケーションなどに影響が及ぶ可能性がある。VBAを利用する業務アプリケーションなどを全社に展開している場合には、影響がないことを事前に検証してから修正プログラムの全社的な適用を行うようにすべきだろう。End of Article

 Windows HotFix Briefings


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間