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