ウイルス対策ソフトの仕組み
前回ちょっと説明しましたが、ウイルス対策ソフトがどのようにしてウイルスを発見しているかについて説明しますね。
基本的には、「シグネチャ」「パターンファイル」といった、ウイルスの情報が書かれたリストがあります。
このリストと、ディスク上のファイルを付け合せて、一致したらウイルスであるとして削除などの処理を行います。
では、そのチェックはいつやるのかというと、ファイルがディスクに書き込まれたとき(またはファイルにアクセスした時)です。
これがリアルタイム検索ですね。
これとは別に、手動検索やスケジュール検索は、ディスク全体のファイルを強制的に全て(もしくは選択したフォルダ)チェックを行うものです。
リアルタイム検索については、ファイルが書き込み、読み出しされる際、常にチェックしていますので安全性が高いのですが、欠点もあります。
実は、ファイルを作成しないタイプのウイルスであった場合には、発見できないんですね。
それはつまり、いきなりメモリ上で動作をするウイルスとなります。
CodeRedやSQLスラマーのようなワーム系のウイルスがこれに該当しますね。
メール系のウイルスであれば、普通ウイルスが実行されるためには、添付ファイルをディスクに書き出した上で、実行される必要があります。
これに対して、CodeRedやSQLスラマーは、セキュリティーホールを狙って、直接メモリ上で動作をします。
そうすると、ディスクへの書き出しが発生しないため、ウイルス対策ソフトでは検出できないというわけです。
こういった欠点は、パーソナルファイアウォール(PFW)やIDSといった機能で補います。
PFWで攻撃してくるポート番号自体を止めてしまったり、IDS(IDP)の機能で、通信データ(パケット)の中身を見て、攻撃パケットであればブロックします。
最近のウイルス対策ソフトは、PFWの機能やIDSの機能も搭載して、従来のウイルス検出技術と組み合わせていますね。