Web教材一覧情報倫理・セキュリティ

ウイルス対策ソフトの仕組み

キーワード

コンペア法、チェックサム法、パターンマッチング法、シグニチャ、定義ファイル、ビヘイビアブロッキング法(ジェネリック法)、ヒューリスティック法


ウイルス対策ソフト(コンピュータウイルス対策基準ではワクチンと呼んでいる)の仕組みの概要を説明します。
 ウイルス対策ソフトでは、ウイルスの検出率が高いこと、検出の処理が軽い(速度が速い、メモリなどの資源をあまり必要としない)ことが求められます。近年では新規ウイルスの伝染が早いので、未知ウイルスへの対応が重視されるようになりました。
 それに応えるために、多様な仕組みが開発されています。多くのウイルス対策ソフトは、これらの仕組みを組み合わせています。

コンペア法(比較法)
新規に受け取ったファイルがウイルスをもつのを発見するのではく、ウイルス感染していなかった既存のファイルが、その後、感染しているかどうかを発見する手段です。ウイルス感染以前のファイルと現在のファイルを比較して、異なっていればウイルスに感染したのではないかと疑います。
 仕組みは簡単ですが、ウイルス感染以前のファイルを保管しておく必要があるし、比較するファイルが多くなると長時間かかります。それで、あらかじめ感染の恐れのあるファイルや重要なファイルを指定しておくのが普通です。
 コンペア法をさらに簡便にしたものにチェックサム法があります。感染以前のファイルの容量やハッシュ値を記録しておき、覚えがないのにそれらが変化していたら感染したと疑う方法です。以前のファイルの内部に立ち入らないので短時間でスキャンできます。しかし、ウイルス作者は容量を変化させない、ハッシュ値を変更させる手段などを知っているので、厳格な検出はできません。
 コンペア法やチェックサム法だけでウイルス感染だと決めつけることはできませんが、さらに他の方法で検査するための対象ファイルを絞り込むことができます。通常のウイルス対策ソフトで、これらの方法だけをもつのは稀です。
パターンマッチング法
通常のウイルス対策ソフトの基本になっている方法です。新規のファイルを検査するので、既存ファイルとの比較は不要です。
 パターンマッチング法は、既発見ウイルスの特徴パターン(シグニチャという)をデータベース化した(定義化した)定義ファイルを用いて、対象となるファイルに同一または類似しているシグニチャが存在したら、ウイルスに感染していると検出する方法です。効率的に高い検出率が得られることから広く利用されています。
 定義ファイルに登録されていないパターンを持つウイルスは検出できません。それで、定義ファイルを更新せずに古いまま使っていると、最新のウイルスは検出できません。定義ファイルを最新版に保つために、多くのウイルス対策ソフトでは、自動的にオンライン更新する機能をもっています。
ビヘイビアブロッキング法(ジェネリック法)
未知のパターンをもつウイルスを発見する方法です。実行しているプログラムをリアルタイムに監視し、不正な動作をする命令をモニタリングし、その命令がコールされると、その実行をブロッキングします。
 正規のプログラムでもOSへのシステムコールやファイル更新などを行うため、正常な指令なのかウイルスなのかを見極めることが重要で、そのためのルールを定義したデータベースの整備と維持更新が必要になります。
ヒューリスティック法
ウイルス対策ソフトに任せるのではなく、対策担当者が疑わしいと判断したプログラムを、安全な環境で検査する方法です。それを支援すつツールがあります。人間とツールが協力することからヒューリスティックといいます。
 対象ファイルを分析することにより、実行動作を予測し、不正動作であるかどうかを確認する静的ヒューリスティックと、安全な環境を設定し、その環境で実際に動作させて検査する動的ヒューリスティックがあります。