ウイルス対策ソフト(コンピュータウイルス対策基準ではワクチンと呼んでいる)の仕組みの概要を説明します。
ウイルス対策ソフトでは、ウイルスの検出率が高いこと、検出の処理が軽い(速度が速い、メモリなどの資源をあまり必要としない)ことが求められます。近年では新規ウイルスの伝染が早いので、未知ウイルスへの対応が重視されるようになりました。
それに応えるために、多様な仕組みが開発されています。多くのウイルス対策ソフトは、これらの仕組みを組み合わせています。
既存ファイルの感染検出
- コンペア法(比較法)
- 新規に受け取ったファイルがウイルスをもつのを発見するのではく、ウイルス感染していなかった既存のファイルが、その後、感染しているかどうかを発見する手段です。ウイルス感染以前のファイルと現在のファイルを比較して、異なっていればウイルスに感染したのではないかと疑います。
仕組みは簡単ですが、ウイルス感染以前のファイルを保管しておく必要があるし、比較するファイルが多くなると長時間かかります。それで、あらかじめ感染の恐れのあるファイルや重要なファイルを指定しておくのが普通です。
- チェックサム法/インテグリティチェック法
- コンペア法の一つです。感染以前のファイルの容量やハッシュ値を記録しておき、覚えがないのにそれらが変化していたら感染したと疑う方法です。以前のファイルの内部に立ち入らないので短時間でスキャンできます。
さらにこのファイルに「ディジタル署名」機能を付加することにより、原本作成後に改ざんされたかどいかを確認できます。
静的解析
検査するファイルのコードを解析することにより、検出する方法です。
パターンマッチング法
通常のウイルス対策ソフトの基本になっている方法です。新規のファイルを検査するので、既存ファイルとの比較は不要です。
パターンマッチング法は、既発見ウイルスの特徴パターン(シグニチャという)をデータベース化した(定義化した)定義ファイルを用いて、対象となるファイルに同一または類似しているシグニチャが存在したら、ウイルスに感染していると検出する方法です。効率的に高い検出率が得られることから広く利用されています。
定義ファイルに登録されていないパターンを持つウイルスは検出できません。それで、定義ファイルを更新せずに古いまま使っていると、最新のウイルスは検出できません。定義ファイルを最新版に保つために、多くのウイルス対策ソフトでは、自動的にオンライン更新する機能をもっています。
動的解析
感染しても他に影響を与えない環境(サンドボックスという)を設定し、怪しいファイルをサンドボックス上で動作させて、その挙動を監視・解析して検出する方法です。
- ビヘイビア法(ジェネリック法)
- 未知のパターンをもつウイルスを発見する方法です。実行しているプログラムをリアルタイムに監視し、不正な動作をする命令をモニタリングし、その命令がコールされると、その実行をブロッキングします。
正規のプログラムでもOSへのシステムコールやファイル更新などを行うため、正常な指令なのかウイルスなのかを見極めることが重要で、そのためのルールを定義したデータベースの整備と維持更新が必要になります。
ヒューリスティック法
ウイルス対策ソフトに任せるのではなく、対策担当者が疑わしいと判断したプログラムを解析する方法です。それを支援すつツールがあ、人間とツールが協力することからヒューリスティックといいます。
対象ファイルを分析することにより、実行動作を予測し、不正動作であるかどうかを確認する静的ヒューリスティックと、安全な環境を設定し、その環境で実際に動作させて検査する動的ヒューリスティックがあります。/p>