トピックス 2020.09.28 ウイルス対策ソフトがウイルスを検知している仕組みとは?
セキュリティ対策としてウイルス対策ソフトをインストールし、リアルタイムスキャンや定期的なスキャンを行っている方は多いのではないかと思います。
しかし、普段セキュリティソフトの利用はしていても、ウイルスをどのような仕組みで検知しているのか意識する機会はなかなかないのでないでしょうか。
ウイルスを検知するための方法には技術の進歩などもあり「パターンマッチング」や「振る舞い検知」「ヒューリスティック検知」といった複数の手法が存在しています。
今回の記事では、それぞれの検知方法の特徴や違いについてご紹介します。
パターンマッチングでは「過去データとの照合」を行う
ウイルス検知の方法は「パターンマッチング」と「パターンマッチング以外の手法」に大別することができます。
ここではまず代表的な検知方法であるパターンマッチングについて注目してみましょう。
パターンマッチングとは、マルウェアや感染したファイルに見られるデータのパターンをデータベース化し、コンピュータ上のファイルに同様のデータパターンがないかスキャンを行って確認する方法です。
これまでに見つかったウイルスのデータパターンのことを「シグネチャ」と呼びますが、このシグネチャを配布して、該当するデータパターンがコンピュータ上のファイルと一致しないかを探すためにスキャンを行います。
そのためパターンマッチングは、過去に検出されたことのあるウイルスへの感染を検知するためには有効な方法です。しかし、今までに検出されたことがない新種のウイルスに対しては対応することができません。
新しく登場したウイルスを検知する方法
パターンマッチング以外のウイルスの検知方法として代表的なのが「ヒューリスティック検知」と呼ばれる方法です。
ヒューリスティック(heuristic)という単語は、直訳すると「発見的(手法)」という意味で、サイバーセキュリティの分野に限って言えば「経験則や試行錯誤によってある程度正しい答えを導き出せる」といった意味合いを持っています。
ウイルス(マルウェア)はファイルの書き換えなどを、悪意を持って行うプログラムです。
ヒューリスティック検知では、パターンマッチングのようにデータそのもののパターンをチェックするのではなく、プログラムによる特定の動作を検知してその動作によってウイルスだと判断する検知方法です。
そのためデータパターンがまだ確認されていない新たなウイルスでも検知できることが特徴となります。
ただし、年々精度は上がってきているものの、仕組み上どうしても誤検知が起こりえるという課題も存在します。
2パターンのヒューリスティック検知
ヒューリスティック検知は、さらに細かく見ていくと振る舞い検知と呼ばれる「動的ヒューリスティック検知」と「静的ヒューリスティック検知」に分けることができます。
実際にウイルスの検知を行う際には、この2つの検知方法を組み合わせて利用されることが多いです。
静的ヒューリスティック検知とは
静的ヒューリスティック検知はプログラムを実行する前に分析を行い、ウイルスらしき特定の動作をするかどうかを検知する方法です。プログラムを動作させずに分析を行うため、ウイルス感染のリスクが低い分析方法です。
一方で、この手法はウイルスを事前に検知しきれないこともあるため、疑わしいプログラムによる動作を検知した場合は、動的ヒューリスティック検知でさらにチェックを行うといったように組み合わせて使われることが多くあります。
動的ヒューリスティック検知とは
動的ヒューリスティック検知は、コンピュータ内にサンドボックスと呼ばれる検証用の仮想環境を作り、そこで実際にプログラムを動かして動作を検知する方法です。
プログラムの動作(振る舞い)を実際に動かしてみて検知することから「振る舞い検知」とも呼ばれます。
暗号化などを行なって実行前に検知されないよう対策が行われているウイルスも、実際に仮想環境上で動いているところをチェックすることで検知することができます。
ただしこの方法は検知を行うための負荷が高いため、静的ヒューリスティック検知を事前に行った上で疑わしいプログラムに実行されることが多いです。
終わりに
今回の記事を読んでウイルス定義ファイルを最新化することがなぜ重要なのかお分りいただけたでしょうか。
パターンマッチングを行うにはウイルスのデータパターン(定義ファイル)をアップデートすることで最新のウイルスを検知することができますが、パターンにないウイルスにも対応するためにヒューリスティック検知が存在します。
ご利用中のセキュリティソフトがどのような検知方法を利用しているか、それぞれの検知方法が有効になっているか改めて確認してみるとよいかもしれません。
【関連リンク】
・未知ウイルス検出技術に関する調査 調査報告書(独立行政法人情報処理推進機構)
https://www.ipa.go.jp/security/fy15/reports/uvd/documents/uvd_report.pdf
・振る舞い検知とは?機械学習を活用した未知の脅威への強力な対策(マカフィー)
https://blogs.mcafee.jp/behavior-threat-prevention
・アンチウイルスの基礎:ウイルス、シグネチャ、駆除(カスペルスキー)
https://blog.kaspersky.co.jp/signature-virus-disinfection/12878/
TEXT:セキュリティ通信 編集部
PHOTO:iStock