USBメモリ経由のマルウェア感染が猛威を振るっている - セキュリティ組織や企業が警告 -

 USBメモリ経由でマルウェアの感染が広がるケースが増加しているとして,US-CERTや米Symantec,米McAfeeなど複数のセキュリティ組織や企業が警告を発している.

 大半のUSB経由型のマルウェアは,既存のシグネチャによって検出可能なものであり,アンチウイルスソフトを導入していれば防げる.また,一部のUSB感染型のマルウェアに関しても,「不用意にUSBを差し込まない」「自動実行機能(オートラン)を無効にしておく」「隠しファイル・フォルダもすべて表示にする」などの対策によって防げる.また,当然ながら,不用意に実行ファイルを開いたりしない・・というのは言うまでもない.

 つまり,セキュリティリテラシーを高く持ち,それ相応の対策をしていれば,そう易々と感染するものではない.したがって,いま一度セキュリティリテラシーの改善および底上げと,適切な対策をそれぞれが取る必要があるだろう.


 USBメモリ経由のマルウェア感染が激増 - ITmedia
 「USBウイルスは海外でも猛威」――セキュリティ組織や企業が警告 - ITPro
 急速に拡大するUSBメモリ経由のウイルス感染--US-CERTが警告 - ZDNet

USBメモリ経由でマルウェアの感染が広がるケースが増加しているとして、US-CERTや米Symantecが注意を呼び掛けている。

 感染の方法は2通りあるという。まずコンピュータがマルウェアに感染し、そのコンピュータに接続したストレージデバイスすべてにマルウェアがコピーされるケース。この場合、ユーザーがUSBメモリにアクセスしてマルウェアを実行すると感染する。

 もう1つは、WindowsなどのOSに実装されている自動実行・再生機能のAutoRunを悪用する手口。マルウェアによってストレージデバイス上で「autorun.inf」ファイルが改竄または作成され、ユーザーがUSBメモリをコンピュータに接続すると、何もしなくてもマルウェアが実行される。
     USBメモリ経由のマルウェア感染が激増 - ITmediaより引用

 感染経路として,「自分でマルウェアを実行して感染する」というのが少なからずあるというのは驚きだ.ユーザーが明示的にウイルスを実行しない限り感染しないということは,ユーザーがセキュリティに対して十分な意識を持っていれば,確実に防げるはずだ.

---前略---

これにより、ウイルスが潜んでいるUSBメモリーなどをパソコンに接続するだけで感染する恐れがある。特に危ないのはWindows Vistaパソコン。初期設定のままのVistaパソコンでは、USBメモリーなどを接続するだけで、中に潜んでいるウイルスが動き出して感染。そのパソコンに接続されているほかの機器にも感染が拡大する。

 Windows XP/2000でも油断は禁物。USBメモリーなどを接続するだけでは感染しないものの、「マイコンピュータ」に表示されたUSBメモリーなどのドライブ(例えば「リムーバブル ディスク」)のアイコンをダブルクリックすると、Autorun.infが解釈されてウイルスが動き出す。

---中略---

Windows Vistaパソコンでは、USBウイルスが勝手に実行されないように設定を変更することも対策となる。具体的には、「コントロールパネル」→「ハードウェアとサウンド」→「CDまたは他のメディアの自動再生」における「ソフトウェアとゲーム」の項目を「何もしない」に設定する(具体的な手順は、IPAの情報に詳しい)。

 心掛けも重要だ。US-CERTなどでは、信頼できないUSB機器をパソコンに接続しないよう呼びかけている。また、USBメモリーなどの中身を確認する際には、そのアイコンをダブルクリックするのではなく、Windowsエクスプローラなどで表示させるようにしたい。
     「USBウイルスは海外でも猛威」――セキュリティ組織や企業が警告 - ITProより引用

 一般的に,Windows2000はオートランが実行されないと思われがちだが,マイコンピュータからクリックするとオートランは実行される.WindowsXPに関しては,自動再生時にエクスプローラやフォルダを開くを選択した場合は,オートランが無視されるが,マイコンピュータからダブルクリックすると実行される.また,一般的に誤解されがちな「Shiftキーを押しっぱなし」だが,Windows XPでShiftキーを押しながら挿入することで無効化されるのは「自動再生(Autoplay)」であって,「自動実行(Autorun)」ではない.したがって,Shiftキーを押しながらダブルクリックしても,当然ながらオートランは実行される.

 オートランを無効化する方法として,「Shiftキーを押しながら挿入する・Shiftキーを押しながらダブルクリックする」というのは誤りである.一般に非常に誤解されており,ネット上でも誤った記述が多く見られるので,注意して欲しい.嘘だっ!!と思う方は,簡単に実験できるのでぜひ試してみて欲しい.

 USB内に,

[Autorun]
open=xxx.exe
shellexecute=xxx.exe
shell\Auto\command=xxx.exe

という"Autorun.inf"を作ってやる.起動する実行ファイルは何でも良い.それで,Shiftキーを押しながら試せば分かるように,"xxx.exe"は普通に何事もなく実行される.

 その他に,オートラン対策としては,レジストリを弄ってオートランそのものを無効化する方法がある.

Der von Windows XP voreingestellte Standardwert für (1, 2, 4, 7) ist
""NoDriveAutoRun"=dword:00000095"(149=0x95 hex).
Weitere gebräuchliche Einstellungen sind
""NoDriveAutoRun"=dword:000000b5" (nur Festplatte aktiviert),
""NoDriveAutoRun"=dword:0000009d"" (nur CD-ROM aktiviert) oder
""NoDriveAutoRun"=dword:000000ff"" (alle Laufwerke deaktiviert).
     [[Hilfe]] CD Wird nicht angezeigtより引用

 ここで,注意しておきたいが,引用記事では"NoDriveAutoRun"となっているが,これは"NoDriveTypeAutoRun"の誤りである.詳しくは下記を参照して欲しい."dword:000000b5"はハードディスクだけをアクティベートし,"dword:000000ff"はすべてのドライブが無効化される.「NoDriveTypeAutoRun」のレジストリ値(REG_DWORD値)は以下のように対応している.

1. drives of unknown type (1 )
2. removable drives (4 )
3. fixed drives (8 )
4. network drives (16 )
5. CD-ROM drives (32 )
6. RAM disks (64 )
7. drives of unknown type (128 )
8. all types of drives (255 )
     [[Hilfe]] CD Wird nicht angezeigtより引用

つまり,"NoDriveTypeAutoRun"=dword:000000xxのxx部分に,上記の数値足して,自動再生したくないやつを選べばいい.例えば,「"NoDriveTypeAutoRun"=dword:000000ff」はすべてのタイプのドライブを自動再生しないっていう設定であり,「"NoDriveTypeAutoRun"=dword:000000b5」はRAM disks以外のすべてのタイプを自動再生しない設定ということになる.

 ここで,「Type」側の設定に関してまとめておくと,

  • レジストリの「Type」側設定
    • すべてのタイプのドライブを自動再生しない
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000ff
    • RAM disks以外のすべてのタイプのドライブを自動再生しない
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000b5

 ここで紹介した「NoDriveTypeAutoRun」は"Type"側の設定であり,他に「NoDriveAutoRun」という"Drive"側の設定がある.これに関しては参考文献[1]や[4]に詳しい.USBのオートランを無効化するのであれば,Type側の設定で十分であると思うので,ここでは詳しくは述べない.ただ,簡単に説明すると,"Type"側の設定はレンジが8ビットでドライブのタイプに対応なのだが,"Drive"側の設定はレンジが32ビットあり,設定によってはCドライブやDドライブの自動実行をも無効化できる.ようは,Type側の設定と言うのは,ドライブの種類(光学ドライブだとかリムーバブルディスクだとか)でオートランの有効・無効を設定することが出来,Drive側の設定ではドライブレター*1によって有効・無効を設定することが出来る.32ビットのうち,下位26ビットはそれぞれドライブレターに対応しており,下位ビットから上位ビットへA,B,C,D,・・,X,Y,Zと対応している.(参考[2])

 以下にまとめると,

    • 各ドライブレターに対応しているビット値
A:
0x1  (00001 binary), Autoplay is disabled on drive A
0x2  (00010 binary), Autoplay is disabled on drive B
0x4  (00100 binary), Autoplay is disabled on drive C
0x8  (01000 binary), Autoplay is disabled on drive D
0x10 (10000 binary), Autoplay is disabled on drive E
.
.
.
0x1000000 (0100...000 binary;2^24), Autoplay is disabled on drive Y
0x2000000 (1000...000 binary;2^25), Autoplay is disabled on drive Z

 これを組み合わせて,無効化したいドライブレターを指定する.以下に,例を挙げる.

    • 全ドライブレターのAutorunを無効化
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveAutoRun"=dword:03ffffff

あるいは,16進表記を用いた場合,

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveAutoRun"=hex:FF,FF,FF,FF
    • Dドライブのオートランを無効化
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveAutoRun"=dword:00000008

あるいは,16進表記を用いた場合,

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveAutoRun"=hex:08,00,00,00
    • Hドライブのオートランを無効化
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveAutoRun"=dword:00000080

 ただし,物理ドライブが割り当てられているドライブレターのAutorunを無効化した場合,システムが起動しなくなるなどの不都合が生じる可能性があるので,注意しなければならない.

 また,最近は攻撃を成功させるために発見・復旧を遅らせる機能を持つマルウェアが増えており,USBメモリにある正規の設定ファイルを不正なものに書き換える機能や、他の不正プログラムをダウンロードした後に自身を削除することで侵入の痕跡を消す機能,更にはUSBメモリに保存されている正常なファイルと同じ名前で不正プログラム本体のコピーを作成し、フォルダのアイコンで偽装する機能を持つマルウェアが出てきている.しかし,これらはオートランを無効化する,拡張子をすべて表示するようにする,リムーバブルメディアも小まめにウイルススキャンするようにする,などの適切な処置を行っていれば,感染を予防出来る.また,アクセスコントロールやアプリケーションコントロール機能を持つファイアーウォールソフトを導入していれば,USBから不正なファイルが実行されても,ブロックすることが出来る.

 セキュリティリテラシーを持ち,適切なセキュリティ対策を講じていれば,USBメモリ経由のマルウェア感染は防げる.

  • 不用意にファイルを開いたりしない,隠しファイル,拡張子はすべて表示してセキュリティ意識を持つ
  • レジストリによるオートランの無効化
  • アプリケーションコントロール機能などを持つファイアーウォールソフト(HIPS)の導入

などの適切な対策をすれば,十分に予防出来るということを忘れないで欲しい.


追記 08/11/22 10:00

 US-CERTの記事を読んだので,それを踏まえていくつか追記したい.

 The Dangers of Windows AutoRun - US-CERT

When a drive icon is clicked in Windows Explorer, Windows will execute the program specified in the Autorun.inf file. In this case, user interaction is required for the code to execute. However, the AutoRun behavior can be unexpected, as it is common to believe that clicking the drive icon will display the contents of the drive, rather than executing code.
     The Dangers of Windows AutoRun - US-CERTより引用

 これ,よくある間違いなので,本文中で注記しておくべきだった.Windowsエクスプローラで開いた場合であっても,当然ながらドライブのアイコンをダブルクリックして開くとAutorunが実行されてしまう.Windowsエクスプローラのツリー表示から開くか,マイコンピュータでドライブを右クリックをして「開く」や「エクスプローラ」を選択した場合は,Autorunは解釈されずに開くことが出来る.*2

Although the documentation for NoDriveTypeAutoRun indicates that Windows will not use AutoRun features on USB mass storage devices, this does not necessarily mean that users can safely plug any USB device into their system. For example, a system will recognize Sandisk U3 USB devices as both a CD-ROM device and a USB mass-storage device. Considering that an attacker can easily modify the CD-ROM contents of a U3 device, you now have a way for an attacker to execute code of their choice on a Windows system by simply plugging in a small USB device. No other user interaction is required.
     The Dangers of Windows AutoRun - US-CERTより引用

 IEEE1394やUSBで接続するHDDなど,いわゆるマスストレージデバイスなどは「Type」側のレジストリ設定では無効化出来ない.したがって,マスストレージとして認識されるUSBデバイスがあるならば,それらに対して潜在的なリスクが残ることになる.これに関しては,注意が必要である.これを防ぐ方法としては,「Drive」側のレジストリ設定をしてやれば無効化することが出来る.ただし,この方法はUS-CERTでは推奨されていないようだ.

One of our readers has provided us with a workaround that disables AutoRun closest to the source, which is the Autorun.inf file itself. By importing the following registry key, the Autorun.inf file will no longer be used to determine AutoRun and AutoPlay actions:

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

This setting appears to disable AutoRun behaviors without causing other negative side-effects. More details about this workaround are available in Nick Brown's blog entry Memory stick worms.
     The Dangers of Windows AutoRun - US-CERTより引用

 Autorunを無効化する方法として,一般的には本記事で紹介したような「Type」側の設定や「Drive側の設定」レジストリ設定が知られているが,US-CERTによれば,上記引用文にあるレジストリキーを設定するほうがより有効な対策であるらしい.このレジストリキーを設定することで,Autorun.infを無効化し,AutoRunとAutoPlay動作を決定するのに使用されなくなる.

その他,Microsoftには余計なお節介だ・・と言いたくなる機能があるようだ.

Microsoft Windows may cache AutoRun information from connected devices. The impact of this feature is that even after disabling AutoRun as described above, you may still experience AutoRun behaviors for devices (USB drives, network shares, etc.) that have been connected to the computer in the past. For this reason, we also recommend removing this cache by deleting the MountPoints2 registry key for each user:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
     The Dangers of Windows AutoRun - US-CERTより引用

 Windowsは接続デバイスからのAutoRun情報をキャッシュするかもしれない.これは,ネガティブインパクトの潜在的リスクがあることを意味する.AutoRunを無効にした後でさえ,過去にコンピュータに接続されたデバイスのAutorunが実行される可能性があるらしい.そのため,無効化する前にキャッシュをクリアしておかなければならない.キャッシュは引用文にある

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

に保存される.こいつをさくっと削除することをUS-CERTは推奨している.

 また,個人的に最も推奨される対策としては,「Kaspersky」や「Comodo Firewall Pro」,「Online Armor Personal Firewall」などのアプリケーションコントロールやプロセス監視機能がしっかりしているファイアーウォールソフトを導入することが挙げられる.これらを導入しておけば,Autorunによって勝手に不正なファイル実行されてもそれを防ぐことが出来る.

*1:C,D..というドライブに割り当てられるアルファベット

*2:"the AutoRun behavior can be unexpected, as it is common to believe that clicking the drive icon will display the contents of the drive, rather than executing code."というのがよく分からない.手持ち3台のパソコンではいずれもAutorunは実行されなかった