アンチウイルスの戦い

ウイルス対策製品であるLMD、Manul、ClamAV、Virusdaiのほぼ公平な比較。







過去1年間、いくつかの新しい代表者がWebサイトの感染と戦うアンチウイルスの仲間入りをしました。 これで、ウェブマスターまたはサイトの所有者を選択することがより難しくなります。 1〜2年前には、何も選択できませんでした。



アンチウイルスの使用に関する個々のケースの分析は、すでにHabréで公開されています。 しかし、誰も一般的で完全な比較をしませんでした。 サーバーおよびサイト上のウイルスと戦うためのウイルス対策製品の違いを理解するために、本日は4つのウイルス対策のウイルス対策データベースの完全性と正確性を比較します。 これを正しく公平に行うようにします。



検出精度の比較



各ウイルス対策による脅威の検出の精度を見てみましょう。 偽陽性は各患者に発生する可能性があり、私たちのタスクは、各アンチウイルスによって個別に検出されたファイルのセットでのシェアを決定することです。 結局のところ、感染したファイルの代わりに良いファイルを指で指すアンチウイルスは誰も必要としません。



脅威を特定する精度を分析するために、一連のサイト(W)を使用します。 一部のウイルス対策ソフトには類似の機能がないため、感染と疑いの違いはありません。 悪意のあるコードが存在するかどうか、各ウイルス対策ソフトウェアによって検出されたファイルを手動で確認する必要があります(客観性のために戦っています)。 ご存知のように、このような作業(このようなファイルが多数ある場合)には多くの時間と労力がかかります。 したがって、十分な精度と比較的短い手動分析時間に必要かつ十分なWサイトのセットを使用します。 W = 1500。



させる -同じ一連のサイトを分析するときに、各ウイルス対策ソフトウェアによって個別に定義されたファイルのセット(W)。







決定の精度(A)ウイルス対策は、悪意のあるコードを含むことが保証されているさまざまなファイルのサブセットと呼ばれます 対応するセットで彼によって識別された 。 つまり



明確にするために、対応する単位でAの検出精度を測定します 。 精度の測定値を以下に示します。







テストでは、ClamAVおよびLMDアンチウイルスデータベースのmd5シグネチャを使用しませんでした。 Webサイトが感染すると、ほとんどの場合、悪意のあるコードが既存のファイルに埋め込まれたり、感染ごとに変更されたりします。 このポリモーフィズムは、Webサイトへの感染に関して簡単に実装できます。 この場合、ファイルのチェックサムによって脅威を判断する有効性は非常に低くなりますが、同時に、サイト上の数千のファイルについてこれらの合計を計算することを意味し、検出の品質にほとんど影響を与えずに、パフォーマンスを大幅に低下させます。



定義の完全性の比較



ウイルス対策の2番目の重要なパラメーターは、定義の完全性です。 感染したサーバーまたはサイトでの総数から検出された脅威の数。



分析の完全性は、測定の精度に密接に関係しています。 完全性を比較するために、正確な(偽ではない)ウイルス対策応答のみを考慮します。



前のテストからの正確なウイルス対策応答のセットを取得します。 -同じサイトのセット(W)を分析するときに、各アンチウイルスによって個別に検出された正確に感染したファイルのセット。 私たちは -これは、サイトWの特定のテストセットでアンチウイルスによって検出された、保証された感染ファイルの組み合わせセットです。つまり、







ウイルス対策の定義(F)の完全性は、結合された一連のファイルで検出されたさまざまな感染ファイルのサブセットと呼ばれます 。 つまり







Fの定義の完全性を単位で測定します 。 そのため、ここに、各アンチウイルスの完全性パラメータを分析したときに受け取ったデータを示します。







そこで、感染の検出の質と完全性を比較しました。 次に、要約データを1つのテーブルに表示します。

F、%の決定の完全性 A、%の決定の正確さ
Lmd 11.86% 60.52%
Virusday 78.87% 92.72%
マヌルネコ 47.42% 2.53%
クラマフ 9.28% 69.23%


ウイルス対策ソフトウェアによって感染として検出されたファイルを手動でチェックすると、個別に言及したい興味深い事実がいくつか明らかになりました。 各ウイルス対策によって検出されたファイルの数から始めましょう。 Manulは、スキャン対象のほぼすべてのサイトで、感染または疑わしいファイルを発見しました。 彼によって検出されたファイルの割合がすべてのウイルス対策ソフトウェアによって検出されたファイルの総数の98%であると考えると、非常に驚​​きました。



問題は、2番目の図からわかるように、これらのファイルのうち実際に感染したのは2.5%だけであるということです。 残りは誤検知です。 彼の定義の完全性は非常に高いものの、そのような多数の誤検出は、さらなる手動分析と治療を非常に複雑にします。 ウイルス対策データベースManul自体を分析すると、頻繁に遭遇するかなり多数の安全なコードフラグメントが「疑い」に書き込まれることがわかりました。 たとえば、疑いとしてfile_put_contents



@file_get_contents



@file_get_contents



move_uploaded_file



error_reporting



phpinfo



extract



move_uploaded_file



mail



touch



chdir



copy



create_function



などが定義されて@include



copy



。 したがって、Manulが疑いを持たない深刻なPHPスクリプトを記述することは非常に困難です。



これはClamAVにも部分的に当てはまります。 たとえば、彼はいくつかの簡単な英単語の出現を探しており、それらを感染症と定義しています。 LMDは、多くのサイトにあるzip.lib.phpライブラリで、未知の理由で非常に頻繁にウイルスを検出します。 このようなコードのセクションでは、特に感染として定義されています。



 $fr .= "\x00\x00";
      
      





この理由は不明です。 そして、そのような例はもっとたくさんあります。 Virusdayも罪がないわけではありません。 悪意のないファイルで不審な(たとえば、難読化された)コードを見つけたことがあります。 難読化は、悪意のあるコードを隠すためだけでなく、プログラムを保護するためにも使用できます。 しかし、それにもかかわらず、その完全な定義は他のWebウイルス対策ソフトよりも優れています。



それにもかかわらず、記事の冒頭に書かれた比較は、いくつかの理由で「ほとんど公平」です。 Webサイトでテストを実施しました。つまり、Webスクリプトでのみウイルスを検索しました。 これに関して、md5署名は処理しませんでした(上記の理由により)。 ClamAVは、Webサイトだけでなく、より普遍的な脅威検索ツールでもあります。



治療の質の比較



検出を見つけました。 ウイルス対策プログラムがファイル内の悪意のあるコードを完全に検出する方法を確認します。 これは治療を組織するために重要です。 アンチウイルスによって検出されたコードフラグメントを削除すると、ファイルが突然動作不能になり、その結果、サイト自体が機能しなくなることが多くなります。 もちろん、悪意のあるファイル全体がありますが、悪意のあるコードが良いファイルに埋め込まれ、そのすべての内容を完全に削除できない場合を考えています。



比較されたアンチウイルスによって検出された悪意のあるコードの例を使用して、このパラメーターを分析します。 この例では、コードの内容は次のとおりです。







LMDは、次のようなコードが発生することにより、悪意があると定義しています。



 = ''; for($i=0; $i < strlen($
      
      





このコード自体は、悪意のあるコードと呼ばれることはほとんどなく、通常のスクリプトに非常によく見られます。



Manulは、そのようなサイトのエントリによって悪意があると定義しています。



 eval(
      
      





すでに書いたように、マヌルは多くのことを危険だと考えています。 多くの組み込みPHP関数の使用はほとんどすべてのスクリプトに存在し、この理由でのみアラームを発生させることは意味がなく、スキャンレポートの分析を複雑にするだけです。



ClamAVはこのコードに何も見つかりませんでした。



Virusdaiはこのコードを完全に見つけることができました。 したがって、このコードはファイルから安全に削除できますが、他のウイルス対策ソフトについては言えません。



次のようなコードで別の例を見てみましょう。







4つのアンチウイルスすべてがそれを見つけました。



LMDはそのようなプロットを見つけました:



 _']=Array(base64_decode('
      
      





それは疑わしいですが、生命に対する権利があります。



ClamAV:



 <? $GLOBALS['_433305846_']=Array(base64_decode('' .'ZG' .'Vma' .'W5l'),base64_decode('ZmlsZV9n' .'ZXRfY2'
      
      





良いのですが、ClamAVは正確な出現によってこのコードを探しています。 彼は、再感染してもわずかな変更でこのコードを見つけることができません。 しかし、このタイプのウイルスがこの形式で見つかることはめったにありません。おそらく、別のサイトに感染すると、コードは少し異なって見えます。



マヌルはこれを見つけました:



 $GLOBALS['_433305846_']=Array(base64_decode('' .'ZG' .'Vma' .'W5l'),base64_decode('ZmlsZV9n' .'ZXRfY2' .'9udGVudH' .'M=')
      
      





また、このコードのすべての種類をカバーするかなり複雑な正規表現を使用して検索が実行されるため、このコードの種類を見つけることになるので、特に優れています。



ただし、見つかったコードをファイルからカットすることはできません。 Virusdayは、すべてのこのコードを最初から最後まで悪意のあるものとして識別し、治療中に痛みを伴わずに切り取ることができます。 一般に、ファイルの駆除(ファイルを削除しない、つまりファイルから悪意のある領域を切り取る)は、これらのすべてのウイルス対策ソフトウェアで利用できるわけではありません。 Virusdaiはすべてではなく、多くを治すこともできます。



他のアンチウイルスでは処理されないウイルスの例を具体的に取り上げると考えられるかもしれません。 そうではありません。 治療の質の違いを最も明確に示す例を選択しようとしました。 原則として、私たちが取ることができるほとんどすべての例は同じことを示しますが、それほど明確ではありません。 すべてのウイルス対策ソフトウェアのウイルス対策データベースを分析しました。これらのデータベースのほぼすべてのシグネチャは、ウイルス本体全体をカバーせずにコードの個々の小さなセクションを検出します。



出力の代わりに



ClamAVは処理できません。 LMD、ClamAV、Manulは無料のサーバーユーティリティであり、 Virusdaiはサポートとファイアウォールを備えた有料のSaaSです。 この記事では、多くの違いがあるため、各ウイルス対策の機能と使いやすさについては説明しません。また、ウイルス対策データベースの比較のみに限定します。 乾燥した統計は、豊富な空の言葉よりもうまく話します。 それに加えて、誰もが自分の好みに合わせて、必要に応じてツールを自由に選択できます。



All Articles