Autorun機能を無効にする

リムーバブルメディアのAutorun機能を利用したウィルスが流行っているので、Autorun機能を無効にする方法を模索中です(特にVista)。Linuxなら勝手に実行なんかしないのに、何か完璧な方法はないものか(Windows使わないわけにはいかないし)。

リムーバブルメディアでのデフォルトの動作を『何もしない』に設定する。

すでに自動再生を選択してしまっている人は次の項目。

Shiftキーを押しながらメディア挿入

ディスクがマウントされるまでShiftキーを押さなければいけない。

空のAutorun.infをUSBメモリに入れとく

USBメモリはAutorun.infでは自動実行できないはずですが、PC側にこのようなおせっかいなソフトウェアがインストールされていると自動実行可能になってしまいます。あなおそろしや。
自分のUSBメモリに対する対策として、空の(中身の設定がない)autorun.infを作成してUSBメモリドライブ直下に入れておくとよいようです。以下参考(何も書かなくてもいいけど)。

[Autorun]
open=
icon=

ちなみに、iconキーに、自分の好きなアイコンのパスを設定しとくと、マイコンピュータでリムーバブルディスクが見つけやすくて大変、よい。

レジストリ値を変更する

上記の方法は恒久的な対策ではない上、予備知識がないと実施できない。以下、レジストリを操作してAutorunを強制的に無効化する方法。

レジストリ値変更その1:IniFileMapping

下記内容をテキストエディタにコピペして拡張子regを付与して保存。ダブルクリックで実行してレジストリを書き換える。

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

  • 元に戻すには上記キーを削除するだけなので簡単
レジストリ値変更その2:CD-ROMのAutorun機能の無効化

レジストリの以下の値を0に設定(1で有効化)。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\CDRom

レジストリ値変更その3:ライブタイプ別にAutorun機能を無効化する

レジストリの以下のキーの指定のドライブのビットを1に設定(0で有効化)

HKEY_LOCAL_MACHINE\\SOFTWARE\Microsoft\Windows\CurrentVersion\\Policie\Explorer\NoDriveTypeAutoRun

  • ビット対応表
Value Meaning
0x1 Disables Autoplay on drives of unknown type.
0x4 Disables Autoplay on removable drives.
0x8 Disables Autoplay on fixed drives.
0x10 Disables Autoplay on network drives.
0x20 Disables Autoplay on CD-ROM drives.
0x40 Disables Autoplay on RAM disks.
0x80 Disables Autoplay on drives of unknown type.
0xFF Disables Autoplay on all types of drives.
  • これにより、CDからアプリケーションをインストールする際にsetup.exeを指定して開かないとセットアッププログラムが起動しなくなる(setup.exeを直接実行すればいいだけなので無問題)。
  • ただし、Vistaの場合は上記の方法では抑制できない場合アリ(US-CERTより引用)

Windows Vista fails to properly handle the NoDriveTypeAutoRun registry value. According to Microsoft's documentation, setting NoDriveTypeAutoRun to 0xFF should disable AutoPlay for all types of drives. However, when this registry value is present, Vista enables some AutoPlay features that may not have been enabled prior to setting that registry value. For example, if NoDriveTypeAutoRun is set to 0xFF, Vista may execute a program specified in the Autorun.inf file when the device icon is clicked. Other values for NoDriveTypeAutoRun may also enable certain AutoPlay features in Vista.

Vistaにおいては、Autorunの脆弱性が指摘されているので注意が必要です(パッチなし)。

その他

Windows PCにリムーバブルメディアを挿さない

CDブートするLinux PCを別途用意する。そこからWindowsの共有フォルダに目的のファイルをコピー。リモートのリムーバブルディスクをWindowsで参照した際に、Autorunって起動するのかな?(NoDriveTypeAutoRunにネットワークドライブのビットがあるくらいだから起動するのかも)

見知らぬUSBメモリを挿さない、見知らぬPCにUSBメモリを挿さない

これが一番なんですけどね・・・