1日に平均5万もの新種のコンピューターウイルスが生まれていると言われている現在において、セキュリティ対策ソフトは、さまざまな手法でコンピューターウイルスを検出し駆除してくれています。
- パターンマッチング
- ヒューリスティック
- 振る舞い検知 など
では、上に挙げた検出手法は、それぞれどのようにしてコンピューターウイルスを検出しているのか気になったので、自分なりに調べてみました。
目次
パターンマッチング法
パターンマッチング法は、ウィルス対策ソフトウェアが登場したころから使われ続けている最も一般的な手法で、不正プログラムの特徴に関する情報を蓄積したデータベース(「パターンファイル」や「定義ファイル」などと呼ばれます)を参照して、不正プログラムを検出します。
パターンファイルには「この不正プログラムを発見するためには、ファイルのどの部分にどのようなコードを書かれているか」という情報が含まれており、ファイルの中に同様のコードが発見された場合、そのファイルを「不正プログラム」と判断します。
パターンマッチング法の課題
一昔前のウィルス対策ソフトウェアでは、不正プログラムの検出方式として「パターンマッチング」が主流でしたが、1日に平均5万もの新種のマルウェアが生まれていると言われている現在においては、これに追いつくようパターンファイルを作ることはとても大変です。
さらに、感染するたびに複雑に姿形を変えるような不正プログラムや、既知の不正プログラムとは全く異なる新種などに対しては、バターンマッチング法で検出すること自体が非常に難しくなってきています。
また、ウィルス対策ソフトウェア自身でも、パターンファイルが肥大化してきていることにより、新しいパターンファイルの配布時にネットワークに負荷がかかったり、ウィルス対策ソフトウェアが使用するメモリ量が大きくなり、マシンの動作に影響を及ぼすことになったりすること(マシンの動作が重くなる)が課題となっています。
ヒューリスティック法
従来のパターンマッチング法の課題を補う方法として開発されたのが「ヒューリスティック法」という新たな検出技術です。
ヒューリスティック法では、不正プログラムが行うような一連の動作を検索して、不正プログラムかどうかを判断することで、近年急増している未知の脅威を検出できる汎用性があります。
また、ヒューリスティック法には、単純にファイルの中身を見て判別する方法と、安全な仮想空間(サンドボックス)を作成し、そこでファイルを実行させることで不正かどうかを判断する方法があります。
ヒューリスティック法の課題
ヒューリスティック法で課題となるのが「不正プログラムが行うような一連の動作」をどのように判断するかです。
不正プログラムが行うような一連の動作を明確に定義するのは難しいようで、正規のアプリケーションがウイルスとして誤検出されることがあります。
ただ、誤検出の頻度はヒューリスティック検出機能がウイルス対策ソフトウェアに搭載されだした頃に比べれば、だいぶ減ったのではないかと思います。
振る舞い検出(ビヘイビア法)
最近では、ヒューリスティック検出をさらに進めた検出方法として、実環境でのプログラムの挙動を見てウイルスを検出する「振る舞い検知」という検出技術が出てきています。
さらにヒューリスティック法や、振る舞い検出では、不正プログラムの動作の特徴を記述したデータをローカルマシン上ではなくクラウド上に置くことで、よりリアルタイムに不正プログラムを判定することができるようになってきています。
あとがき
セキュリティ対策ソフトがどのようにしてコンピューターウイルスを検出しているかは、利用者はあまり気にする必要はありませんが、セキュリティ対策ソフトが適切に動作してくれるよう、常に最新の状態に更新するのは忘れずに行いましょう。