私は頻繁にアンチウイルスプログラムが役に立っているのかと聞かれる。私はいつも「イエス」と答えていたのだが、最近は自分でもなぜだろうと考え始めた。
われわれは、インターネット上で生き残るためには、コンピュータにはアンチウイルスアプリケーションの保護が必要だと言われてきた。もしこれが本当なら、次のような疑問が出てくる。
- なぜ未だにコンピュータは感染するのか。
- もしアンチウイルスプログラムを使わなければ、もっとひどいことになるのか。
これらの疑問について、私は十分な事実を知らないことに気づいた。そこで、私はアンチウイルスの手法について調べ始めた。わかったのは次のようなことだ。
問題は何か
悪者たちには動機がある。マルウェアに感染したコンピュータを利用して金銭を得ることは、ほかの違法行為よりも簡単で安全なのだ。しかしわれわれ(被害者)の方にも、狙われている自分の財産を守りたいという動機がある。では、なぜサイバー犯罪者の方が優勢なのだろうか。まず、彼らには次のような有利な点がある。
- 脆弱性のあるソフトウェア。これは前提条件だ。ソフトウェア、特に複雑なコードには、必ず悪用可能なバグが存在する。
- 奇襲の要素。普通のユーザーは、ソフトウェアの脆弱性を探したりすることはない。しかしサイバー犯罪者は、ほかの人が知らないうちに悪用するチャンスを得ようと、ソフトウェアの弱点を見つけようとしている。
- 後手に回っている。マルウェアがどのようなものになるかは予想が難しく、アンチウイルス開発者の打つ手は受動的なものになっている。
例
最近Googleに起こったことが、もっともよい例だろう。攻撃者はInternet Explorerに存在する未知の(ゼロデイ)脆弱性を利用し、Googleの安全だと考えられていたネットワークに侵入した。この事例が、前述の3項目にどれだけ当てはまるかを見てみよう。
- 脆弱性のあるソフトウェア。Internet Explorerには悪用可能な脆弱性が存在した。
- 奇襲の要素。攻撃者だけがその脆弱性を知っていた。
- 後手に回っている。アンチウイルス企業は検知方法を開発しようとしており、Microsoftは事後になってからInternet Explorerのパッチを準備した。
ここまででは、まだなぜアンチウイルスアプリケーションがわれわれのコンピュータを保護できていないのかを理解できず、経験を積んだソフトウェアエンジニアにこの問題について尋ねてみた。彼は、見つけられないものを取り除くことの困難さについて指摘した。控えめな表現での話だ。しかし、私は理解した。マルウェアの検知はわれわれが考えているほど簡単ではないのだ。次のステップは、それがなぜかを調べることだ。