2014年2月12日
AVZ:誤検知のないヒューリスティック分析で未知の脅威と戦う
コンピューターという眠れるジャングルに潜む悪意を、1つ残らず見つけ出して撲滅するにはどうすればいいだろうか?
特に、これまで一度たりとも姿を現したことがなく、凶悪なまでにIQが高い(そして国家が支援していることも多い)極めて悪質な脅威はどうすればいいのか?
答えは至って簡単だ。できることはない。
まあ、善戦くらいはできるかもしれないが、真っ暗な部屋にいる黒猫のようなマルウェアを見つけるためには、一流のプロ自らが数人がかりで対処する必要がある。つまりお金がかかるのだ。しかし、市販のアンチウイルス製品で自動的にやるとなると、話がまったく変わってくる。大体の製品は、超高度な感染の気配を感じ取る程度なら可能だが、それが限界だ。少なくともこれは、従来型のアンチウイルスシグネチャとファイルスキャナーという昔ながらのアンチウイルスのアプローチを使う場合の話である。
では、何が解決策となるのか?
これも答えは簡単だ。いくつかの強大なる脳を大いに活用することで、高度な感染を検知して破壊するアンチウイルス製品の機能を自動化する。
どうやって?
こうした強大なる脳は、コンピューター中に張り巡らされたKaspersky Labのセンサーから送られてくる信号を分析し、保護機能の知能を体系的に発達させる。このような全方位的なシステム分析は、茶柱占いをするようなウイルス対策よりもはるかに効果が大きい。予防型の保護へ近づくための現実的なアプローチの方が、いい加減な推測よりも良いはずだ。
さて、これらのセンサーのほぼすべてに、Kaspersky Labが選んだ特別な武器、ヒューリスティック分析が使われている。
実際のところ、ヒューリスティック分析はすでに25年ほど前からコンピューターウイルスの分析に使われてきた。この技術は常に開発を続けていかなければならないため、一部のアンチウイルス企業は採用をとりやめた。最小限の使用に留める企業や、使用を中断している企業もある。とはいえ、ヒューリスティック分析の重要性をご理解いただけないのは困るので、この技術がどんなものなのか、以下で簡単に説明しよう。
悪意のあるコードを特定する方法は2つある。直接的な方法か、間接的な方法か、だ。
直接的方法 – これは従来型のシグネチャにあたる。すでに判明しているマルウェアのコードに対応するシグネチャを開発し、不審なオブジェクトをスキャンするときの検索に使用する。
間接的方法 – これこそがヒューリスティック分析だ。コード内のコマンドやメタデータの典型的な配列(静的分析)またはふるまい(動的分析)に関するこれまでの知識を基に、マルウェアを見つけ出すことができる。
間接的方法の例: プログラムが自分自身をシステムレジストリのAutorunキーに書き込み、キー入力を傍受し、ポートを開いて何かをインターネットで送信する。また、何らかのデータをハードディスクのシリンダー0、ヘッダー0、セクター1に書き込む。つまり、MBR(マスターブートレコード)を変更する。現実的に見て、このようなふるまいは安全で無害なプログラムのものとは思えない。
さて、シグネチャよりもヒューリスティック分析を使うことの主な利点は、マルウェアがどのように「見える」かを知らなくてもいいということだ。つまり、マルウェア固有のコードがわかっていなくてもよい。その代わりに、特定の悪質な活動やふるまいを分析することで、あらゆる悪意(未知の種類も含む)をしらみつぶしにする。
とはいえ、こうした活動やふるまいの種類は、考えうるマルウェアコードの組み合わせよりも圧倒的に数が少ないことがわかっている。たとえば、我々はたった1つのヒューリスティックレコードで、WBNAワームの亜種を約600,000種類も検知したのだ!良質なヒューリスティック分析はウイルススキャンをスピードアップできるということが、これでおわかりいただけただろう(600,000件の個別レコードが必要なくなった!)
ヒューリスティック分析は当社の保護モジュールのほぼすべて(デスクトップロッカー対策、ルートキット対策、フィッシング対策モジュールなど)に使われている。これがシステムウォッチャーやクラウドベースのレピュテーションサービスといったハイレベルな分析技術を支え、コンピューター内部の環境をより深く理解し、極めて巧妙な攻撃を検知することを可能にする。さらに、システムの自動ヒューリスティック分析を行うAVZという特別なモジュールがある。これについてはもう少し詳しく説明する必要があるだろう。
AVZは2007年からすでに完全な戦闘態勢に入っている。利用される製品に応じてかなりの数の役割(シュレッダー、バックアップ、ごみ箱内のファイル消去、ファイルの一貫性チェック、システム復元ウィザード)をこなすが、未知の脅威からの保護とヒューリスティック分析に関していえば、主な役割は2つだ。(1) (人間の)技術サポートがリモート診断を行い、除去が困難な感染を取り除けるようにする。(2) 経験豊富なユーザーやシステム管理者向けに、管理対象のコンピューターやネットワーク内のマルウェアによる異常を自分たちで特定するためのツール群を提供する。
AVZの最も重要な機能は、(毎日更新される)独自のヒューリスティック分析機能だ。コンピューターの中で起きているあらゆることを追跡するのに大いに役立っている。これでやるべきことの半分はもう終わりだ!AVZはさまざまなパラメーターを解釈してマルウェアの特定を可能にし、システムを分析する。その結果に基づいて、怪しいオブジェクトを隔離する領域を作り、全ファイルの詳細なレポートを作成する。
このレポートのすごいところは、(人間の)エキスパートが読むのにもロボットが読むのにも適しているということだ。当社の技術サポートはこのレポートを分析して的確な診断を下し、対処方法を決定することができる。一方ロボットは、レポートを自動的に分析した後、統合されたスクリプトインタープリターを起動する準備ができる。
そう、カスペルスキー製品の中には、コンピューターウイルス対策専用の特殊なスクリプト言語インタープリターが入っているのだ。我々が一から独自に開発したものだ。アンチウイルスの「手術」(ファイルの削除、オブジェクトの隔離、レジストリのクリーンアップ、プロセスの強制終了など)に必要なあらゆるツールに加え、他にも有用な技術(削除の保留、施術中にアクティブな感染に対処する、など)を備えている。
このレポートには、アンチウイルス診断のために絶対に必要なシステムの情報しか含まれていないという素晴らしい特徴がある。明らかに何の問題もないオブジェクトは自動的にホワイトリストに登録されるため、スペシャリストの邪魔にならず、分析をスピードアップできるのだ。
後はすべてテクニックの問題だ。スクリプトの修正が、感染したコンピューターに送られて、修復措置が行われる。ユーザーはそのテキストをスクリプトのウィンドウにコピーするだけでいい。今までの経験から言って、すでに感染(未知の脅威による感染も含む)したシステムに保護手段を適用する場合も、感染の後遺症を直す場合も、これ以外の手段はない。
どんなヒューリスティック分析機能も、誤検知という弱点を抱えている。無理もない。ヒューリスティック分析において悪意のあるオブジェクトを判断する前提は、事実ではなく過去の経験に基づいているからだ。徹底的なテストとホワイトリスト登録によってある程度補うことはできるが、それでもやはり、多少のエラーは発生する。残念ながら、誤検知を完全になくす技術はまだ発明されていない。だが、我々はその開発に取り組んでいる。それまでの間、主な対策となるのは、エラーをできるだけ早く修正し、修正の更新を可及的速やかにリリースすることだ。もっとも、AVZがあればそれに問題はない!
まず、AVZは何もかも自分でやるので、難解な技術的質問や警告を発してユーザーを困らせることはない。AVZの作業結果を見るのは、それを受け取った技術サポートのエキスパート(またはロボット)だけだ。それに、エキスパートもロボットも誤検知を自分で排除することができる!そう、まさにお読みのとおり。新しいデータをスキャンするたびに、人間の手で、またはロボットが自動的に、誤検知や不要なレコードを特定して適切な変更を加えるのだ!こんな技術がまだ発明されていないなんて言ったのは誰だ?(笑)