パターンマッチング法
マルウェアを検出する手法である。既知のマルウェアの特徴的なコードをパターンとしてマルウェア定義ファイルに登録し、検査対象と照合して一致するものを検出する。
イマシルちゃんの解説
パターンマッチング法は、コンピュータに害を与えるマルウェアを見つける方法だよ。
指名手配のポスターと見比べるように、すでに分かっている特徴を手がかりにするんだ。
その特徴を集めたリストがマルウェア定義ファイルで、検査するファイルの中に一致する部分があるかを調べるよ。
既知のマルウェアを見つけるのが得意だけれど、安全なファイルを誤って検出することもあるんだ。
反対に、登録された特徴と一致しないマルウェアは見逃してしまうよ。
登録した特徴で探す仕組みだから、リストを更新しておくことも大切なんだ。
この解説はわかりやすかったですか?
より深い解説
定義
パターンマッチング法は、既知のマルウェアから抽出した特徴的なバイト列(シグネチャ)をマルウェア定義ファイル(パターンファイル)に登録しておき、検査対象のファイルやメモリの内容と照合して、同じパターンが含まれていればマルウェアとして検出する手法である。多くのマルウェア対策ソフトの基本となる方式である。
長所と短所
| 長所 | 短所 |
|---|---|
| 既知のマルウェアを、高い精度で検出できる | 定義ファイルに登録されていない未知のマルウェアは検出できない |
| 誤検知が少ない | 定義ファイルを常に最新にしておく必要がある |
| マルウェアの名前を特定できる | コードを少し変えた亜種や、実行のたびに姿を変えるマルウェアを見逃しやすい |
新しいマルウェアが出現してから、定義ファイルに登録されるまでの間は、防御できない期間になる。この期間を狙う攻撃は、ゼロデイ攻撃と同じように危険である。
検出を逃れる手口
| 手口 | 内容 |
|---|---|
| ポリモーフィック型 | 感染のたびに、コードを異なる鍵で暗号化して、見た目を変える |
| メタモーフィック型 | コードそのものを書き換えて、見た目を変える(処理の内容は同じ) |
| パッカー | 実行ファイルを圧縮・暗号化して、元のコードを隠す |
| ファイルレス | ファイルを残さず、メモリ上やOSの正規のツール(PowerShellなど)だけで活動する |
ヒューリスティック法
パターンマッチング法の弱点を補うため、特定のパターンとの完全な一致ではなく、「マルウェアがよく使う命令の組み合わせ」や「不審な構造」をもとに判断するヒューリスティック法がある。
| 種類 | 内容 |
|---|---|
| 静的ヒューリスティック法 | プログラムを実行せずに、コードを解析して判断する |
| 動的ヒューリスティック法 | プログラムを実行して、振る舞いから判断する(ビヘイビア法と同じ考え方) |
ほかの検出手法との区別
| 手法 | 検出の手がかり |
|---|---|
| パターンマッチング法 | 定義ファイルに登録された特徴的なコード |
| ビヘイビア法 | 実行時の読み書きや通信などの振る舞い |
| コンペア法 | 安全な場所に保管した原本(またはそのハッシュ値)との比較 |
| チェックサム法 | 検査対象に付けておいたチェックサムとの照合 |
IDSやIPSにも同じ考え方があり、既知の攻撃のパターン(シグネチャ)と照合する方式をシグネチャ型(不正検出)、普段と異なる通信を検出する方式をアノマリ型(異常検出)という。