ウイルス対策ソフトの仕組み
ネットワーク型ワームCodeRed II は、コンピュータのメモリ上でのみ動作するウイルスということを昨日説明しましたね。
メモリ上で動くウイルスがなぜ怖いか?
それは従来のウイルス対策ソフトでは検知できなかったからです。
それを知るためには、まずウイルス対策ソフトの仕組みについてお話します。
ウイルス対策ソフトは、ウイルスの特徴が書かれた情報(パターンファイル)をもとに、パターンファイルと実際のファイルを見比べることで、そのファイルがウイルスかどうかを判断します。
指名手配の犯人の写真と、人物を見比べてチェックしているようなイメージです。
じゃあ、どんなタイミングでファイルをチェックしているのか?
ファイルがハードディスクに保存されるとき、またはそのファイルを開こうとした時にチェックします。
ファイルが書き込まれるときや、ファイルが読みこまれるときには、ハードディスクへのアクセスが発生します。
ウイルス対策ソフトは、ハードディスクのアクセスを監視していて、アクセスがあった場合にファイルをチェックするわけです。
通常のメールで感染するウイルスや、ファイルに感染するウイルスは上記の方法で問題なく検出できるんですが、メモリ上で動作するウイルスは、ハードディスクへの書き込みを行わないために、ウイルス対策ソフトの監視の目をくぐり抜けてしまうのです。
ちなみにメモリというのは、仮のハードディスクのようなもので、電源がついている時だけ使えるものです。
ゲームで例えると、ロールプレイングゲームとかでセーブをしないでプレイしているようなイメージです。(ちょっと違うかな^^;)
CodeRed IIは、そういった性質を持っていたため、ウイルス対策ソフトが入っている環境でも感染してしまったケースが多かったみたいです。
このようなメモリ上で動作するウイルスで他に有名なのは「SQLスラマー」というウイルスです。
ただ、メモリというものは、電源がついているときだけ有効であるという性質上、PCを再起動するとCodeRed IIもSQLスラマーも消えてなくなってしまいます。
それで安心かというと、そうではなく、セキュリティホールがある状態でまた電源をつけると再度感染してしまうという堂々巡りになってしまいます。
ちなみに最近の主要なウイルス対策ソフトは、パーソナルファイアウォール機能などと組み合わせて、ファイルを作らないウイルスにも対応できるようになっているものが多いです。