ITの教科書検索
入門読了 約10分

ビヘイビア法とヒューリスティック法の違い

定義ファイルに無い新しいマルウェアは、動かさずに命令を調べるヒューリスティック法と、動かして振る舞いを見るビヘイビア法で探します。5つの検出方法を比べて整理しました。

目次
  1. ビヘイビア法とヒューリスティック法の違い:動かすか、動かさないか
  2. パターンマッチング法と定義ファイルの更新
  3. ヒューリスティック法:実行せずに命令を調べる
  4. ビヘイビア法:動かして振る舞いを見る
  5. コンペア法とチェックサム法:原本からの変化を見る
  6. 検体ごとに、どの手法で見つかるか
  7. ヒューリスティック法の範囲は資料で違う
  8. 誤検知と見逃し
  9. 練習問題

ビヘイビア法とヒューリスティック法の違い:動かすか、動かさないか

ビヘイビア法とヒューリスティック法の違いは、検査するプログラムを動かすかどうかです。ヒューリスティック法は、実行せずに中の命令の怪しい並びを探します。ビヘイビア法は、実際に動かして振る舞いを監視します。

どちらも、新しいマルウェアに備える方法です。新しいマルウェアは、既知の特徴を登録した定義ファイルとの照合では見つかりません。ビヘイビア法は、振る舞い検知とも呼ばれます。

マルウェアの検出手法としてよく挙がるのは、パターンマッチング法・ビヘイビア法・ヒューリスティック法の3つです。これにコンペア法とチェックサム法を加えた5つは、何と比べるかで整理できます。ヒューリスティック法とビヘイビア法の分け方は、資料によって違います。ここでは、実行するかどうかで2つを分けます。

調べるもの比べる相手実行せずに中身を調べるパターンマッチング法ファイルの中身実行しない同じか定義ファイル既知の特徴ヒューリスティック法ファイルの命令実行しない似ているか怪しい命令の並び既知に限らない動かして調べるビヘイビア法動かしたときの動き実行する当てはまるか怪しい動き書込み・通信など原本からの変化を調べるコンペア法今のファイル実行しない違うか安全な場所の原本感染前の写しチェックサム法今のファイルの値検査時に計算合うか付けておいた値感染前に付加実行せずに中身を調べるパターンマッチング法調べる:ファイルの中身比べる:定義ファイルヒューリスティック法調べる:ファイルの命令比べる:怪しい命令の並び動かして調べるビヘイビア法調べる:動かしたときの動き比べる:怪しい動き原本からの変化を調べるコンペア法調べる:今のファイル比べる:安全な場所の原本チェックサム法調べる:今のファイルの値比べる:付けておいた値
5つの手法は、比べる相手が違います。検査するプログラムを動かすのは、ビヘイビア法だけです。コンペア法とチェックサム法は、マルウェアの特徴ではなく、ファイルが感染前から変わったかを見ます。

パターンマッチング法と定義ファイルの更新

パターンマッチング法は、マルウェアに特徴的なコードと検査するファイルを照らし合わせる方法です。このコードは、あらかじめ登録しておきます。特徴を登録したファイルをマルウェア定義ファイルと呼びます。アメリカの国立標準技術研究所(NIST)の手引きSP 800-83は、この特徴の集まりをシグネチャと呼んでいます。

既知のマルウェアは、定義ファイルが最新なら高い精度で見つけられます。NISTの手引きの2005年版は、少し書き換えた亜種を見つけるのにも役立つことが多いとしています。一方で、定義ファイルは既知のマルウェアをもとに作るので、まったく新しいマルウェアには効きません。

同じ手引きは、大手の対策ソフトの会社が、重大な新しい脅威の定義をふつう数時間のうちに出すと書いています。定義が届くまでの間、まったく新しいマルウェアはパターンマッチング法では見つかりません。修正プログラムが出る前に脆弱性を突かれるゼロデイ攻撃と同じく、知られる前の空白の期間があります。

そのため、定義ファイルは常に最新に保ちます。NISTの手引きの改訂版も、ウイルス対策ソフトは定義が最新のときに最も効果があるとしています。

ヒューリスティック法:実行せずに命令を調べる

ヒューリスティック法は、ファイルを実行せずに、中の命令を調べます。たとえば、ファイルを次々に暗号化する命令や、自分を別の場所へ書き写す命令の並びです。こうした怪しい命令の並びに当てはまれば、マルウェアの疑いがあると判定します。

特定のマルウェアの特徴と比べるわけではないので、定義ファイルに無いマルウェアにも反応できます。NISTの手引きの2005年版は、未知のマルウェアを見つけるための技術として説明しています。ただし、怪しい命令を使う正規のソフトを、誤ってマルウェアと判定することがあります。

ヒューリスティック法は、実行せずに調べるので静的な方法に分けられます。ただし、動かして調べる方法まで含める資料もあり、その違いは後の節で説明します。次に説明するビヘイビア法は、動かして調べる動的な方法です。

ビヘイビア法:動かして振る舞いを見る

ビヘイビア法は、プログラムを動かし、その振る舞いを監視します。IPAは、感染によって生じるデータの読込みや書込みの動作、通信などを監視する方法として説明しています。命令が目立たない形で書かれていても、動かせば実際に何をしたかが分かります。

怪しい振る舞いの例は、短い間に多くのファイルを書き換える動きや、知らない宛先への通信です。正規のソフトが同じような動きをすれば、誤検知になります。PCやサーバの中の動きを記録し続けて見張る仕組みを、EDRと呼びます。

サンドボックスで動かして調べる

怪しいファイルを利用者のPCで動かすと、本当に被害が出るおそれがあります。そこで、ほかの環境から切り離したサンドボックスの中で動かし、振る舞いを見る方法があります。サンドボックスは、プログラムができる操作を制限し、ほかのアプリケーションから切り離す環境です。NISTの手引きは、そう説明しています。

マルウェアを動かして分析するときは、本番の機器を使いません。同じ手引きは、隔離した試験用の機器を使うのが最もよいとしています。試験用の機器では、仮想化したOSを使うことが多いとも書いています。

時間をおいて動くマルウェア

サンドボックスで調べる時間には限りがあります。MITRE ATT&CKは、攻撃の手口をまとめた資料です。この資料は、一時的なサンドボックスの中で動かないよう、待ち時間を入れる手口を挙げています。NISTの手引きも、仮想化した環境に気づいて振る舞いを変えるマルウェアがあると注記しています。

動かして見るには、動かす環境と、振る舞いが表れるまでの時間が要ります。調べている間に振る舞いが表れなければ、ビヘイビア法でも見つけられません。

コンペア法とチェックサム法:原本からの変化を見る

ここまでの3つは、マルウェアの特徴や振る舞いを手がかりにします。コンペア法とチェックサム法は、ファイルが感染前から変わったかを手がかりにします。

コンペア法は、感染が疑わしいファイルを、安全な場所に保管しておいた原本と比べます。異なっていれば、感染の疑いがあると判定します。IPAの説明には、ファイルそのものではなくハッシュ値どうしを比べる形のものもあります。

チェックサム法は、感染していないことを示す値を、あらかじめファイルに付けておきます。検査のときに値を計算し直し、付けておいた値と合わなければ、感染の疑いがあると判定します。チェックサムは、データから計算する短い検査用の値です。

2つとも、原本や付けておいた値があるファイルにしか使えません。また、ファイルが変わったことは分かっても、どのマルウェアかは分かりません。5つの手法の違いを表にまとめます。

手法調べるもの比べる相手実行するか
パターンマッチング法ファイルの中身定義ファイルにある既知の特徴しない
ヒューリスティック法ファイルの中の命令怪しい命令の並びしない
ビヘイビア法動かしたときの振る舞い書込みや通信などの怪しい動きする
コンペア法今のファイル安全な場所に保管した原本しない
チェックサム法今のファイルから計算した値感染前に付けておいた値しない

検体ごとに、どの手法で見つかるか

同じ検体でも、手法によって結果が変わります。次の図で検体の特徴を選ぶと、3つの手法の結果が出ます。見つかる手法の枠は、緑で示します。

検体の特徴
定義ファイルに特徴が載っているマルウェアです。ファイルを次々に暗号化する命令を含みます。
パターンマッチング法
見つかる
定義ファイルの特徴と一致するので、見つかります。
ヒューリスティック法
見つかる
暗号化を繰り返す命令が、怪しい命令の並びに当てはまるので見つかります。
ビヘイビア法
見つかる
動かすとファイルを次々に書き換えるので、その動きで見つかります。

どの手法にも、見逃す検体があります。NISTの手引きの改訂版は、いくつもの検出の技術を組み合わせるよう勧めています。少なくとも1つが振る舞いに気づく見込みを高めるためです。

同じ手引きは、相手ごとに作り変えたマルウェアには、定義に頼る対策が追いつかないと述べています。特定の組織を狙う手口は、標的型攻撃の記事にまとめています。

ヒューリスティック法の範囲は資料で違う

ヒューリスティック法とビヘイビア法の関係は、資料によって分け方が違います。

NISTの手引きの2005年版は、ヒューリスティックの技術の例を2つ挙げています。怪しいコードの並びを探すことと、仮想マシンで動かして振る舞いを見ることです。この分け方では、動かして調べる方法もヒューリスティックに入ります。

IPAは、実行が必要な手法としてビヘイビア法を挙げています。資料を読むときは、実行せずに調べるか、動かして調べるかで見分けます。このサイトでは、実行しないものをヒューリスティック法、動かすものをビヘイビア法と呼び分けています。

誤検知と見逃し

正規のソフトをマルウェアと判定する誤りをフォールスポジティブと呼び、誤検知とも言います。マルウェアを見つけられない誤りはフォールスネガティブで、見逃しとも言います。ネットワークの通信を見るIDSとIPSの2つの誤りと、同じ考え方です。

マルウェアと判定した判定しなかった
実際はマルウェア正しく見つけた見逃し(フォールスネガティブ)
実際は正規のソフト誤検知(フォールスポジティブ)正しく通した

NISTの手引きの2005年版は、ヒューリスティックの技術がときに誤検知を起こすとしています。誤検知は、利用者と担当者の負担になります。そのため、多くの製品は初期設定でヒューリスティックの水準を中か低にしていると書いています。そのぶん、新しいマルウェアの見逃しは増えます。

同じ手引きは、どの水準にしても、新しいマルウェアを高い精度で見つけることはできないとしています。反対に、定義ファイルが最新なら、既知の脅威は非常によく見つけられるとしています。パターンマッチング法の見逃しは、定義ファイルに特徴が無いマルウェアで起きます。

練習問題(全6問)

Q1検査するプログラムを実際に動かし、その振る舞いからマルウェアを見つける方法はどれ?
Q2ヒューリスティック法の説明として正しいものは?
Q3パターンマッチング法で見逃しが起きるのは、どの場合?
Q4コンペア法の説明として正しいものは?
Q5サンドボックスで動かして調べるとき、見逃しやすいマルウェアはどれ?
Q6正規のソフトを、ビヘイビア法がマルウェアと判定した。この誤りを何と呼ぶ?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

参考にした資料

関連記事

おすすめの本 PR

セキュリティとデータベースは、基本情報技術者試験の対策本でまとめて学べます。

目的別の本の選び方を見る

セキュリティの記事を続けて読む

セキュリティ 全37本中27本目