私はかねてより、アンチウィルス製品が役立たずで単に金の無駄遣いとなるかどうかという議論の進展を見守り、また参加もしている。この問題についての私の立場は、エフセキュアに雇われているからには、かなり明確だろう。しかしつまらない同じ議論を続けるより、ほとんどすべての議論で繰り返している、いくつかの共通のパターンと誤解に注意を向けたいと考えている。

パターン1:VirusTotalのスキャン結果を議論に持ち込もうとする人がいる。

 VirusTotalはある特定のサンプルについて、初期の情報を得るのに非常に有益なシステムだが、さまさまなアンチウイルス製品の性能について信頼に値する指摘を行うわけではない。VirusTotalの人自身もこれを認識しており、彼らのシステムが不適切な調査で誤用されることを望んでいない。実際、VirusTotalは当該WebサイトのAboutページで、この件についてすでに何年も明示している。「BAD IDEA: VirusTotal for antivirus/URL scanner testing」というセクションを読んでほしい。

 VirusTotalは次のように述べている。「At VirusTotal we are tired of repeating that the service was not designed as a tool to perform antivirus comparative analyses, but as a tool that checks suspicious samples with several antivirus solutions and helps antivirus labs by forwarding them the malware they fail to detect. Those who use VirusTotal to perform antivirus comparative analyses should know that they are making many implicit errors in their methodology, the most obvious being…(訳注:繰り返しお伝えするのに疲れたが、このサービスはアンチウイルスの比較分析を行うために設計されたツールではない。複数のアンチウイルス製品で疑わしいサンプルをチェックし、検知していないマルウェアについて情報提供することによってアンチウイルス研究所を助力するツールとして設計されたのだ。VirusTotalをアンチウイルスの比較分析に使用する方々は、その手法に多数の潜在的な誤りがあることを理解すべきだ。もっとも明白な誤りは〜)」(強調は私が行った)

 この理由は3つある。まず始めに、アンチウイルス・ベンダーがVirusTotalに提供しているエンジンは、現実世界の製品とまったく同じ構成にはなっておらず、また実際の製品に対するものと同じように手入れや注意をしているわけではない。もしVirusTotalの結果としてあるサンプルについて欠落していても、我々は有料顧客に対するものほど気にかけない。

 第2に、まともな考えを持つ組織であれば、最高の技術を比較システムに提供することはあり得ない。比較システムでは、攻撃者が新しく作成したものを気の赴くままにチェックし、十分な数のアンチウイルスを避けることができるまで好きなだけ試してしまう。

 3つ目にVirusTotalは、インストールされている実際の製品で対象ファイルを実行しようとはしない。つまり、実行時のヒューリスティック、振る舞いの監視、メモリスキャンは土俵に乗らないことを意味する。したがって、完全な製品と比較したとき、検知結果は少なくなる。しかし、VirusTotalがファイルを実行しない理由は理解できる。各エンジンごとに何もかも実行するには膨大なリソースが要求される上に、実際の感染のケースでは存在するコンポーネントが欠けているために、多数のサンプルではやはり失敗するのだ。

パターン2:テスターはあるコレクションの中からダウンロードを行い、(パスワード保護がかかっているアーカイブであれば)解凍して、もしマルウェア・ファイルが検知されなければ愚痴をこぼす。

 このようなファイルのコレクションやフォレンジック後のファイルをスキャンするために、実際の製品を使用するときでさえ、本当に想定どおりに製品を使用しているわけではない。スキャンとは最後から3番目の防衛ラインに過ぎないのだ。アンチウイルス業界は、何年も前から、ファイルをスキャンするだけでは十分に防護する手立てがないことに気づいている。我々は、不正なコンテンツがシステム内で実際に動いているときに検知しようとするのではなく、標的に到達しようとしているところから、不正なコンテンツを回避しようとすることに焦点を移した。

 一般的なアンチウイルス製品や、あるいはセキュリティ・スイートというべきものには、防護のための複数の階層が含まれる。ファイルのスキャンは、そのほんの一部分に過ぎない。何が用いられているかは、製品によって異なる。しかし典型的な製品には、少なくとも以下の階層がある。

1. URLおよびWebアクセスのフィルタリング

 ユーザが悪意のある攻撃サイトと、そもそも接点を持つのを回避する。

2. HTTPなどのプロトコル・スキャン

 悪意のあるコンテンツが、Webブラウザや他のクライアントに到達する前に捕捉する。

3. エクスプロイトの検知

 エクスプロイトがクライアントを乗っ取れるようになる手前で、エクスプロイトをブロックする。そして数多くの製品では、もしエクスプロイトが検知されなかったとしても、エクスプロイトが首尾よく実行されるのを回避する手段も持ち合わせている。

4. ネットワーク(クラウド)のレピュテーションの問い合わせ

 サーバのバックエンドから、ファイルやファイル・パターンのレピュテーションについて問い合わせを行う。これは、従来のアンチウイルスを置き換えるはずだと、多くの人が議論している部分だ。しかし実際には、我々の武器庫の中では、ツールの1つとしてすでに採用している。したがって、これは既存のアンチウイルスの置き換えとはならなかったが、むしろ拡張を行った。

5. サンドボックスとファイルベースのヒューリスティック

 エクスプロイトが実行される機会を得る前に、投下された新しいエクスプロイトやペイロードを捕捉する。

6. 従来型のファイル・スキャン

 これは、多くの人々が「アンチウイルス」を語る際に念頭に置いている部分だ。保護の観点では、おそらくこれは15〜20%ほどをカバーする。

7. メモリ・スキャン

 これはディスクには決して載らないマルウェアや、サンドボックス内や静的なアンパックでは操作できないような、パッカーを迂回するマルウェアを検知する。

8. 実行時のヒューリスティックとメモリ・スキャン

 現在の最終防衛ラインで、疑わしかったり悪意のある類の振る舞いを行うファイルを捕捉する。

 様々な技術の詳細を掘り下げていない点について謝罪する。しかしそうすると、なぜ各階層が必要なのか、またどのように動作するのかについて、詳細説明が長くなりすぎてしまう。だがとにかくポイントは、ある脅威がスキャナによって検知されなかったとしても、実際の攻撃のケースでブロックされないことを意味するわけではない。

 実際に動作しているセキュリティは、複数の防護階層に基づいている。そして我々を大いに楽しませてくれるのは、アンチウイルスは役立たずだと主張する人は、たいてい上に挙げた技術を新たなソリューションとして勧めてくることだ。いや、我々はすでにそれを行っているのだ。そして推奨されるものだけでは、完全なソリューションではないので、さらに他の階層も必要としているのだ。

パターン3:ブラックリストはアホだ。ホワイトリストを使うべきだ。

 ホワイトリストが実現可能な選択肢なら、我々がすでに活用していると、本当に考えなかったのだろうか?いや実際には、ホワイトリストを用いているのだが、パフォーマンスの向上と誤報の回避のみを目的としている。

 ホワイトリストの問題点は実行可能なファイルしか扱えない点で、そのため最初の段階でシステムが感染することを避けられず、また攻撃がメモリ内でのみ行われる場合には、ホワイトリストのチェック対象が存在しないのだ。さらに、クリーンなドキュメントやWebサイトのコンテンツについて1つ1つホワイトリストを構築することは不可能なので、ドキュメントやWebサイトのエイクスプロイトに対しては、ホワイトリストは機能しない。

パターン4:アンチウイルスはデスクトップではなくネット上に置かれるべきだ。

 すべてのセキュリティをどこかのサーバにオフロードし、アンチウイルスが占有するリソースについて気にしなくてよくなったら、どんなに良いかしれない。しかし残念ながら、コンピュータがモバイルであるという事実のために実現不可能なのだ。

 常にオフィス・ネットワーク以外のどこにも接続されない静的なデスクトップ機については、理論的にはネットワーク・レベルですべてのセキュリティをまかなうことができる。しかし現実には、大半のコンピュータはラップトップで、いつでもあちこちのネットワークへ接続され、不変のままなのはデバイスにインストールされたものだけだ。

 また、純粋なネットワーク・ベースのアンチウイルスは、USBや他のメディアによるマルウェアについて何の防護にもならない。

 クライアント側が非常に軽量な、純粋な「クラウド」アンチウイルスを使っている人ももちろんいる。しかし防護技術の一部を落としているので、より低い防護しか得られない。

パターン5:しかしサーバにこんなに大量のデータがあるのだが、マルウェアが通過していくのを見た。

 これには2つの理由がある。

 まず第1に、見たのは、一部の攻撃が通り過ぎるところだ。我々は100%の防護を行うと主張しておらず、またそうすべきではない。攻撃の大半を食い止めることができるだけだ。個々の製品がどれほど優れているかについては、実際の製品を用いた試験から確認できる。どれも100%の防護権を常に得てはいない。したがって、通過する攻撃は常に存在する。

 第2に、多数の企業は、ネットワーク・クエリをアンチウイルス・サーバに返すことを禁止することで、アンチウイルス製品を骨抜きにしてしまう。そして、これは企業が防護セット全体の中の第1〜4の階層をあきらめ、全ての技術の使用が許可されていたのならあったはずの防護より、低いものとなってしまうことを意味する。

パターン6:私が見たマルウェアうち、アンチウイルスは98〜100%を見逃した。

 おや、アンチウイルスが看過したマルウェアについて、そのアンチウイルスは100%見過ごす、というのは一種自明である。

 あなたが見たものは、あなたやあなたの顧客が用いている任意の製品による防護を潜り抜けてこれた部分だ。

 そして、もし我々に連絡をして、その攻撃について知っていることをすべて教えてくれたら、我々は深く感謝する。悪意のあるファイル単独では、ファイルのスキャンや振る舞いのヒューリスティックを開発するのに足る概念を抱くのに十分ではないのだ。

パターン7:アンチウイルスはAPT攻撃には無力だ。

 APT攻撃はブロックをするのが難しく、これまでに誰も完璧な解決策を得ていない。また持ち得る防護策に対して攻撃者は適応してくるので、今後も決して得られないだろう。アンチウイルスは高度な攻撃に対する重要な一階層ではあるが、単独では十分ではない。

 しかしまた一方で、アンチウイルスなしでは高度な攻撃と、現在保護されている残りの攻撃について心配をせざるを得なくなる。つまりアンチウイルスを使わなくすることを推奨し、攻撃面をさらに増やすことで、何の役に立つのだろうか?

 あなたの防護は完全ではないから、排除すべきだという人には、注意が必要だ。

では。
@jarnomn