ICDロゴ

ヒューリスティック・スキャン (heuristic scan)

最終更新日: 2006/02/06

 ウイルス対策ソフトウェアで採用されている、ウイルスの行動パターンを推論して検知する手法。ヒューリスティック・スキャンとは、「発見的方法による検知」という意味であり、人間が行うようなさまざまな試行錯誤を行ってウイルスを見つける。

 通常、ウイルス対策ソフトウェアは、ウイルス定義ファイル(パターン・ファイル)に記述されているウイルスごとのバイト・パターンとの比較によるパターン・マッチング方式で検知している。すでに明らかになっているウイルスのバイト・パターンとの照合であるため、ウイルスの誤認識が少なく、ウイルス名も判明する。しかし、ウイルス定義ファイルに登録されていない新規のウイルスは検知できないことになる。新しいウイルスの発見からウイルス定義ファイルの作成、ユーザーのウイルス定義ファイルの更新という一連の作業が完了しなければ、ウイルスが検知できないことから、この間にウイルスに感染してしまう危険性がある。

 そこでウイルスの挙動を検知するヒューリスティック・スキャンが導入されている。ヒューリスティック・スキャンでは、システム領域やDLLの書き換えなど、通常のプログラムが実行しないようなウイルス特有の挙動を検知することで、ウイルスを発見する。これによりウイルス定義ファイルに記述されていない未知のウイルスであっても、検知することが可能になる。一方でウイルス誤認の確率は、パターン・マッチング方式よりも高くなる。これはヒューリスティク・スキャンが「ウイルスと思われる挙動」を原理にして検知しているためだ。

 ヒューリスティック・スキャンの技術には、行動パターンの収集方法の違いによって、「スタティック・ヒューリスティック法」と「ダイナミック・ヒューリスティック法」の2種類がある。

●スタティック・ヒューリスティック法

 ウイルスが自分自身をコピーしたり、ファイルを置き換えたりする際のプログラム・コードをウイルス定義ファイルに登録しておき、そのコードとウイルス感染の疑いのあるファイルの行動パターンを比較することで、検知を行う。通常、単純な比較ではなく、行動パターンに重み付けを行い、一定の点数以上ならばウイルスとして警告するなどの工夫が行われている。

●ダイナミック・ヒューリスティック法

  Symantecが開発した検知手法である。ウイルスに感染したプログラムをメモリ上で仮想的に実行することで、その行動パターンを調べてウイルスかどうかの判断を行う。メモリ上でウイルスの挙動をチェックするため、実際の実行結果はユーザー画面に反映されず、バックグランドで行われる。また仮想的に実行することで高い確率でウイルスであるかどうかの検知が可能だとしている。

Copyright (C) 2000-2007 Digital Advantage Corp.

参考リンク

アイティメディアの提供サービス

キャリアアップ