2006年11月30日 - 古い定義ファイル・エンジンで、ウイルスはどれだけ検出できるのか - アンチウイルスソフト評価

 ウイルス対策ソフトの性能評価と比較は、どのように行うべきなのだろうか。
 日経パソコンにてアンチウイルスソフトを比較する記事を端とした話題に興味があるものの、微妙に納得がいかない。

アンチウイルスソフトがウイルスを検出する手法


 本題に入る前にざっと、アンチウイルスソフトがウイルスを検出する3つの大別された手法を掲載する。

  1. パターンマッチング

    • ウイルス定義ファイル(シグネチャファイル)を元に検体を比較し、既知のウイルスを検出する
    • 当然ながら、未知のウイルスには対応できない

  2. ビヘイビアブロッキング(Behavior Blocking)

    • 既に起動中のプログラムが変な振舞い(ビヘイビア)を行ったらば検出する
    • 未知のウイルスにも対応できそうなものの、某メーカーの人によれば「大した事ない」なのだそうだ。

  3. ヒューリスティックスキャン

    • プログラムが起動する前の段階で、ウイルスっぽい挙動を検出して対応する。
    • 未知のウイルスに対応できる機能である、とされている。


 (この手のより詳しい話は、ウイルス対策用語集(Tef-room)あたりか、未知ウイルス検出技術に関する調査(IPA)中の調査報告書でも読んでもらいたい。)

ヒューリスティックスキャンと未知のウイルスの検出力


 検体次第でヒューリスティックスキャンによる検出率は変わってしまうだろう、検体が発見された時期によらず。
 メーカーの人の受け売りなんですが、変なパッカーを使いヒューリスティックエンジンによりUnapckできないよう細工した検体は検出が難しく。アンチウイルスソフトによる検出は、実際に踏んで実行する際に常駐スキャン機能でやっと検出できるとか。

 また「どうでもいい下らない機能」のマルウェア、例えば「悪質な詐欺ポップアップを表示するのみのアドウェア」ではどうなんだろうか。アンチウイルスソフトは文章を一々読んで判断しないから、詐欺的内容なのかもしくは単に「インストールありがとう!」なのか判別できないし、そんな新手のアドウェアをヒューリスティックスキャンで検出しろと言っても無理があるような気がする。
 ちなみにワンクリウェアの場合、abcdefさんの解説によれば既存のワンクリウェアをPackしなおして頻繁に配布されているそうなんだけど、NOD32など極めて一部の製品でなければ検出してくれなくなるそうな。

 ヒューリスティックスキャンの設定をデフォルトのままで試すのか、それとも最も効果的な(だがパソコンが重くなる)設定にするのかもまた、気になる点だ。
 一例としてNorton AntiVirus 2006のヒューリスティックスキャン機能であるBloodHoundは、デフォルトでは「中」である。

 大変気にかかるんですが、オンデマンドスキャン(手動で個別のファイル・ディレクトリを指定したスキャン)とオンアクセススキャン(あるファイルを実行した際の自動的スキャン)では、検出力が違ったりはしないんだろうか?
 興味深いですね。

ウイルス対策ソフト性能比較の記事


 日経パソコン編集長の藤田憲治氏がアンチウイルスソフトの性能比較記事に関していつの時代も、真実はひとつだけ(2006年11月14日)(雑誌づくりの舞台裏)なる記事を掲載し、これに対して園田道夫氏がウイルス対策ソフトウエアの性能比較記事にもの申す!(前編)(2006年11月22日)(蔵出しセキュリティ)と反論し、盛り上がっているらしい。
 話は未知のウイルス検体を入手しなければなどと、面白い方向になっているのだが。

パターンファイル作成にかかる時間と、パターンファイルで対応されているのか否か



お蔵入りしたテスト企画
 ウイルス検出の「性能」を高い精度で測定する場合、既知のウイルスに対するテストだけでは不十分です。実際には、(1)新種のウイルスが出現してから何時間後にパターンファイルを配布できるのか、(2)未知のウイルスに対しての防御策を持っているのか、などもテストしなくてはならないでしょう。
 まず、「(1)パターンファイル作成にかかる時間」についてですが、これは過去のデータから導くことができないか検討しました。
 具体的には、数百種類のウイルスを選び、それらのウイルスが発見された日時と、対策ソフトメーカーがそのウイルスに対するパターンファイルの配布を開始した日時をすべて洗い出そうとしたのです。そこから、数百種類の検体に対するメーカーごとの作成時間を算出でき、対策メーカーが持つウイルス分析能力、パターンファイル作成能力を定量的に計測できるのではと考えたのです。 しかし、これは時間的な制約で断念。
 別の方法として、テスト期間中に新種のウイルスが出現するのを待って、そこから「よーい!ドン」でパターンファイルが配布されるのを計測しようとも考えたのですが、この方法だと「そのウイルスに対してだけ、たまたま対応が速かった・遅れた」という結果になってしまうのでは、と危惧しました。
 ご意見をいただいたので、続・ウイルス企画です(2006年11月28日)(雑誌づくりの舞台裏)


 どうも話の趣旨が掴めず、かなり長い時間じっくりと考え込んでしまったのだが。結局藤田氏が何を言いたいのかよく理解できないのだ。
 藤田氏は、パターンファイルが作成されるまでの時間のみで、アンチウイルスソフトの性能を一面として比較できると考えているんだろうか。
 それは違う。対応されるまでの時間もともかく、「対応されるのか否か」まで含めて考えるべきだ。

 パターンマッチングによるウイルス検出においては、ウイルス定義ファイル(シグネチャファイル)リリースまでの時間は、アンチウイルスソフトウェアの性能と言うよりもむしろ、メーカー側の情報収集力や技術力に依存するのだろう。
 だがあるマルウェアに対応しているのか否かについては、マイナーなものであれば事情が多少異なる。
 極めて限定的な感染例(地域や感染数など)しか報告されていないようなマルウェアの場合、ユーザーよりの検体提出に依存する部分が大きい。一例として韓国のネットゲームユーザーを狙うマルウェアの検出率は、韓国に拠点がある・韓国国内で販売されているソフトウェアメーカーが一歩リードすることとなるだろう。
 更には「あー、そんなマイナーなものはいいや、放置」とされてしまう場合もあるだろう、稀には。

 例として適切か否かはよくわからないのだが。ほとんど日本国内のみで利用されているファイル交換ソフト経由で広まったマルウェアに対するサポートにて、日本で販売されている・日本国内で多くのユーザーを既に獲得しているメーカーのアンチウイルスソフトウェアがいち早く対応するとしたらば、当然なのではなかろうか。

 「パターンファイル作成にかかる時間」を比較するならば、ある程度の数以上の感染例があるようなウイルス、例えばマスメーリングにより拡散したものならば、メーカーの内幕をあれこれと想像できる。
 だけども「マイナーなマルウェアにウイルス定義ファイル(シグネチャファイル)で対応できるか否か」をソフトウェアの性能比較として持ち出すのは、個別のアンチウイルスソフトウェアが利用されている背景を考慮しなければならない。

 あと、一言。
 WildListにてIn The Wild(ItW:The WildList Organization Internationalがリスト化した、実際にネット上にて悪さをしているウイルス)として扱っているウイルスを検出できないのは、論外だ。
 In The Wildなウイルスに対して、パターンファイルにてほとんど対応できていないようなメーカーの製品は、不良品と言い切っても過言ではない。
 (違いますか?)

未知ウイルスへの検出力


 園田道夫氏はブログ中にて、このように記載した。「振る舞い検知」と記載されたのでビヘイビアブロッキングなのかと一瞬考えたのだが、ヒューリスティックスキャンを含めた表現なのだろう、多分。

 最近、データベースだけに頼らず、そのファイルの「振る舞い」を見て判定するソフトもありますが、メーカー自身が言うほど検出精度が高くないのが現状なのではないでしょうか。藤田さん、むしろこの「振る舞い検知」の精度を含めて性能比較するとおもしろいと思うのですが、いかがですか?
 ウイルス対策ソフトウエアの性能比較記事にもの申す!(前編)(2006年11月22日)(蔵出しセキュリティ)

 園田氏のブログに対する藤田憲治のコメントは、以下のようなものである。

ウイルスを募集するの?
 「(2)未知のウイルスに対する防御策」に対しては、そもそも効果的なテスト方法を導き出すことができませんでした。壁として立ちはだかったのは、未知のウイルスをどうやって入手するのか、という点です。「ウイルス募集!」と雑誌に掲載するわけにもいきません。
 ご意見をいただいたので、続・ウイルス企画です(2006年11月28日)(雑誌づくりの舞台裏)


 メーカーより過去の定義ファイルを個別に入手してテストすればいいだけの話のように最初は考えたものの、シグニチャが対応しているのかヒューリスティックスキャンにより検出されたのかがとっさにはわからないような気がするし、古いウイルスの変種が新たに発生したとしても過去のシグネチャで検出できる場合もあるだろう。

 セキュリティホールmemoの小島氏は、このような提案をしている。これならば日経パソコンの編集部でも実行が可能ですね、記事にするまでに時間がかかりすぎるのも難儀ですが、「間違い」はそれほど無いだろう。

 こんな方法はどうでしょう。
 1.パターンファイルを最新にし、電源 OFF。ネットワークをひっこぬく。
 2.半年後、その時点の wildlist ItW と独自サンプルで、パターンファイルを更新しないまま試す。
 時間がネックですけど。
 セキュリティホールmemo


 最近体験版のバージョンはどれだけ新しいのかとの話題に凝っており、いっそ各社の体験版ファイル・もしくは店頭で並ぶパッケージ製品をアンインストール直後でアップデートせずに比較すれば面白いだろうと考えたものの、各社それぞれで最終更新日が異なるために、フェアではないような気がする。
 小島氏が掲載したような手法は、その点で公平なのだろう。

パターンマッチングとヒューリスティックスキャンいずれかのみを評価し、製品の性能を比較するべきなのか?


 ヒューリスティックスキャンにて未知のウイルスなりマルウェアを検出できるか否かのみが、アンチウイルスソフトウェアの性能を評価する尺度となるんだろうか?
 いや、違うだろう。

 ヒューリスティックスキャン機能が十分で無い製品であったとしても、シグニチャベースでの対応が迅速なメーカーはどうなんだろうか。
 「数ヶ月前の定義ファイル・エンジン」でのスキャン結果は、壊滅的に低くなるような予感はする。
 だが実際に「正しく・常に最新の状態を保つように運用」していれば、それはそれで評価に値するべきなのではないだろうか。

 古い定義ファイルでのアンチウイルスソフト性能比較について、フォーティネットジャパンの中田秋穂氏による興味深い記事がある。AV-Test.orgの元記事はどれなのかわからなかったのだが、一応紹介。
 このような方法であれば、パターンマッチングとヒューリスティックスキャンそれぞれを相応に評価できるような気がするものの、得られた結果をどのように判断すべきなのかは配慮が必要だろう。

 また、古い定義ファイルで新しいウイルスに対応できるかどうかという調査もAV-Test.orgが実施している。調査は2004年5月に実施され、利用したのは2004年2月時点の定義ファイルとウイルス対策エンジンだ。73種のin the Wildなウイルスが対象で、ほとんどのベンダでは検出率0%だった。比較的多く検出したのは、NOD32が24種、Pandaが12種、McAfeeが11種であった。
 意外に知らないコンピュータウイルスのミステリ(2005年1月21日)(@IT)


 たとえば、最近のウイルス対策製品の多くは“未知のウイルスも検出できる機能”を売りにしている。しかしながら、AV-Comparativesが行っているプロアクティブテストの結果を見れば、その機能は必ずしも十分とは言いがたい。このテストは、3カ月前の定義ファイルを用い、現在出回っているウイルスをどのくらい検出できるかを測定するものだが、検出率は高くて30%、ほとんどの製品では数%。中にはまったく検出できない製品もあるといった結果だ。
 ウイルス対策に近道なし、基本は一にも二にも「教育」(2005年1月20日)(ITmedia)


 どこ宛てとは書かないが、かなり引っかかりを感じる点が一つあるのだ。
 古い定義ファイル・エンジンによる検証結果は、単純に「性能比較」と表記せずに、「未知のウイルスを検出する性能の比較」と断りを入れるべきだ。さもないと消費者の誤解を招くのではなかろうか。


この記事へのトラックバック
「悪質プログラムは仮想マシンを回避する」,商用ツールを利用するケースも(IT Pro、11月20日)セキュリティホールmemoにあったから読み直してみました。バーチャル環境、特にハニーポ...
バーチャル環境を検知するウイルス【てくてく糸巻き】at 2006年12月01日 16:35
この記事へのコメント
ヒューリスティックによる検知能力ですが、これの感度を上げると誤検知が多くなります。
ウイルス対策ソフトにおいては、検疫からの復旧が難しいため、誤検知は非常にクリティカルです。
よって、大手ベンダーはユーザベースが大きいので、誤検知にかなり注意しています。
一方、ニッチベンダーは利用しているユーザもリテラシが高い人が多いので、ヒューリスティックの感度を重視しているように思えます。
実際、いろいろな評価でも、大手は誤検知が少ないのは事実です。
そのような点を抜きにしてウイルス対策ソフトの未知のウイルスの検知能力を比較するのはナンセンスだと思います。
Posted by nowandzen at 2006年12月07日 18:09
>検疫からの復旧が難しいため

検疫よりの復旧が失敗するケースとして、どのような例があるんでしょうか。OSのブートに関わるようなものを除けばとっさに思いつかず。

>ヒューリスティックスキャン
誤検出とはこの場合、False Positiveですね?

Posted by Luca at 2006年12月07日 20:31
基本的にウイルス対策では検知されたものはすべて、悪意があるものとして、有無を言わさず検疫されます。
また、リアルタイムプロテクションが常に働いているので、検疫からたとえ、戻しても普通だとすぐにまた検疫されます。
よって、一般的にはユーザにやさしく出来ている自動での検疫・削除がこのような例外では逆に難しく働きます。
誤検知はFalse Positiveです。
よって、一般的には未知のウイルス検知能力を上げれば、False Positiveの危険も一般的にはあがるわけです。シェアの高いベンダーは一般への影響が大きいため、False Positiveに気を使っている点は理解すべきでしょう。
したがって、使われるユーザのProfileも含め、その影響を考えて上で、未知のウイルスの検知能力を見るべきだと思います。
Posted by nowandzen at 2006年12月12日 09:12
誤検出(False Positiveの場合)へ利用者が賢く対処するとしたらば、メーカーへの積極的なフィードバックでしょうか。またはソフトウェア作者へ連絡するなど。
それは置いておいて。

>一般的には未知のウイルス検知能力を上げれば、
>False Positiveの危険も一般的にはあがる

その通りですね。
とは言え検出の精度と一くくりにするには、メーカー側の対応が慎重であるからなのか・もしくは単純に性能の問題なのかは判別しづらいものがあります。


付記するとしたらば、False Positiveでは一時的対応策として検疫・連絡やフィードバック・メーカーの対応を採りえますが、False Negativeでは利用者にはどうにもならず多大な被害が生じる側面も考慮しなければなりません。


難しいですね、これは。
Posted by Luca at 2006年12月12日 18:44
ちょうどグッドタイミングでMalware-test.comでウイルスの検知能力のテスト結果がアップされていますね。

http://malware-test.com/smf/index.php?PHPSESSID=8a84764cbea6abe65c8d6124dc16a107&topic=3125.0

これは、未知のウイルスの検知能力のテストではなく、Malware-test.comがハニーポット等を使って収集したウイルスの検体を使ってのテストです。
よって、ウイルスリサーチの能力も含めた総合力のテストになるでしょう。
以外なのはFortinetがトップになっていることです。
また、ヒューリスティックの能力の評価が高いNOD32が半分も検知できていないのはリサーチ能力不足?
Posted by nowandzen at 2006年12月12日 22:25
PDFをざっと目を通しました。
どちらかと言えば、製品の能力そのものではなくリサーチ力の比較として捉えるべきなんでしょうか。

PDF中において各製品の設定、一例としてヒューリスティックスキャンのレベルを記載していない点には引っかかりを感じましたが。
面白い資料を紹介していただきまして、ありがとうございます。

(個人的には、実際にファイルを実行した際のオンアクセススキャンによる結果を知りたいものです)
Posted by Luca at 2006年12月13日 07:35