US-CERT Vulnerability Note VU#889747 の日本語訳

昨日に続き、CERT/CCのアドバイザリも訳しておきました。間違いや指摘があればツッコミください。結局、まとめると Vista、Server 2008 は MS08-038 を、それ以外は KB953252 を当ててね、ということでいいのかな。

Vulnerability Note VU#889747

Microsoft Windowsは NoDriveTypeAutoRun レジストリ値を正しく取り扱うことができません

概要

Microsoft WindowsはNoDriveTypeAutoRun レジストリ値を正しく取り扱うことができず、Windows が AutoRun と AutoPlay 機能を効果的に禁止することを妨げるかも知れません。

I. 説明

Windows 95 で導入された AutoRun は、リムーバブルメディア装置が挿入されたときに Windows が自動的にアクションを開始するための機能です。例えば、AutoRun に対応した CD-ROM を挿入したときには、Windows は自動的にそのディスク上のプログラムを実行するかも知れません。これは、USB大容量記憶装置の機能だけでなくCD-ROMデバイスをエミュレートする U3 対応の USB メモリにおいてもあてはまります。これらのデバイスは、Windows システムに接続された時点で自動的にコードが実行されます。また、ユーザが AutoRun 対応のデバイスのアイコンをクリックしたときにも AutoRun のアクションを起こすことができます。AutoRun は Windows ではデフォルトで有効になっています。Windows XP で導入された AutoPlay は、ユーザが取り得るアクションの一覧メニューを表示する、AutoRun 機能の拡張です。AutoRun および AutoPlay は、CDRom Autorun レジストリの値を 0 に設定し、また NoDriveTypeAutoRun レジストリの値を 0xFF に設定することにより無効にすることができます。NoDriveTypeAutoRun レジストリはグループポリシーの「自動再生機能をオフにする」の設定と直結しています。
Microsoft Windowsは、NoDriveTypeAutoRun レジストリを正しく取り扱うことができません。Microsoftのドキュメントによると、NoDriveTypeAutoRun を 0xFF にセットすることで、全ての種類のドライブでの AutoPlay が無効にならなければなりません。しかし、このレジストリの値が設定されたときでも、Vista ではレジストリを設定する前は有効ではなかったかも知れない、いくらかの AutoPlay の機能を可能にします。例えば、NoDriveTypeAutoRun が 0xFF に設定されたとしても、Vista ではデバイスのアイコンがクリックされると Autorun.inf ファイルで指定されたプログラムが実行されるかも知れません。NoDriveTypeAutoRun に他の値を設定することで、AutoPlay の特定の昨日を可能にするかも知れません。Vista より古いバージョンの Windows では、NoDriveTypeAutoRun レジストリの値は AutoRun 機能を単純に無視します。つまり、レジストリの値を設定することは、システムに新たなリスクを発生させるものではありませんが、AutoRun の機能を完全に停止するものではありません。

II. 影響

たとえグループPolicy Editorと関連するレジストリ価値が別途指示するとしても、Microsoft Windowsは若干のオートプレイを可能にしておくかもしれません。グループポリシーエディタや関連するレジストリエントリの値がどのような値であっても、Windows はいくらかの AutoPlay 機能を有効にしたままかも知れません。これは、攻撃者が任意のコードをユーザーにUSBメモリのようなリムーバブルデバイスを通じてうっかりと実行させるのを許すかも知れません。

III. 解決方法

アップデートの適用
この問題は、Microsoftのセキュリティ更新 MS08-038Windows Vista および Server 2008 のために対応されています。Windows 2000、XP、Server 2003 のユーザはマイクロソフトサポート技術情報 KB953252 の更新をインストールしなければなりません。また、以下の回避方法を考慮してください。

AutoRunの無効化
限定的なテストにおいては、以下のテキストを *.REG ファイルとして保存してレジストリにインポートすることにより、Windows 上で AutoRun と AutoPlay を無効にすることが可能であるようです。

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"

このレジストリの設定は、Autorun.inf ファイル(AutoRun および AutoPlay が利用します)に書かれた内容に基づいてアクションをとることを予防するものです。しかし、Windows が MountPoints2 レジストリキーによってデバイスの AutoRun の機能をキャッシュすることができる点に注意が必要です。これにより、前述の方法で AutoRun を無効にしたあとでも、Windows はキャッシュにリストされたデバイス上のファイルを自動で実行するかも知れません。このことより、我々は各ユーザごとの MountPoints2 レジストリキーを削除してキャッシュを消すことをお勧めします:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2

以下に示す方法は、我々が発表した最初の回避方法の設定です。しかし、MCNメッセージを抑制してしまうので、Windows が CD-ROM が変更されたことを正しく検出することができなくなるかも知れません。したがって、上記の回避方法のほうがより適切でしょう。

  • CD のための Autorun レジストリの値を 0 に設定。これは、CD-ROM が挿入されたときに Windows が「メディア変更通知」(MCN)メッセージを送信するのを抑制し、デバイスでの AutoPlay を抑制します。
  • Windows のコントロールパネルですべでのメディアとデバイスの自動再生をクリアすることにより、全メディア、全デバイスでの自動再生を無効にします。この方法の手順の詳細については、Windows Help and How-to に記載されています。
  • NoDriveTypeAutoRun レジストリをHKLMまたはHKCUで設定しない。これらの値があるのなら、削除することをお勧めします。これはグループポリシーエディタを使って「自動再生機能をオフにする」を「未構成」とすることでも可能です。
  • グループポリシーエディタで「自動再生の既定の動作」を有効に設定し「自動実行コマンドを実行しない」を選びます。

グループポリシーエディタ内の関連する設定項目は、gpedit.msc を起動し、「ローカルコンピュータポリシー」→「コンピュータの構成」→「管理用テンプレート」→「Windowsコンポーネント」→「自動再生のポリシー」にあります。

影響を受けるシステム
Vendor Status Date Notified Date Updated
Microsoft Corporation Vulnerable 2008-02-19 2008-02-27
Credit

This vulnerability was reported by Will Dormann of the CERT/CC. Some details were provided by Jeff Gennari of the CERT/CC. Information about how to disable AutoRun was provided by Nick Brown and Emin Atac.
This document was written by Will Dormann.

その他の情報


Date Public: 2008-03-20
Date First Published: 2008-03-20
Date Last Updated: 2009-01-21
CERT Advisory:
CVE-ID(s): CVE-2008-0951
NVD-ID(s): CVE-2008-095
1
US-CERT Technical Alerts:
Metric: 0.19
Document Revision: 54
If you have feedback, comments, or additional information about this vulnerability, please send us email.