Windows HotFix Briefings

全WindowsのMicrosoft VMに重大なセキュリティ・ホール(MS03-011)

―― 悪意のあるJavaアプレットにより、攻撃者の任意のコードが実行可能となる危険性 ――

DA Lab Windowsセキュリティ
2003/04/15

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

 2003年4月10日、マイクロソフトはWindows XP(Service Pack未適用。以下Service PackはSPと略)/XP SP1aを除くほとんどのWindows環境に標準インストールされているMicrosoft VM(Microsoft製Java仮想マシン)にセキュリティ・ホールがあることを明らかにした。また、同時にこのセキュリティ・ホールに対応する修正プログラムの提供を始めた。

 Windows XP/XP SP1aでMicrosoft VMが標準でインストールされていないのは、Javaライセンスに関するSun Microsystemsとの訴訟と、その後の和解による混乱が原因だ(この問題の詳細はコラム「Java VMにまつわるMicrosoftとSunの争い」を参照)。

 このようにWindows XPにおけるMicrosoft VMサポートの経緯には紆余曲折があり、Windows XPの導入時期(対応SPバージョン)によって、今回の問題であるMicrosoft VMがインストールされているものと、インストールされていないものが存在する。ただいずれにせよ、Microsoft VMがインストールされているかどうかを確認する必要はある。

Java VMにまつわるMicrosoftとSunの争い
 2001年1月のSun MicrosystemsとのJavaライセンスに関する和解により、Microsoftは段階的にMicrosoft VMを廃止することを決めた。この決定により、MicrosoftはWindows XPからMicrosoft VMの標準インストールを止め、Windows Updateなどによる配布を行うことにした(必要なユーザーは、Windows Updateから無償ダウンロードして組み込めた)。その後、Sun MicrosystemsがMicrosoftを独占禁止法違反で提訴し、Sun Microsystems製JRE(Java Runtime Environment)をWindowsに標準インストールすることについて争われることになった。この提訴をきっかけとして、MicrosoftはWindows XP SP1でMicrosoft VMの標準インストールを再開した。しかし、2003年1月21日に米国メリーランド州ボルチモアの米連邦地裁によって出された仮処分命令によって、Microsoft VMの標準インストールが禁止された。そこでリリースされたのが、SP1からMicrosoft VMを除いたSP1aである。VMの有無以外は、SP1とSP1aに違いはなく、現在ではSP1aしかダウンロードできなくなっている。

 今回明らかになったセキュリティ・ホールは、Microsoft VMにおいて「バイトコード・ベリファイア(Bytecode Verifier)」と呼ぶJavaアプレットのチェック・プログラムの問題により、悪意のあるJavaアプレットが実行されるというものだ。具体的には、バイトコード・ベリファイアが、ある特定の不正なシーケンスの検出に失敗し、その後のセキュリティ・チェックがバイパスされ、悪意のあるJavaアプレットが実行されてしまうという。バイトコード・ベリファイアのセキュリティ・ホールはたびたび報告されており、1999年10月の「『仮想マシン ベリファイア』 の脆弱性に対する対策(MS99-045)」のほか、その後の累積的な修正プログラムでも対応が行われている。累積的な修正プログラムを含め、Microsoft VMに関する修正プログラムのリリースは今回で10回目になる(ただし、バイトコード・ベリファイアのセキュリティ・ホールは、Sun Microsystems製Java VMでも報告されている)。

■攻撃の条件
 このセキュリティ・ホールを悪用するには、悪意のあるJavaアプレットをWebページに挿入し、ユーザーがそのページを参照するように仕向ける必要がある。あるいは、そのWebページをHTMLメールとしてユーザーに送付することによっても同様の攻撃が可能だ。このセキュリティ・ホールにより、ユーザー権限によるファイルの作成、削除、変更、Webサイトとのデータの送受信などが実行可能になる。マイクロソフトでは、ファイアウォールでアプリケーション・フィルタを使用し、モバイル・コード(クライアント・マシンにダウンロードされて実行されるコード)を検知・ブロックすることにより、危険性を低減できるとしているが、問題の原因(Microsoft VM)を解消しないかぎり、完全な防御は困難である。

 ただし前述のとおり、攻撃を行うには、攻撃者が管理するWebサイトにユーザーを訪問させるよう誘導する必要があるが、このセキュリティ・ホール自体はそれを可能にするわけではない。またJava アプレットは[制限付きサイト ゾーン]内では無効にされることから、Outlook 2002、Outlook Express 6、Outlook 98/2000に「Outlook電子メール セキュリティ アップデート」をインストールしている場合など、HTML形式のメールが[制限付きサイト ゾーン]内で開かれるようになっているメール・クライアントでは、メール・ベースの攻撃による危険性もない。

セキュリティ・ホールの影響を受ける環境

 今回のセキュリティ・ホールによって影響を受けるのは、以下の環境である。

OS 影響を受ける条件
Windows 98 デフォルト
Windows 98 Second Edition デフォルト
Windows Me デフォルト
Windows NT 4.0 デフォルト
Windows 2000 デフォルト
Windows XP Microsoft VMの明示的なインストールが必要
Windows XP SP1 デフォルト
Windows XP SP1a Microsoft VMの明示的なインストールが必要*1
*1 SP1a導入以前にMicrosoft VMがインストールされていた場合には、SP1aを追加インストールしてもMicrosoft VMは消去されずに残る。

セキュリティ・ホールに対する対策

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

 ただし、Windows 2000以外の修正プログラムについては、Sun Microsystemsとの和解が関係しているのか、Microsoft VM全体(クラス・ライブラリなどを含む完全なMicrosoft VM)をWindows Updateからインストールする必要がある(Windows 2000以外の修正プログラムは、マイクロソフトのダウンロード・サイトでは公開されていない)。また、複数のPCにインストールする必要がある場合は、Windows Updateカタログを利用して修正プログラムをダウンロードすることも可能だ。Windows Updateカタログの利用方法は、以下のWebページを参照していただきたい。

 なお、Windows NT 4.0からはWindows Updateカタログにアクセスできないので(サポート技術情報の「Windows NT 4.0 ベースのコンピュータで Windows Update カタログを使用できない」参照)、Windows 2000/XPのコンピュータからアクセスして修正プログラムを入手する必要がある。また今回の修正プログラムに関しては、Windows Updateカタログだと明示的にWindows NT 4.0用とは記されていないが、Windows XP用のものがWindows NT 4.0にもインストールできる。つまりWindows NT 4.0の場合は、OSとしてWindows XP RTMまたはWindows XP SP1を選択してダウンロードした修正プログラムを利用すればよいわけだ。

 OS別にまとめると次のようになる。

OS 入手方法
Windows 9x/Me Windows Update
Windows Updateカタログ
Windows NT 4.0 Windows Update
Windows Updateカタログ(Windows XP用を利用)
Windows 2000 ダウンロードセンター:
  PC/AT互換機用
  NEC PC-9801/9821シリーズ
Windows Update
Windows Updateカタログ
Windows XP (VMがインストールされている必要がある) Windows Update
Windows Updateカタログ
OS別のVMの入手・更新方法
VMを更新するには、Windows Update、Windows Updateカタログ、ダウンロードセンターの3通りの方法がある。なおMicrosoft VMがインストールされているかどうかを確認するには、コマンドプロンプト上でjview.exeというコマンドを実行してみる。このコマンドが見つからなければ、Microsoft VMはインストールされていない。Windows XP SP1にはMicrosoft VMは含まれているが、Windows XPの初期バージョン(SPなしのバージョン)およびWindows XP SP1aをインストールした環境ではMicrosoft VMがインストールされていない場合がある。

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

  1. Internet Explorerの[ツール]メニューで[インターネット オプション]をクリック

  2. [セキュリティ]タブを開く

  3. [Web コンテンツのゾーンを選択してセキュリティのレベルを設定する]で「インターネット」を選択

  4. [このゾーンのセキュリティのレベル]−[レベルのカスタマイズ]ボタンをクリック

  5. [セキュリティの設定]ボックス−[Java の許可]の下から[Javaを無効にする]を選択してクリック

  6. [OK]ボタンをクリック

  7. この手順を「イントラネット」ゾーンに対しても実行

 ただしこの回避方法では、Javaアプレットを使用したWebページが正しく表示できなくなるので注意が必要だ。ゲーム・サイトを除けば、Javaアプレットを利用したWebページはそれほど多くないが、企業では、Javaアプレットを利用した会議室予約システムや顧客管理システムなどの業務Webアプリケーションを構築しているところもあるだろう。そういった環境では、Javaアプレットの実行を禁止することは不可能だ。修正プログラムの早急な検証ならびに適用を行っていただきたい。

 また、Microsoft VMの利用に不安が残る場合は、適切な評価を行った上でSun Microsystems製Java VMを利用することも可能だ。Sun Microsystems製Java VMは、以下のページより入手可能である。

 ただし、Microsoft VMとSun Microsystems製のJava VMでは互換性に一部問題があることが報告されている。また、Sun Microsystems製のJava VMにおいても、今後セキュリティ・ホールが発見される可能性がある点にも考慮したい。

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

 DA Labでは、今回のセキュリティ・ホールの影響を受けるすべてのプラットフォームを検証施設内にて再現し、修正プログラムの適用テストを実施した(DA Labの詳細は「DA Labとは?」を参照)。その結果は以下のとおりである。今回の適用テストでは、Windows NT 4.0にInternet Explorer 6.0以降(サービスパックを含む)をインストールしている環境では、本修正プログラムの適用時にセキュリティ警告のメッセージが表示され、適用作業が中断することがあった。これは、今回の修正プログラムを適用する際に使用するユーザー・アカウントにて、Internet Explorerの接続ウィザード(デスクトップ上の[インターネットに接続]アイコン)を実行完了させていないと発生する。どうやら、今回の修正プログラムはインストールの途中でWebサイトへアクセスすることがあるようだが、Internet Explorerの接続ウィザードが完了していないと、目的のWebサイトへたどり着けず、その結果エラーが生じて前述のセキュリティ警告のメッセージが表示されるようだ。特に無人インストールを計画している管理者は、インストール時に利用するユーザー・アカウントにて事前に接続ウィザードを必ず完了させることを忘れないようにしたい。

 またWindows NT 4.0環境で今回の修正プログラムをインストールすると、再起動して初めて対話型ログオンをしたところで、最終的な設定作業が自動実行される。つまり、再起動しただけではインストールは(完全には)終わっていないので注意したい。

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

OS 適用テストの結果
Windows NT 4.0 SP6a
△(前述の条件下では○)
Windows 2000 SP2
Windows 2000 SP3
Windows XP
Windows XP SP1
Windows XP SP1a
 
 Windows HotFix Briefings


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間