情報セキュリティにはさまざまな専門用語がありますが、その多くは「詳しくわからない」「他人に説明できるほどではない」という方が多いのではないでしょうか。そこで、マイナビニュースでは、カスペルスキーでエヴァンジェリストを務める前田氏に寄稿いただき、"ググってもわからない"セキュリティ用語を一から解説します。第1回のテーマは「アンチウイルス」です。

著者プロフィール

前田 典彦(まえだ のりひこ)
カスペルスキー 情報セキュリティラボ チーフセキュリティ
エヴァンゲリスト

マルウェアを中心としたインターネット上の様々な脅威解析調査の結果をもとにし、講演や執筆活動を中心とした情報セキュリティ普及啓発活動に従事

そもそもアンチウイルスとは?

アンチウイルス(ウイルス対策)ソフトウェアは、企業や団体で導入していないところを探すほうが難しいほど、セキュリティ対策としては浸透しているものです。それほどまでに一般化したこともあり「ウイルスの侵入を防ぐためのソフトウェア」という漠然としたイメージが定着していますが、実際にどのような仕組みになっているのか、調査・確認をする人は、それほど多くないと思います。

そこで今回は、アンチウイルス・ソフトウェアの一般的な動作とマルウェアの検出ロジックを解説します。

どうやってマルウェアを検出するのか?

アンチウイルス・ソフトウェアが悪性のプログラムコードやファイル(本稿では総称してマルウェアと言います)を検出する手法は、単一かつ画一ではありません。多くの製品の場合、複数の検知機能を組み合わせることでそれを実現しています。

その代表格が、伝統的な手法であるパターンマッチングです。あるコードに対して、それと一致する定義ファイルを作成し、各クライアント端末に配布します。クライアント端末内に一致するコードがあれば、マルウェアと判定するのです。

この手法は、攻撃者がマルウェアを作成することに対して常に"後追い"となるので、一致する定義ファイルを作成するまでは検知できません。そのせいか、この点だけを強調して「アンチウイルスでは検知できないマルウェアが増えている」「ウイルス対策は時代遅れ」などの発言を見聞きする機会が増えている印象があります。

ですが、パターンマッチングのみでマルウェアを検知しようとする製品はほとんどなく、各社の製品はこれ以外にも複数の検知機能を実装しています。

ヒューリスティック検知とは?

パターンマッチングに続き、その弱点を補完するものとして「ヒューリスティック検知」という手法が各社で開発され、実装されていますが、それも10年以上前のこととなっています。

出始めの頃は、パターンマッチングに比べて誤検出(悪性ではないものをマルウェアとして検出すること)が発生しやすい問題もありましたが、各社の開発が進むにつれ、現在の検知精度は非常に高いものとなっています。

ここで注意すべきことがあります。

ヒューリスティックという用語は、開発各社によって微妙に意味合いが異なり、同じような名称の機能であっても、実はその手法が技術的に異なることもあるのです。パターンマッチングが「完全一致検索」だとします。これに対して「あいまい検索」のような手法もヒューリスティックの一種ですし、「ふるまい検出型(プログラムの動作あるいは動作の結果を判定してマルウェア検知を行う機能)」の手法をヒューリスティックと呼ぶ製品もあります。

もともと、ヒューリスティック(heuristic)という用語自体が、コンピュータやプログラムの世界では「推測、あるいは経験則的に最適解を選択する」という意味合いですので、こうした状況もやむを得ないのかもしれません。

ここで筆者が言いたいことは、ヒューリスティック検知という手法は、製品によって差異があるので、機能を比較する際に、同一視することは注意が必要だということです。

性能差はどこで生まれる?

上記以外にも、アンチウイルス・ソフトウェアには、マルウェアを検知するためにさまざまな手法が採用されています。

代表例としては、プログラムによる通信を判別するファイアウォール機能や、Web閲覧の内容を精査するWebアンチウイルス機能、メールに特化したメール・アンチウイルス機能、ルートキット検知に特化した機能などですが、ここでは説明しきれないほどの多くの検知機能が各社で開発されています。

また、各社から製品として出荷される際には、これら多くの機能が組み合わさった形で1つの製品に内包されていることもあれば、機能ごとにある程度切り出された形で製品化されているものもあります。そのうえ、初期状態ですべての機能が有効化されているとは限りません。この辺りは、完全にメーカー各社に依存する世界です。さらに言えば、マルウェア検知の中心機構となる「エンジン」ですが、他社が開発したものを複数搭載する製品も存在します。

ただ、機能の豊富さやエンジンを複数搭載することが、単純比例的にアンチウイルス・ソフトウェアの検知力を高めるとは限りません。それぞれの機能が本来の目的を果たしうる"質"を持ち、それらが一体となり、初めて「あらゆる脅威に対して多重防御を実現」できるのです。

結論としては、マルウェアの侵入経路や攻撃手法に合わせて、あるいはそれを先取りする形で、各社は検知機能を開発し、実装しています。

各社製品のマルウェア検知能力は、これら機能の組み合わせで成立しており、当然のことながら、メーカー各社は検知の能力と精度を高めるために、技術力・開発力でしのぎを削っています。

加えて、検知能力の原動力となるマルウェアの収集力や解析能力、攻撃者の心理から脅威のトレンドまでを調査する研究力が、製品の性能を大きく左右することも忘れてはなりません。