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ツールであっさり解凍はできた。が....関数名とかいっぱいでてきたけど、やっぱりバイナリ見ただけじゃ、わからん...