アンチウイルスとは、ウイルスの侵入や攻撃からシステムを守る機能であり、セキュリティソフトの最も基本的かつ重要とされる機能だ。ウイルスをはじめとするマルウェアは年々進化しており、これらに対抗してアンチウイルスも進化を続けてきた。ここでは、アンチウイルス機能の核となるウイルス検出技術の進化について解説する。
アンチウイルスとは
アンチウイルスとはその名称のとおり、コンピューターウイルスに「対抗」して侵入や攻撃からシステムを守る機能のことであり、セキュリティソフトが有するさまざまな機能の中でも最も基本的かつ重要とされる機能である。アンチウイルスの機能は、ウイルスの検出・識別と、ウイルスの駆除の2つに大きく分けられる。このうち、「検出・識別」がその有効性に大きく作用する。言うまでもないことだが、見つけられないものは駆除できないからだ。アンチウイルスでは、どうやってさまざまなウイルスを検出・識別するかということがポイントであり、この機能は「検出エンジン」とも呼ばれる。
この「検出エンジン」と呼ばれるウイルスを検出するプログラムがセキュリティソフトの優位性に直結するため、セキュリティのベンダーは各社しのぎを削っている。その一方で、攻撃者側も攻撃の成功確率を上げるために、アンチウイルスに検出されることを防ぐための技術を日夜開発している。すなわち、アンチウイルスと攻撃者は「いたちごっこ」の様相を呈しているのだ。
アンチウイルスの基本的な検出方法「パターンマッチング」
アンチウイルスの最も基本的なウイルス検出方法が「パターンマッチング」と呼ばれる手法である。初期のアンチウイルスでは、パターンマッチングのみが用いられていた。アンチウイルスでは、ウイルスのソースコードをパターンとして登録した「定義ファイル」と呼ばれるデータベースを用いて、パソコンにあるファイルと照合することでウイルスの検出・識別を行う。
セキュリティソフトをインストールしていると、頻繁に定義ファイルの更新が行われるが、それは日々新しいウイルスが発見されるたびにそのマッチング用のデータパターンを作成し、定義ファイルに追加しているためだ。「セキュリティソフトを常に最新の状態に維持する」というのがセキュリティ対策の基本とされる。それは、新しいウイルスが登場するまでの期間が短くなっていることから、期間を空けて更新するとその間に発見されたウイルスを検出できなくなる可能性が高まるからだ。
パターンマッチングは、データベースと照合するため、誤検出が起こりにくい点がメリットだ。一方でパターンマッチングでは、データベースに存在しない「未知のウイルス」の検出が困難という問題が生じ得る。加えて、データベースが年々肥大化することで、パターンマッチングの際の処理負荷が高まる点もデメリットと言えよう。
マルウェアの種類
アンチウイルスが機能するのは、いわゆる「コンピューターウイルス」と呼ばれるものだけでなく、マルウェア全般に対してである。マルウェアとは「Malicious Software(悪意のあるソフトウェア)」と称するとおり、コンピューターウイルスをはじめ、ワーム、トロイの木馬、スパイウェアなど、システムに害をもたらすソフトウェアの総称である。
ウイルス
マルウェアの中でも最も数が多く、ファイルに寄生することを前提としたプログラムとなっており、ファイルあるいはプログラム経由で感染を広げる。実害に至るには人間による何らかの操作を伴う必要がある。ウイルスによる被害には、データの破壊やシステムの停止、機密情報の窃取などがあり、DDoS攻撃やランサムウェア攻撃など、ほかのサイバー攻撃の引き金にもなり得る。
ワーム
ウイルスはファイルに寄生して動作するが、ワームは単体で動作することが可能となっている。さらに、自己増殖型でネットワークを介して感染を広げる。一般的にワームはシステムの脆弱性を利用して侵入し、ほかの端末へと広がっていく。ワームの拡散力は高く、感染したデバイスにバックドアを仕掛けるものも少なくない。
トロイの木馬
正規のソフトフェアやファイルになりすましユーザーに気付かれないように攻撃を仕掛けるマルウェアである。トロイの木馬もワームと同様、単独で動作可能だが、複製機能はない点が大きく異なる。トロイの木馬の主な目的は、IDやパスワードなどを盗むためのバックドアを仕掛けることである。
スパイウェア
閲覧履歴、インターネットでの活動、ID、パスワード、口座情報といったユーザーの個人情報や行動を監視して、外部にその情報を転送するマルウェアである。ウイルスとは異なり、直接感染したシステムに害をもたらすわけではないが、盗み出した情報がなりすましなどに利用されることがあり、マルウェアの1種とされる。
ウイルスの進化の歴史
コンピューターウイルス、すなわち自己増殖する自動機械について最初にその概念を提唱したのは、数学者であり、「ノイマン式コンピューター」で知られるジョン・フォン・ノイマン(John von Neumann)とされる。ノイマンによる著書「自己増殖オートマトンの理論」では、そのウイルスの概念とその理論が記載されている。以降、その理論を証明するかのようにウイルスの開発が始まった。
1970年代~90年代のウイルス黎明期
1971年に作成された「The Creeper」が世界最初のコンピューターウイルスとされる。このコンピューターウイルスは悪意のある行動はとらず、シンプルなメッセージの表示にとどまった。1974年には、自己複製機能を持ち、悪意のあるウイルス「Rabbit」が作成された。このウイルスに感染すると、複数の自身のコピーを作成し、システムのパフォーマンスを著しく低下させる。そして最終的にはシステムを破壊するというものであり、一般的なコンピューターウイルスの原点とも言える存在だ。
1986年、当時多くのシェアを誇ったIBM社のパソコンを狙うコンピューターウイルスが発生。フロッピーディスク経由で感染するこのウイルスの狙いは、違法コピー対策だったとされる。1988年には自己増殖機能を有し、インターネット経由で拡散する「モリスワーム」が開発された。また、1991年に存在が明らかになった「ミケランジェロ」は、データ破壊活動を行うウイルスとして知られた。
1990年代に入り、パソコンが家庭に普及し始めると、ウイルスをめぐる状況は大きく変わることになる。ウイルスの種類が急速に増大し、さまざまな変種や亜種も登場するようになった。当時流行していたパソコン通信を経由してウイルス作成ツールが配布され、それを用いてウイルスを作成、ばらまく行為が愉快犯的に行われたのだ。
1995年にはWindows 95がリリースされ、搭載されたInternet Explorerの利用が浸透したことで、インターネット時代が本格的に幕を開けることとなった。以降、ウイルス開発のペースは加速し、感染拡大の様相もそれまでとは異なるようになった。1999年5月には、メール経由で拡散する「メリッサ」が登場。極めて短時間で、かつ大規模に拡散し、8,000万ドル(当時の為替レート換算で約95億円)超の被害が生じた。
2000年代、ウイルスの普及期
2000年代に入ると、インターネットを利用するユーザー数も世界中で増加し、インターネットを活用したさまざまなサービスが提供されるようになった。こうした環境の変化に伴い、コンピューターウイルス、マルウェアの種類、規模も大きくなっていく。
2000年5月に存在が確認された「Love Letter」は、メール経由で拡散するワームと呼ばれるタイプのマルウェアである。続けて2001年に登場したマルウェア「Code Red」は、メールとWebサイトを用いてWebサーバーを攻撃。マイクロソフト社のWebサーバー用ソフトウェアであるIISのセキュリティホールを利用して拡散し、短時間の間に数十万のWebサーバーが感染するといった大規模な被害をもたらした。
2001年、Code Redに続いて猛威を振るったのが「Nimda」だ。このコンピューターウイルスは日本国内の大手ポータルサイトにも感染したことから、国内においてコンピューターウイルスの認知に一役買ったともされる。ほかにも、2000年代には「Gumblar」などが猛威を振るった。
2010年代以降、ウイルスの影響拡大期
2013年、ファイルを暗号化して身代金を要求する、ランサムウェアに分類されるマルウェア「CryptoLocker」が検出された。また、2014年に検出された、OpenSSLの脆弱性を狙う「Heartbleed」により、世界各国のWebサイトが脅威に晒されることとなった。
2016年にはIoT機器の脆弱性を狙う「Mirai」が登場。インターネット、およびデジタル機器が世界中で普及して日常生活の一部となっていくのと同時に、そうした状況を狙う攻撃も激化傾向にある。その結果、さまざまなコンピューターウイルス、マルウェアが開発されている。今後もこうした状況は当面続く可能性が高い。そのため、ウイルスの脅威を防ぐためのセキュリティソフトもさらなる高度化が迫られている。
新たな検出手法「ヒューリスティック検知」
闇のインターネットと呼ばれる存在「ダークウェブ」を介してさまざまなモノ、情報が取り引きされている。その中には、コンピューターウイルスやランサムウェアに関するモノ、情報も多く含まれている。また、RaaS(Ransomware as a Service)のようなサービスも広がり、攻撃者が容易にランサムウェアを扱えるようになった。
こうした環境の変化によって、コンピューターウイルスの種類も爆発的に増えている。2000年ごろまでは新種と亜種を合わせて1年で10万種類のコンピューターウイルスが発見されていたが、2022年にはその数は1日あたり数十万種にも増えている。こうした状況下では、パターンマッチングですべてのコンピューターウイルスを検出することは困難となりつつある。
そのため、新たなマルウェア検出方法としてアンチウイルスに搭載されているのが「ヒューリスティック検知」だ。パターンマッチング検知とヒューリスティック検知を組み合わせることで、検出力を高める。
ヒューリスティック検知では、プログラムファイルそのもののパターンをチェックするのではなく、プログラムによる特徴的な挙動をチェックし、その動作によってマルウェアかどうかを判別する。
さらに、ヒューリスティック検知は「静的ヒューリスティック検知」と「動的ヒューリスティック検知」に分けられる。静的ヒューリスティック検知では、実際にプログラムを実行する前に、そのプログラムを解析する。その解析段階で、マルウェアと思しき動作の可能性を検証する方法であり、プログラムを動作させずに分析を行うため、感染リスクが低いものの、事前に検知できない可能性も少なくない。
一方で、動的ヒューリスティック検知では、コンピューター内部に作成したサンドボックスを利用する。サンドボックスとは、動作検証のための仮想環境であり、そこで実際にプログラムを動かしてその挙動を調査する。実際のプログラムの振る舞いを元に判別することから、「振る舞い検知」とも呼ばれる。
ファイルの暗号化によってパターンマッチングから逃れるような対策が行われたマルウェアであっても、実際に仮想環境上で動作させることで、検知が可能となる。また、亜種ではなく、まったくの新種のマルウェアであっても、その振る舞いによって悪意があるプログラムの可能性を判別できる。
そのため、未知のマルウェアにも対処できるというメリットがある。しかし、チェックのための処理負荷が高くなってしまうというデメリットもある。近年、脆弱性についての修正パッチが提供される前の攻撃「ゼロデイ攻撃」のリスクが高まっている。こうした攻撃に対処するためにも、ヒューリスティック検知は有効だ。
AIやクラウドを活用する次世代型エンドポイントセキュリティ「NGEPP」
年々高度化・巧妙化するサイバー攻撃からコンピューター、すなわちエンドポイントを防御するには、従来型のパターンマッチングだけでは難しくなってきているのは先述したとおりだ。そこで、より高度な技術を用いてマルウェアを検知・防御する、NGEPP(Next Generation Endpoint Protection Platform)と呼ばれる次世代型セキュリティ製品が登場し、これらを導入する企業も増えてきている。
NGEPPでは単純なパターンマッチングだけでなく、近年進化が著しいディープラーニング技術を活用し、処理をクラウド環境で行うことで、エンドポイントであるパソコンに過剰な負荷を与えないようにしている。例えば、NGEPP製品の1つである「ESET PROTECT Advanced クラウド」に搭載している「ESET LiveGuard Advanced」では、処理の負荷が高いディープラーニングによるマルウェアの判別を「ESET Cloud」上にて行う仕組みだ。
エンドポイントで検出された不審なファイルをESET Cloudに転送し、クラウド上でディープラーニングによるマルウェア判別が行われ、サンドボックス上で実行させる。さらに最新のスキャンエンジンを活用した異常分析を経て、その結果がエンドポイントにフィードバックされる。こうした結果に基づいて自動的にパソコンの防御が行われるという仕組みだ。
パターンマッチングとヒューリスティック検知を組み合わせたような検知技術であり、こうしたNGEPP製品の導入によって、未知のマルウェアに対しても高い防御力が期待できるのだ。デジタルシフトが進む中で、自社内のデジタル環境を外部攻撃から保護することは、企業の命運を左右する重大な課題となっている。時代の変化に合わせて登場したNGEPPなどの次世代型ソリューションの利用も含め、積極的にセキュリティ強化に取り組みたい。