レジストリでAutoRunを無効にしたときの注意点に関して、元ネタとなっている Vulnerability Analysis Blog: The Dangers of Windows AutoRun を翻訳してみました。間違いや指摘があればツッコミください。

The Dangers of Windows AutoRun

By Will Dormann on April 24, 2008 7:12 PM

こんにちは。私は CERT/CC 脆弱性調査チームの Will Dormann です。数か月前にディジタル写真による感染事例がメディアで報告されました。私は悪意あるコードが実行された方法について知りたかったので、Microsoft の AutoRun および AutoPlay 機能についての調査を開始しました。

Windows95 で導入された AutoRun は、大きく2つの性質があります。

CD-ROMドライブのような特定の種類のデバイスにおいては、デバイスが接続されるかメディアが挿入されると、Windows は Autorun.inf ファイルで指定されたプログラムを自動的に実行します。この機能のセキュリティに対する影響は、物理的にコンピュータにアクセスできる者は、CD-ROMをドライブに挿入することで悪意あるコードを実行できるという点です。しかし、コンピュータへ物理的にアクセスできるということは、攻撃者にあらゆることができる能力を与えることだと、我々はすでに知っていますよね。 Windows のエクスプローラにおいてドライブアイコンがクリックされたときに、Windows はAutorun.inf ファイルで指定されたプログラムを実行します。この場合、コードの実行にはユーザの操作が必要となります。しかし、ドライブのアイコンをクリックすることはドライブの内容を表示すると一般的には思われており、コードが実行される AutoRun の動作は予想外でしょう。

AutoRun の動作を調査するにあたり、私は2つの面白いことに気付きました。

U3ドライブの悪意ある使用方法に関する情報は、特に目新しいものではありません。しかし、AutoRunがどれくらいシステムで無効にされていますか。問題を混乱させているもうひとつの側面は、どのように AutoRun 機能を正しく効果的に無効にするのかが明確にされていない点です。VU#889747は当初、私のテストで効果的とみえた手順をリストにしました。しかしそれらにはMCNメッセージを抑制してしまう副作用があり、CD-ROM や DVD が変更されたことを Windows が検知できなくなりました。

我々の読者の一人がAutoRunを無効にする、もっとも原因に近い方法、AutoRun.infファイルそのものに対する方法、を提供してくれました。以下のレジストリキーをインポートすることによって、Autorun.inf ファイルが AutoRun および AutoPlay 機能の決定に使われることはなくなります。

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

この設定はネガティブな副作用を引き起こさずに AutoRun 機能を抑制できるように思います。この回避方法の詳細については、Nick Brown のブログの Memory stick worms に記されています。

2008年11月21日更新

Microsoft Windowsは AutoRun の情報を接続されたデバイスからキャッシュするかも知れません。これによる影響は、前述の方法で AutoRun を無効にした後も過去にコンピュータに接続していたデバイス(USBメモリ、ネットワーク共有、その他)において AutoRun 機能がまだ働くかも知れないということです。この理由から、MountPoints2 レジストリキーを各ユーザのレジストリから削除することによってキャッシュを削除することをお勧めします。

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