米Microsoft社が追求する利便性がウイルス作者に工夫の余地を与えている。「ユーザーにとって便利な初期設定や機能は,ウイルス*1にとっても便利」(日本コンピュータセキュリティリサーチ コンピュータウイルス主席研究員の遠藤基氏)であるからだ。
ウイルスに利用されないように設計していても,頻繁に見つかるセキュリティ・ホールが原因で,本来はユーザーのために用意した機能がウイルスに利用されてしまう。それどころか「ユーザーはほとんど使わないのに,ウイルスだけが使うという機能も少なくない」(遠藤氏)。
ウイルス作者は,ウイルスに活用できる初期設定や機能,セキュリティ・ホールを見逃さない。今までウイルスはどんな風にWindowsの機能を使ってきたのだろうか。具体的に見ていこう。
ウイルスをフォルダに見せかける
Windowsはファイルの種類をアイコンで表す。ユーザーが直感的にファイルの内容を識別できるようにするためだ。ファイルの拡張子を表示する代わりに,拡張子からそのファイル種類を判断し,その種類に対応したアイコンを表示する*2。
ファイルの作者がアイコンを設定することもできる。ファイルが実行形式ファイルやダイナミック・リンク・ライブラリといったプログラム・ファイルの場合には,ファイルにアイコンのデータを含められる*3。この場合には,Windowsに登録されているアイコンではなく,ファイルに含まれるアイコンが優先的に表示される。拡張子から判断するだけでは,すべてのアプリケーション・ソフトが実行形式ファイル(exe)のアイコンになってしまい,分かりにくくなるからだ。
この仕様により,アプリケーションごとに特定のアイコンが表示されるので,ユーザーはひと目で内容が分かる。例えば,Microsoft Word(Winword.exe)では「W」のアイコンが,Excel(Excel.exe)では「X」のアイコンが表示される。
ただしこの仕組みは悪用できる。実行形式ファイルを他のファイル種類に見せかけることができるのだ。この手口を使うのが,2003年8月以降流行している「Antinny」ウイルスである。Antinnyは実行形式ファイルだが,Windowsはフォルダ・アイコンとして表示してしまう(図1[拡大表示])。感染の手順は以下の通りである。
Antinnyは,Anntinyに感染したパソコンのアップロード・フォルダにアーカイブ・ファイルとして潜む。
Winny(ウィニー)は,文字列を指定すると,ほかのWinnyユーザーのパソコンのアップロード・フォルダを検索して,その文字列が含まれるファイルを自動的にダウンロードする。Antinnyのアーカイブ・ファイル名に含まれる文字列(図1では「グラビアアイドル」)で検索しているWinnyユーザーがいれば,そのユーザーのパソコンのダウンロード・フォルダに,Antinnyのアーカイブ・ファイルが自動的にコピーされる。
ダウンロードしたユーザーがこのファイルを展開すると,一つの画像ファイルと一つのフォルダ・アイコンが表示される。「このフォルダの中にはもっとたくさんの画像ファイルがあるのだろう」と期待してクリックすると,Antinnyが実行されて被害に遭う。
Antinnyが実行されると,Winnyのキャッシュ・フォルダを削除したり,Windowsの起動時にAntinnyを実行するようレジストリを変更したりする。さらに,そのパソコンに同様の罠を仕掛ける。具体的には,Antinny自身を含むアーカイブ・ファイルを作成して,アップロード・フォルダにコピーする。
このとき,Antinnyはファイル名を工夫する。一定ではないが,全くのランダムではない。Antinnyは検索されそうな文字列をいくつか持っている。その中からランダムに選択した文字列をファイル名に使用する。例えば,「グラビアアイドル」「アニメ」「ゲーム」などを,候補の文字列として持っている。Antinnyが実行されたパソコンのダウンロード・フォルダに置かれているファイルの名前を使用する場合もある。
アイコンを偽装して,ユーザーに実行させようとするウイルスはAntinnyが初めてではない。過去にも多数存在する(表[拡大表示])。
テキストに見まがう「LoveLetter」
2000年から2001年にかけて流行した,VBScriptで記述されたウイルスも,拡張子が表示されないという初期設定が被害を大きくした。代表例が,2000年5月に出現した「LoveLetter」ウイルスである。LoveLetterウイルスの実体は,ファイル名が「LOVE-LETTER-FOR-YOU.TXT.vbs」のVBScriptファイルである(図2[拡大表示])。vbsは登録されている拡張子なので画面には表示されない。「LOVE-LETTER-FOR-YOU.TXT」と表示され,実行しても問題がないテキスト・ファイルのように見える。この手法は「二重拡張子」と呼ばれ,VBScriptで書かれたウイルスの多くが利用している。
二重拡張子を用いるVBScriptウイルスは,Antinnyのような実行形式ファイルではないので,アイコンを偽装できない。VBScriptのアイコンがそのまま表示される。ただし,VBScriptのアイコンはテキスト・ファイルを連想させるものなので,ユーザーは誤解しやすい。
VBScriptウイルスはテキスト・エディタで編集できるので,容易に変種を作ることができる。実際,LoveLetterのオリジナルが出現してから1カ月足らずで20種類を超える変種が出現し,現在では100種類を超えている*4。
VBScriptウイルスに感染するのはWindows 98以降である。Windows 98からスクリプトの実行環境「WSH(Windows Scripting Host)」を標準装備したためだ。WSHは初期設定で有効になっていて,VBScriptファイル(.vbs)やJScriptファイル(.js)と関連付けられている。Windows上でこれらのスクリプト・ファイルをダブルクリックすれば,WSHによりスクリプトの内容が解釈される。スクリプトからは,レジストリの変更やファイルの操作,アプリケーションの実行など,あらゆる操作を行える。