Windows HotFix Briefings

Windowsスクリプト・エンジン「JScript」にバッファ・オーバーフローの脆弱性(MS03-008)

―― すべてのWindows環境において、Webページ参照などで攻撃者のコードが実行される危険性 ――

DA Lab Windowsセキュリティ
2003/03/25

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

 2003年3月20日、マイクロソフトはWindows 98/98 SE/Me/NT 4.0/2000/XPという、実質的にすべてのWindows環境において、Webページなどに記述されたスクリプト・コードを実行するためのスクリプト・エンジンにバッファ・オーバーフローの脆弱性が存在することを明らかにした(マイクロソフト・セキュリティ情報:MS03-008参照)。脆弱性が発見されたのは、Windowsスクリプト・エンジンの一部であるJScriptを処理するモジュールである。JScriptは、マイクロソフトが開発したJavaScript互換のスクリプト言語で、ダイナミックなWebページを構成するために広く利用されている。

キーワード
■JavaScript/JScript:JavaScriptは、Netscape社が開発したWeb環境向けのインタープリタ型言語。開発当初はLiveScript(ライブスクリプト)と呼ばれていたが、最終段階でJavaScriptという名称に変更された。ただしJava言語と技術的・歴史的な直接の関係があるわけではない。マイクロソフトは、JavaScript互換のスクリプト言語を開発し、JScriptとしてIEに実装した(この仕様は、ECMA Scriptとして標準化されている)。
■バッファ・オーバーフロー攻撃:システムがあらかじめ想定しているサイズ以上の大量のデータをバッファに送り込んでバッファ・オーバーフローを起こさせることにより、システムを破壊したり、特別なプログラムを実行させたりする攻撃のこと。

 このセキュリティ・ホールを悪用すると、攻撃者はリモートのWindowsを乗っ取ることが可能になる(ユーザーの権限で攻撃者のコードが実行される)。具体的には、脆弱性を攻撃するスクリプト・コードを埋め込んだWebページを作成し、相手がこのページを参照するのを待つ。より積極的な方法としては、悪意のあるスクリプト・コードを添付した電子メールをユーザーに送信し、これを実行するように仕向けることも可能である。特に、HotFixを適用していない古いOutlook Expressを使用しているユーザーは(特にMS01-020の修正プログラムを適用していないユーザーは)、メールをプレビューしただけで悪意のあるスクリプト・コードが実行され、Windowsが乗っ取られる危険がある。

 最大深刻度は「緊急」である。管理者は、直ちに修正プログラムの適用に向けて準備を進める必要がある。

 この脆弱性を悪用した攻撃の特徴は、攻撃に際して利用されるネットワーク・アクセスは正常なWebアクセス(またはメール・アクセス)そのものであるため、IPフィルタリングなどを行うファイア・ウォールが正しく設置されていても、攻撃を防御できないことだ。

今回の脆弱性を悪用した攻撃
脆弱性のあるクライアントPCが攻撃者の用意したWebページにアクセスすると、クライアントPCが攻撃者に乗っ取られる危険がある。しかもネットワーク・アクセス自体は通常のWebブラウズなので、IPフィルタリングなどを行うファイア・ウォールが正しく設置されていても攻撃を防御できない。

 また攻撃対象はInternet Explorer(以下IE)ユーザー、つまり企業内のすべてのクライアント・コンピュータである。影響の大きさと作業工数の問題から、サーバ向けのHotFix管理を優先する管理者がいるようだが、今回の脆弱性については、サーバだけでなく、各クライアントに対して正しく修正プログラムを適用しなければならない。管理するクライアントが多数に及ぶ場合、修正プログラムの適用にはかなりの作業工数がかかるだろう。しかし攻撃を受けた場合の影響は非常に大きいので、管理者は直ちに修正プログラムの適用準備を進めるべきである。

脆弱性の影響を受ける環境

 今回の脆弱性によって影響を受けるのは、以下の環境である。

OS 影響を受ける条件
Windows 98 デフォルト
Windows 98 Second Edition デフォルト
Windows Me デフォルト
Windows NT 4.0 デフォルト
Windows NT 4.0, Terminal Server Edition デフォルト
Windows 2000 デフォルト
Windows XP デフォルト

脆弱性に対する対策

 今回の脆弱性を抜本的に解消するには、以下のマイクロソフトのWebページから、環境に応じた修正プログラムをダウンロードして適用する必要がある。

 またWindows Updateでも、Windows NT 4.0, Terminal Server Edition以外の環境に対しては、すでにこの修正プログラムを提供している。通常の自動アップデートのほか、Windows Updateカタログから個別の修正プログラムをダウンロード可能だ(Windows NT 4.0は、Windows 98/98 SE用としてダウンロードする必要がある)。

 しかし場合によっては、修正プログラムを全面展開する前に、検証の時間が必要ということもあるだろう。何らかの理由で直ちに修正プログラムの適用が行えない場合には、以下の方法により、Webを経由した攻撃を一時的に回避することが可能である。

■Web経由の攻撃に対する回避策:IEのアクティブ・スクリプトを無効にする
 今回の脆弱性はJScriptの処理コードに存在するので、JScriptのコード実行を禁止してしまえば攻撃を回避できる。これには、IEの[ツール]−[インターネット オプション]を実行し、表示される[インターネット オプション]ダイアログの[セキュリティ]タブで[インターネット]を選択し、[レベルのカスタマイズ]ボタンをクリックする。こうして表示される[セキュリティの設定]ダイアログから、[スクリプト]の項目を探し、「アクティブ スクリプト」を「無効にする」に変更すればよい。

IEのセキュリティ設定を変更する
これはIE 6.0 SP1の例。デフォルトの状態では、アクティブ・スクリプトが有効になっているので、これを無効にする。こうすると、Webページ内にスクリプト・コードが存在する場合でも実行されなくなる。
  この項目で[無効にする]を選択する。

 この設定により、インターネット・ゾーンにあるWebサイトのページを参照しても、JScriptだけではなくVBScriptも含む各種スクリプトが実行されなくなる(デフォルトでは、すべての外部Webサイトは[インターネット]ゾーンのページとしてアクセスされる)。ただしこうすると、スクリプトの実行が不可欠な一部のWebページが正しく機能しなくなる。この場合には、当該サイトを[信頼済みサイト]ゾーンに追加することで、問題を回避できる。[信頼済みサイト]ゾーンでは、より甘いセキュリティ設定が適用されるため、スクリプト実行が可能になる。

 具体的には、前出の[インターネット オプション]ダイアログの[セキュリティ]タブで、[信頼済みサイト]を選択し、下の[サイト]ボタンをクリックする。こうして表示される[信頼済みサイト]ダイアログで、「次のWebサイトをゾーンに追加する」に対象WebサイトのURLを入力し、[追加]ボタンをクリックする。ただしこの方法によっても、1つのページ内で複数のサイトにアクセスするようなものでは、正しくスクリプトを実行できない場合もある(ユーザー認証を別サイトにしているケースなど)。

 IEのゾーン利用に関する詳細は、以下のWindows TIPSを参照のこと。

■電子メールを利用した攻撃への対策
 前述したとおり、攻撃用スクリプトを含むメールを受信したときに、スクリプトを自動実行しないように設定しておく必要がある。Outlook Express 6またはOutlook 2002では、このような対策がデフォルトで有効になっている。Outlook 98/2000を利用している場合には、以下のセキュリティ・アップデートをインストールした方がよいだろう。

 これ以前のOutlook Expressについては、マイクロソフトから特に情報が提供されていない。Outlook Express 6へアップグレードすることを検討した方が安全だろう。

修正プログラムの適用テスト

 DA Labでは、今回の脆弱性の影響を受けるすべてのプラットフォームを検証施設内にて再現し、修正プログラムの適用テストを実施した(DA Labの詳細は「DA Labとは?」を参照)。その結果は以下のとおりである。今回の適用テストでは、いずれの環境も特に障害が発生することなく、適用を完了した。

 なおこのテストは、あくまで修正プログラムの適用を実施し、その結果をお知らせしているだけであり、修正プログラム自体の機能性(脆弱性が本当に解消されているかどうか)を検証するものではないので注意されたい。

 今回提供される修正プログラムは、Windowsスクリプト・エンジンのバージョンにより異なる。Windowsスクリプト・エンジンは、単体でも提供されているほか、IEなどの製品にも同梱されている。具体的にはWindows Script 5.1/5.5/5.6の3種類がある。

 マイクロソフトは、セキュリティ情報MS03-008でWindows Script 5.6用の修正プログラムだけを提供し、これを5.1/5.5に対しても適用するべく説明をしている(正確にいえば、5.1/5.5に関する記述がなく、5.6用の修正プログラムしか紹介されていない)。一方、Windows Updateを利用した場合は、ActiveXコントロールによってシステムのWindows Scriptのバージョンが検出され、対応するバージョンのJScriptアップデートが適用されるようになっていた。また同社のダウンロード サイト「ダウンロード センター」では、5.6用だけではなく5.1/5.5用の修正プログラムもそれぞれ公開されている。ただし、5.1/5.5環境に5.6用の修正プログラムを適用することの問題などはレポートされておらず、各バージョンの修正プログラムの違いもレポートされていない。

 また、今回の修正プログラムを適用した後で、IEのバージョンアップやService Packの適用を行った場合には、再び修正プログラムの適用が必要になる可能性がある。原稿執筆時点では、IEのバージョンアップでJscript.dllファイルがバージョン・ダウンすることが確認された。これはIEやSPには、古いバージョンのモジュールが含まれており、上書きされてしまうためである。End of Article

OS 適用テストの結果
Windows NT 4.0 SP6a
Windows 2000 SP2
Windows 2000 SP3
Windows XP
Windows XP SP1
 
 Windows HotFix Briefings


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間