Windowsの自動実行機能(Autorun)を完全に無効化してウイルス感染を防ぐTech TIPS

Windowsにはリムーバブルストレージなどをコンピュータに装着したとき、自動的にプログラムを起動するAutorun機能がある。ウイルスがこれを悪用し、USBメモリなどを介して感染被害が広がる事例が報告されている。AutorunはWindowsの設定変更で無効化できるはずだったにもかかわらず、実際には無効化できない場合や状況があった。完全にAutorunを無効化するには、修正パッチの適用と設定変更の両方が必要となる。

» 2009年03月06日 05時00分 公開
[島田広道デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

Windowsの自動実行機能(Autorun)を完全に無効化してウイルス感染を防ぐ

対象:Windows 2000/Windows XP/Windows Vista、Windows Server 2003/Windows Server 2008


「autorun」とは?

 Windows OSには「自動実行(Autorun)」という機能があり、CD/DVDメディアをドライブに挿入したりUSBメモリなどのリムーバブルストレージをコンピュータに装着したりしたとき、格納されているプログラムを自動的に実行できる。

 例えば、ソフトウェアのセットアップCDをドライブに挿入するだけでインストーラが起動するなど便利に活用されている。

autorunがウイルス感染を広げる?

 一方で、ウイルスなどの悪意のあるソフトウェアがこの機能を悪用して感染を広げるという弊害も報告されている。Autorunを悪用するウイルスは、Autorun.infという自動実行用の設定ファイルをウイルス本体とともにUSBメモリなどにコピーする。これをAutorunの有効な別のコンピュータに装着すると、Autorunによってウイルスが自動実行され、そのコンピュータにウイルスが感染してしまう。

 近年、こうした感染手法を持つウイルスが増加しているとのことだ。

 

対策はautorunの無効化

 こうした脅威への対策としては、Autorunを無効にすることがよく推奨されている。Windowsには標準でAutorunを無効化する機能があり、以下のTech TIPSでもその方法を紹介している。

 この他にも、レジストリあるいはグループポリシーの設定変更により全種類のドライブに対して一律にAutorunを無効化できる、とされていた。

従来の対策ではautorunを完全には無効化できない!?

 ところが、こうした設定をWindowsが正しく解釈しないため、無効化の設定をしても実際にはAutorunが働いてしまう、ということがマイクロソフトから報告されている。例えば、本来はデフォルトで無効なはずのネットワークドライブでのAutorun機能が、実際にはデフォルトで起動してしまうとのことだ。

 また米国のセキュリティ対策組織US-CERTによれば、Autorunの無効化設定後、新たに接続したリムーバブルストレージに対しては無効にならない、という。その他、ユーザーがWindowsエクスプローラのドライブアイコンをダブルクリックした場合、依然としてAutorunによってプログラムが起動するため危険である、とのことだ。

従来のautorun無効化と修正パッチ適用の両方が必要

 この問題を解消するには、マイクロソフトが提供しているAutorun修正パッチを適用し、かつ従来からあるAutorunの無効化の設定を行う(両方とも実施する必要がある)。本Tech TIPSでは、セキュリティ強化のため全種類のドライブに対して一律かつ完全にAutorunを無効にする方法を説明する。

 リムーバブルストレージやネットワークドライブを含む全種類のドライブに対して、一律にAutorunを無効化するには、マイクロソフト提供のパッチ適用と、レジストリ(またはグループポリシー)の設定変更の両方が必要だ。以下では、適用すべきパッチやグループポリシーの設定個所が異なるため、Windows 2000/Windows XP/Windows Server 2003と、Windows Vista/Windows Server 2008に分類して説明する。

Windows 2000/XP/Server 2003でAutorunに無効化するには

●Autorun修正パッチを適用する

 Windows 2000/Windows XP/Windows Server 2003に適用すべきAutorun修正パッチは、以下のKB967715のパッチである(いずれもリンク先はマイクロソフトのダウンロードセンター)。

 これらは自動更新で配信されており、またWindows Update/Microsoft、WSUSでも適用可能だ。それぞれ上記リストの名称で登録されているので、「KB967715」というKB番号で検索すると見つけやすいだろう。

 適用方法は通常のセキュリティパッチと同じだ。手動で再起動を抑制しつつサイレントインストールをするには、以下のようにオプションを指定して実行する。

<パッチファイル名> /quiet /norestart



 なお、以下のサポート技術情報からダウンロードできるKB950582のパッチが適用済みであれば、上記のKB967715のパッチを適用する必要はない。

 この2種類のパッチは同等のもので、異なるのは実質、KB950582の方が早くリリースされたことと、自動更新などで適用可能なのはKB967715の方だけ、という2点のみだ(すなわちKB950582のパッチがマイクロソフトのパッチ適用ツールで自動的に適用されることはない)。両方とも未適用ならKB967715の方を適用すればよい。

●レジストリ設定でAutorunを無効化する

[注意]

レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリの操作は慎重に行うとともに、あくまでご自分のリスクで設定を行ってください。何らかの障害が発生した場合でも、本Windows Server Insider編集部では責任を負いかねます。ご了承ください。


 レジストリ設定によって、Autorunによる自動実行を全種類のドライブに対して無効化するには、以下のレジストリエントリを操作する。「NoDriveTypeAutoRun」の設定値を0xFFから変えることで、一部のドライブのみ無効化することも可能だ(詳細はマイクロソフトのサポート技術情報967715の「特定の自動実行機能を選択して無効にする方法」を参照のこと)。

 なお、「HonorAutoRunSetting」はWindows XP/Windows Server 2003だけの機能だ。

項目 内容
キー HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\
値1の名前 NoDriveTypeAutoRun
値1の型 DWORD型(REG_DWORD型)
値1の内容 0xFF→全種類のドライブでAutorunを無効化する
値2の名前 HonorAutoRunSetting
値2の型 DWORD型(REG_DWORD型)
値2の内容 1→KB967715あるいはKB953252のパッチによる修正を有効にする(正しくAutorunを無効化できるようにする)
全種類のドライブでAutorunを無効化するためのレジストリ設定値
NoDriveTypeAutoRunの値を0xFFから変えると一部のドライブのみ無効化できる(サポート技術情報967715参照)。HonorAutoRunSettingは前述のKB967715あるいはKB953252のパッチを適用すると自動的に「1」が設定される。通常は「1」が設定済みであることを確認すればよい(Windows XP/Windows Server 2003のみ)。

●グループポリシーでAutorunを無効化する

 Active Directoryに所属する複数のコンピュータでAutorunを無効化するには、レジストリ設定よりグループポリシーの方が簡単だろう。

 それにはグループポリシーエディタで[コンピュータの構成]−[管理用テンプレート]−[システム]にある[自動再生機能をオフにする]のプロパティを開き、[設定]タブで[有効]を選択してから[自動再生機能をオフにする]を「すべてのドライブ」に設定する。

全種類のドライブでAutorunを無効化するためのグループポリシー設定 全種類のドライブでAutorunを無効化するためのグループポリシー設定
グループポリシーエディタで[コンピュータの構成]−[管理用テンプレート]−[システム]にある[自動再生機能をオフにする]をダブルクリックすると、この画面が表示される。
  (1)これを選ぶ。
  (2)これを選ぶ。

Windows Vista/Server 2008でAutorunに無効化するには

●Autorun修正パッチを適用する

 Windows Vista/Windows Server 2008の場合、Autorunに関する修正はMS08-038のセキュリティパッチに含まれるので、このパッチを適用すればよい(以下、いずれもリンク先はマイクロソフトのダウンロードセンター)。

 これらも自動更新やWindows Update/Microsoft、WSUSで適用できる。適用方法は通常のセキュリティパッチと何ら変わらない。手動で再起動を抑制しつつサイレントインストールをするには、以下のオプションを指定して実行する。

<パッチファイル名> /quiet /norestart



●レジストリ設定でAutorunを無効化する

 Autorunを無効化するためのレジストリエントリは下記のとおり、Windows 2000/Windows XP/Windows Server 2003と変わらない。ただしHonorAutoRunSettingの設定はない。

項目 内容
キー HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\
値の名前 NoDriveTypeAutoRun
値の型 DWORD型(REG_DWORD型)
値の内容 0xFF→全種類のドライブでAutorunを無効化する
全種類のドライブでAutorunを無効化するためのレジストリ設定値
NoDriveTypeAutoRunの値を0xFFから変えると一部のドライブのみ無効化できる(サポート技術情報967715参照)。

●グループポリシーでAutorunを無効化する

 Autorunをグループポリシーで無効化するには、グループポリシーエディタで[コンピュータの構成]−[管理用テンプレート]−[Windows コンポーネント]−[自動再生のポリシー]にある[自動再生機能をオフにする]のプロパティを開き、[設定]タブで[有効]を選択してから[自動再生機能をオフにする]を「すべてのドライブ」に設定する。

全種類のドライブでAutorunを無効化するためのグループポリシー設定 全種類のドライブでAutorunを無効化するためのグループポリシー設定
グループポリシーエディタで[コンピュータの構成]−[管理用テンプレート]−[Windows コンポーネント]−[自動再生のポリシー]にある[自動再生機能をオフにする]をダブルクリックすると、この画面が表示される。
  (1)これを選ぶ。
  (2)これを選ぶ。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。