サイバー攻撃に備える機器とその役割がわかった小部田(こぶた)さん。ただ、いくつかハテナと思うことがあった。「ウイルス対策ソフトはどうしてウイルスを見逃すのか?」「専用機器やソフトを購入しないと対策は導入できない?」「聞いたことがない種類の機器があるけどそれって?」─小部田さんはまだすっきりできない。
すべてのウイルスを検出できないの?
攻撃対象を絞った標的型攻撃に使われるウイルスは、ウイルス対策ソフトで検出できないとよく聞く。実は、攻撃者が事前にウイルス対策ソフトで検出できないことを確認してから攻撃に使うからだ。ウイルス対策ソフトの仕組みとウイルスの作成方法を知ればわかりやすい。
定義ファイル更新が間に合わない
ウイルス対策ソフトの検出方法の基本は、ファイルのチェックである。Webページにアクセスしたときにダウンロードされるファイルやメールの添付ファイルを、ソフトベンダーが提供する定義ファイルと照合して、ウイルスかどうかを判定する。定義ファイルには、プログラムコードの一部やプログラムのハッシュなど、ウイルスの特徴が記述してある。
攻撃者は、攻撃に使うウイルスを自ら作るか、攻撃者の間で取引されているウイルスを使う(図3-1)。自力で作るには、かなりの水準のプログラミング知識が必要になる。多くの場合、攻撃者が集うWebサイト(アングラサイト)などで取り引きされたウイルスそのものや、ウイルス作成プログラムを利用する。
ウイルス作成プログラムは、攻撃者にプログラミングの知識がなくても、機能のオン/オフや言語などを設定するだけで作成できる。「パッカー」と呼ばれるウイルスを暗号化する仕組みもある。作成者がパラメーターを変えると簡単に新しいウイルスを作成できる。
ウイルス作成プログラムで作成したウイルスが定義ファイルに登録されても、同じプログラムで異なるパラメーターで作成したウイルスは、暗号化されているのでコードの一部で判定できない。当然、ハッシュも異なる。このため、ファイルチェックではなかなか検出できないのだ。
あるウイルスに対して、仕組みやコードの特徴が同じだったり、似ていたりするとき、元のウイルスの「亜種」と呼ぶ。同じウイルス作成プログラムで作成したウイルスも、後から作成された方が亜種となる。
ウイルス対策ソフトが亜種を検出できない例にZeuS(ゼウス)がある。著名なウイルス作成プログラムの一つで、ZeuSを使ったウイルスが最初に見つかった2009年頃から現在に至るまで、亜種が大量にサイバー攻撃で使われている。
ウイルス対策ソフトは、プログラムファイルの実行時の振る舞いを監視したり、ファイルの出所を評価したり、といった手法も使う。しかし、完璧に監視できるわけではないので、怪しい振る舞いでも検出できる保証はない。さらに攻撃者は、これらの機能でもファイルが検出されないかを事前に確認しているため、ウイルス対策ソフトをすり抜ける確率が高い。アングラサイトには、ウイルス対策ソフトで検出されるかどうかを手軽に判定できるWebアプリケーションが用意されている。
ウイルス対策ソフトで当初検出できないウイルスでも、広く出回ってしまえば、定義ファイルに反映される。攻撃者が必ずしも最新のウイルスを使っているとは限らないので、ウイルス対策ソフトは無意味ではない。