マカフィーやシマンテックなどのウィルス対策ソフトやSourceFireなどのIDS/IPS製品では異常検知を行う事によって、不正なトラフィックや悪意のあるコマンドを検知しています。異常検知には主にシグネチャ型とアノマリー型の2種類あり、以前はシグネチャ検知が主流でしたが、現在はシグネチャ検知とアノマリー検知を両方利用することによって効果的な検知を行います。
シグネチャ検知とアノマリー検知
シグネチャ検知は事前に「異常なパターン」を定義することが特徴ですが、逆にアノマリー検知の場合は「正常なパターン」を学習させることで、その「正常なパターン」から逸脱した動作を異常とみなす事が特徴です。
ウィルス対策ソフトでは毎日定義ファイル(DAT)が更新されます。この定義ファイルにはウィルスのシグネチャが定義されています。つまり、ウィルスの動作を定義してパターンマッチする動作に対してウィルスとみなすのです。この方法は既知のウィルスに対してはとても効果的ですが、未知のウィルスや亜種ウィルスに対しては効果的ではありません。なぜなら似たようなウィルスでも若干動作が違うとシグネチャが違ってくるからです。
そこで、アノマリー検知の登場です。アノマリー検知は事前に異常なデータを学習させる必要はなく、正常なデータ・動作のみを学習しておけば良いのです。そこから逸脱した動作をすればそれを異常とみなします。よって未知のウィルスや亜種にも対応できるのです。一方でアノマリー検知はフォルスポジティブの発生率が高いのでチューニングが必要となります。また、初期段階で取得した正常なデータの中に既にウィルスが紛れ込んでいたら意味がなくなってしまいます。ですので、アノマリー検知もある程度メンテナンスが必要となります。