USBフラッシュメモリを媒介して感染するウィルスから守る


昨今、流行り(?)のUSBメモリなどの可搬媒体から感染を広げるタイプのウィルス。職場でも、どうやったら感染を防止できるUSBメモリにできるんだろうと、いろいろ話題に出てた。

autorun.infを読み取り専用であらかじめ作成しておけばいい。いや、autorun.infというフォルダでなければだめだ。などなど。

そうこうしているうちに、パンダソフトウェアから「Panda USB ワクチン」なる無料のソフトがリリース。


http://www.pandasoftware.jp/promo/usb.htm


これには2つの機能があって、


1.ホストコンピュータのAUTORUN機能を無効にする
2.USBメモリに対してウィルスに感染させないようにする


1のほうは、どうせレジストリを設定するだけだろう。2はどうやってやるのかな?と思って、使ってみたところ、USBメモリにAUTORUN.INFが作成された。


ほう。ウィルスにAUTORUN.INFをつくられないようにするんだな。ファイルプロパティを見てみると...エクスプローラ上から見るに特に変わったところはなさそうだ。


じゃ、中身は?ん?開けない。開けないどころか、コピーも削除も何もできない。一応管理者権限で操作しているのだが。

じゃあSYSYTEM権限で動くプログラムから操作してみよう。だめだ...すべてアクセス拒否だ。


どうなってんだ?


とりあえず、GetStatusでファイルの属性をチェック。m_attributeの値が(10進で)64。
え?64?
普通、ファイルの属性は列挙型で表され以下のようになっている(10進で)。

normal 0
readOnly 1
hidden 2
system 4
volume 8
directory 16
archive 32


64ってなんじゃ??

じゃあ、m_attributeを64に設定してファイルを作ってみたらどうなるか。つくってみた。つくれない。SetStatusで64を設定しても0になってしまう。

属性値が64であることがイコール操作不可にすることなのかどうかはわからないけど、なにやら特別な設定がされているようだ。USB上のファイルシステムを直接いじっているのかな?そういえば、このソフトFATのみサポートって書いてあったっけ。

どうやってるんだろう。期待薄だが、プログラムの中身をちらっと覗いてみた。このソフト自体はUPXで圧縮されていて、いつも使っているUPXツールであっさり解凍はできた。が....関数名とかいっぱいでてきたけど、やっぱりバイナリ見ただけじゃ、わからん...