パターンマッチング・ヒューリスティック・振る舞い検知とは

セキュリティ対策として、パソコンには必ずウイルス対策ソフトを導入して、常に最新のパターンファイルに更新しておくこと、なんてよく言われますが、1日に平均5万もの新種のマルウェアが生まれていると言われている現在において、ウイルス対策ソフトはどのようにしてコンピューターウィルスを検出しているのか気になったので、検出技術について自分なりに調べてまとめてみました。

パターンマッチング法

パターンマッチング法は、ウィルス対策ソフトウェアが登場したころから使われ続けている最も一般的な手法で、不正プログラムの特徴に関する情報を蓄積したデータベース(「パターンファイル」や「定義ファイル」などと呼ばれます)を参照して、不正プログラムを検出します。パターンファイルには「この不正プログラムを発見するためには、ファイルのどの部分にどのようなコードを書かれているか」という情報が含まれており、ファイルの中に同様のコードが発見された場合、そのファイルを「不正プログラム」と判断します。

パターンマッチング法の課題

一昔前のウィルス対策ソフトウェアでは、不正プログラムの検出方式として「パターンマッチング」が主流でしたが、1日に平均5万もの新種のマルウェアが生まれていると言われている現在においては、これに追いつくようパターンファイルを作ることはとても大変です。

さらに、感染するたびに複雑に姿形を変えるような不正プログラムや、既知の不正プログラムの特徴を有しない新種などに対しては、バターンマッチング法で検出すること自体が非常に難しくなってきています。

また、ウィルス対策ソフトウェア自身でも、パターンファイルが肥大化してきていることにより、新しいパターンファイルの配布時にネットワークに負荷がかかったり、ウィルス対策ソフトウェアが使用するメモリ量が大きくなり、マシンの動作に影響を及ぼすことになったりすること(マシンの動作が重くなる)が課題となっています。

ヒューリスティック法

従来のパターンマッチング法の課題を補う方法として開発されたのが「ヒューリスティック法」という新たな検出技術です。

ヒューリスティック法では、不正プログラムが行うような一連の動作を検索して、不正プログラムかどうかを判断します。ヒューリスティック法には、単純にファイルの中身を見て判別する方法と、安全な仮想空間(サンドボックス)を作成し、そこでファイルを実行させることで不正かどうかを判断する方法があります。

ヒューリスティック法の課題

ヒューリスティック法で課題となるのは「不正プログラムが行うような一連の動作」をどのように判断するかです。ヒューリスティック法は、近年急増している未知の脅威を検出できる汎用性がある半面、誤検出のリスクがあります。よくあるのが、正規のアプリケーションソフトウェアが、誤って不正プログラムと判定されてしまったりすることです。

ただ、これについてはヒューリスティック検出機能がウイルス対策ソフトウェアに搭載されだした頃に比べれば、だいぶ誤検出は減ったのではないかと思います。

振る舞い検出(ビヘイビア法)

最近では、ヒューリスティック検出をさらに進めた検出方法として、実環境でのプログラムの挙動を見てウイルスを検出する「振る舞い検知」という検出技術が出てきています。

さらにヒューリスティック法や、振る舞い検出では、不正プログラムの動作の特徴を記述したデータをローカルマシン上ではなくクラウド上に置くことで、よりリアルタイムに不正プログラムを判定することができるようになってきています。

まとめ

セキュリティ対策はどこまで行ってもイタチごっこですが「パソコンには必ずウイルス対策ソフトを導入して、常に最新のパターンファイルに更新しておくこと」「ソフトウェアは常に最新に保つ」などのセキュリティ対策の基本は、忘れずに実施しましょう。