ウイルス検出の手法の一種で、プログラムの挙動を分析して悪意あるプログラムかを判定する技術
ヒューリスティック(英:heuristic)とは、元来、「正解に近い結果が得られる近似アルゴリズム」を指す。「正しい解を出す」のではなく、「正解に近い結果」を求める発見的な手法ということができる。
アンチウイルス製品(ウイルス対策ソフト)におけるヒューリスティックは、「プログラムの動作を検証してマルウェアに特徴的な挙動が見られるか否かでウイルスを判定、検出する機能」を意味する。
従来のアンチウイルス製品では、マルウェアのハッシュ値などを「シグネチャ(ウイルス定義)」としてあらかじめウイルス定義データベースに登録し、検査対象のファイルと照合してウイルスと判定する。「パターンマッチング」と呼ばれるこの手法には誤検出が少ないという利点がある一方、ウイルス定義データベースに登録されていない新種や未知のウイルスは検出できないという欠陥がある。
またアンチウイルスベンダーが入手した検体からウイルス定義データベースを作成し、エンドポイントに反映させるまではウイルス対策製品で検出できず、その間に感染する危険が指摘されている。
一方、ヒューリスティックによる検出は、ウイルス定義データベースではなくプログラムの挙動などから判定する。通常のプログラムでは見られない不審な挙動や、マルウェアにありがちな挙動からマルウェアと判定するため、検出を逃れるために大量に作成された亜種についても検出できる。
ただし、正規のプログラムをウイルスと誤認することもあるため、利用するには誤検出対策などのノウハウを要する。パターンマッチングとヒューリスティックを組み合わせて利用することで、互いの欠陥を補完し、検出率を上げるといった対策も取られている。
用途
未知のウイルスからの防御
大量に作成され、シグネチャが用意されていないマルウェアの亜種などからシステムを防御する。
ポリモーフィック型ウイルスからの防御
感染して自己を複製するたびに、自身をランダムな暗号化コードで書き換えて暗号化するポリモーフィック型ウイルスから防御する。