アンチウイルスの基礎:ウイルス、シグネチャ、駆除

2016年10月31日

これまでKaspersky Dailyでは、ネット社会の中でどのようにふるまうべきかについて、また、どのように危機を切り抜ければよいのかについて、何度か取り上げてきました。読んだ皆さんがそこから学びを得てくださること、学んだことを友人や家族に伝えてくださることを、願いつつ。

antivirus-delusions-featured

しかし、時には、専門用語や特殊な表現を当たり前のように使ってしまうことがあります。そこで、今回は初心に帰って、アンチウイルスの基本3項目を確認していくことにしましょう。

1. シグネチャ

ウイルスの定義データベースには、いわゆる「シグネチャ」と呼ばれるものが含まれています。

1980年代に登場したころから、「シグネチャ(Signature)」という概念は明確に定義されていませんでした。現在でも、Wikipedia(英語版)には「シグネチャ」だけを説明したページはありませんし、「マルウェア」の項(英語版)では定義なしに「シグネチャ」という用語を使っていて、説明不要な常識であるかのような扱いです。

では、ここで定義しましょう!アンチウイルスの文脈で言う「シグネチャ」とは、特定のマルウェア検体に共通する一続きのバイト(バイトシーケンス)のことです。つまり、マルウェアや感染ファイルには含まれますが、感染していないファイルには存在しません。

malanov-1

特徴のあるバイトシーケンス

現在、悪意あるファイルを検知するには、シグネチャだけではとても間に合いません。マルウェアを作成する人々は、検知されないように、マルウェアの痕跡をあの手この手で隠そうとします。このため、今どきのアンチウイルス製品は、さらに高度な検知方法を採用しています。定義データベースに登録されている項目の大半は今でもシグネチャですが(全項目の半分以上)、もっと高度な項目も定義データベースには含まれています。

これらの項目は、習慣的に、まとめて「シグネチャ」と呼ばれています。そのこと自体に問題はありません。ただ、この用語は堅牢な検知システムを構成するテクノロジーをひとくくりで表現したものである、ということを覚えておいてください。

理想を言えば、定義データベース内の項目をどれでも構わず「シグネチャ」と呼ぶのを止めたいところですが、あまりにも定着している上に、より的確な用語がまだないので、習慣的な使い方が続いています。

定義データベース内の各項目は、どれもこれも、1つの項目にすぎません。その背後にあるテクノロジーは、従来のシグネチャかもしれませんし、高度なマルウェアの検知を目的とした超最新式の革新的な何かかもしれません。

2. ウイルス

お気づきかもしれませんが、Kaspersky Labのアナリストは「ウイルス」という用語を使わず、「マルウェア」「脅威」などを使うようにしています。ウイルスとは、「クリーンなファイルに感染する」というふるまいを見せるタイプのマルウェアのことだからです。アナリストたちの間では、ウイルスは「インフェクター」と呼ばれています。

当社のラボでは、インフェクターは独自の地位にあります。第1に、インフェクターは検知が困難です。感染ファイルは一見、何の問題もないように見えますから。第2に、インフェクターには特別な処置が必要です。ほとんどのインフェクターは、特定のやり方で検知、駆除する必要があります。そうした理由で、インフェクターの処置は、この分野の専門家が担当します。

malanov-2

マルウェアの分類

アナリストが脅威全般について話すときは、混乱を避けるために「悪意あるプログラム」「マルウェア」などの総称的な言葉を使います。

もう少しばかり、マルウェアの分類についてご説明しましょう。「ワーム」は、自己複製能力があり、最初に感染したデバイスから他のデバイスへと感染するタイプのマルウェアです。また、厳密には、「アドウェア」(しつこく広告を表示するソフトウェア)や「リスクウェア」(合法的なソフトウェアではあるが、悪意を持つ人によってインストールされた場合システムに害を及ぼす可能性がある)はマルウェアに含まれません。

3. 感染の駆除

「アンチウイルス製品は、スキャンしてマルウェアを検知するだけ。マルウェアを駆除するには、そのためのツールをダウンロードしなければならない」。このような解釈を最近見かけるのですが、この誤解が定着していないことを祈ります。たしかに、特定タイプのマルウェアに対しては特別なツールがあります(ランサムウェアに感染したファイルを復号するツールなど)。しかし、アンチウイルス製品はマルウェアに十分に対処可能です。システムドライバーにアクセスするなど、ツールには盛り込みきれないテクノロジーを搭載するアンチウイルス製品の方が、ベターな選択肢である場合があります。

では、マルウェアはどのようにして駆除されるのでしょう。コンピューターにインフェクターが入り込み、このインフェクターが一部のファイルに感染したとします。アンチウイルス製品は、感染ファイルの有無を調べて悪意あるコードを除去し、ファイルを元の状態に戻します。ランサムウェア(検知名「Trojan-Ransom」として検知されることが多い)に暗号化されたファイルを復号するときも、手順は同じです。

一般的に、マルウェアに感染するのはアンチウイルス製品がインストールされていない(または稼働していない)場合であり、アンチウイルス製品の防御をかいくぐって感染するのはごく稀なことです。通常なら(圧倒的多数、おそらく99%)、マルウェアはファイルに感染する前に検知されます。この場合は、マルウェアが削除されるだけです。ファイルが壊されていないのなら、何も復元する必要はありません。

malanov-3

たいていは、悪意あるファイルを削除するだけで十分

ただし、そのマルウェアがシステム内ですでに活動を開始している場合、アンチウイルス製品は駆除モードに切り替わり、脅威を完全に消去し、活動を再開させないようにします。このプロセスの詳細については、こちら(英語)をご覧ください。

この駆除モードが発動するのは、主に次の理由からです。

  1. すでに感染しているコンピューターにアンチウイルス製品をインストールした場合。なお、感染してしまってから保護について考えるのでは、順番が逆です。
  2. アンチウイルス製品が何かを「悪意ある」ものではなく「疑わしい」ものと判断し、その活動を詳しく監視していた場合。これが明らかに悪意あるものとなった時点で、アンチウイルス製品は(監視中に検知された)悪意ある活動をすべて元に戻します。たとえば、コンピューターがランサムウェアなどによる攻撃を受けた場合、暗号化されたファイルをインスタントバックアップから復元することができます。

まとめ

さて、説明はここまでです。以下、要点を箇条書きでまとめました。

  1. 現在でいう「シグネチャ」は、基本的にウイルス定義データベースに登録された項目のこと。中には、最新の高度なマルウェアの検知に対応する高度な項目もある。
  2. マルウェアには、さまざまな種類がある。
  3. コンピューターやデバイスからのマルウェア駆除は、アンチウイルス製品で対応可能である。また、怪しいファイルのふるまいを分析できるように、アンチウイルス製品のシステム監視機能(システムウォッチャー)を常に有効にしておくことが重要である。