sg 情報セキュリティ マルウェア対策 ウイルス検知
ウイルスを検知する方法|SG試験対策
まず結論
ウイルスを検知する方法は、既知のウイルスを見つける方法と、未知・変種のウイルスを疑う方法に分けて考えると整理しやすいです。
SG試験では、特に次の切り分けが重要です。
| 検知方法 | 見ているもの | 得意なこと | 注意点 |
|---|---|---|---|
| パターンマッチング | 既知の特徴的なコード | 既知ウイルスの検知 | 暗号化・変種・未知に弱い |
| ヒューリスティック検知 | 怪しい命令や構造 | 未知・変種の検知 | 誤検知の可能性がある |
| ビヘイビア検知 | 実行時の不審な動作 | 感染後の挙動検知 | ウイルス名の特定には不向き |
| サンドボックス検査 | 隔離環境での動作 | 実行後の挙動確認 | 時間や環境依存の回避に注意 |
| ハッシュ値による検知 | ファイル全体の一致 | 同一ファイルの判定 | 亜種・少し改変されたファイルに弱い |
| レピュテーション検知 | ファイルやURLの評判 | 危険な配布元・新しい脅威の早期警戒 | 評価情報に依存する |
| YARAルール等 | 特徴的な文字列や条件 | マルウェア調査・分類 | ルール作成の知識が必要 |
試験では、ウイルス名や亜種の特定に確実という表現が出たら注意です。検知できることと、正確に種類まで特定できることは別です。
直感的な説明
ウイルス検知は、ざっくりいうと「怪しいものを見つけるための見方の違い」です。
たとえば、空港の手荷物検査で考えると分かりやすいです。
- パターンマッチング:登録済みの危険物リストと照合する
- ヒューリスティック検知:形や組み合わせから危険そうだと判断する
- ビヘイビア検知:実際の行動が怪しいかを見る
- サンドボックス検査:安全な別室で動かして様子を見る
- ハッシュ値による検知:全く同じ荷物かどうかを指紋で確認する
つまり、ウイルス検知では、中身そのものを見る方法、構造を見る方法、動作を見る方法、過去の情報と照合する方法があります。
定義・仕組み
パターンマッチング方式
パターンマッチング方式は、ウイルス定義ファイルやシグネチャファイルに登録された既知の特徴的なコード列と、検査対象のファイルを照合する方式です。
既知のウイルスに対しては有効ですが、次のようなケースには弱くなります。
- 新種のウイルス
- 既存ウイルスを少し改変した亜種
- コードが暗号化・難読化されたウイルス
- 実行時に自身を変化させるタイプのマルウェア
添付画像のように、暗号化された文書中のマクロウイルスの動作を解明するのに有効という説明は誤りです。パターンマッチングは、基本的には既知の特徴と一致するかを確認する方法であり、暗号化された中身や実行時の動作解析には向きません。
ヒューリスティック検知
ヒューリスティック検知は、既知のパターンと完全一致しなくても、プログラムの構造や命令の組み合わせから「ウイルスらしい」と判断する方法です。
たとえば、次のような特徴を手がかりにします。
- 自分自身をコピーしようとする
- システム領域を書き換えようとする
- 不審なAPIを呼び出す
- メールやネットワーク経由で拡散しようとする
未知のウイルスや亜種に対応しやすい反面、正常なプログラムを誤って危険と判定する誤検知が起こることもあります。
ビヘイビア検知
ビヘイビア検知は、プログラムを実行したときの動作を監視し、不審な振る舞いを検知する方法です。
たとえば、次のような動作が対象になります。
- 大量のファイルを暗号化する
- レジストリやシステム設定を不自然に変更する
- 外部サーバへ不審な通信を行う
- 他のプロセスに侵入しようとする
- 権限昇格を試みる
添付画像の選択肢にあるように、ビヘイビア検知は、ウイルス名の特定には不向きですが、検知された感染・発病動作から、どの系統に近いウイルスかを判断する用途には向いています。
サンドボックス検査
サンドボックス検査は、疑わしいファイルを本番環境ではなく、隔離された仮想環境で実行し、その動作を観察する方法です。
メールの添付ファイルやダウンロードファイルに対して、実際に動かしたときに不審な通信やファイル操作がないかを確認します。
ただし、マルウェアの中には、仮想環境で動いていることを検知すると動作を止めるものもあります。そのため、サンドボックスだけで完全に安全とは言い切れません。
ハッシュ値による検知
ハッシュ値による検知は、ファイルから生成したハッシュ値を、既知の悪性ファイルのハッシュ値と照合する方法です。
同じファイルからは同じハッシュ値が生成されるため、全く同じファイルかどうかを確認する用途に向いています。
ただし、ファイルの一部でも変更されるとハッシュ値は変わります。そのため、亜種や少し改変されたマルウェアの種類を特定する方法としては不向きです。
添付画像のように、ハッシュ値からウイルスの亜種を特定するのに確実な手法という説明は誤りです。
レピュテーション検知
レピュテーション検知は、ファイル、URL、送信元IPアドレス、ドメインなどの評判情報をもとに危険性を判断する方法です。
たとえば、次のような情報を利用します。
- 多くの利用者から危険と報告されているURL
- 過去にマルウェア配布に使われたドメイン
- 信頼性の低い配布元から取得されたファイル
- 利用実績が少ない実行ファイル
クラウド型のセキュリティ製品で使われることが多く、新しい脅威への早期対応に役立ちます。
YARAルールなどによる検知
YARAは、マルウェア調査などで使われるルールベースの検知方法です。特定の文字列、バイト列、条件をルールとして定義し、それに一致するファイルを見つけます。
SG試験で深く問われる可能性は高くありませんが、パターンマッチングに近い考え方で、より柔軟に条件を定義できるものとして知っておくと理解しやすいです。
どんな場面で使う?
既知のウイルスを効率よく検知したい場合
既知のウイルスを検知する場合は、パターンマッチングやハッシュ値による検知が有効です。
ただし、ハッシュ値は「同じファイルかどうか」の判定が中心であり、少しでもファイルが変わると一致しなくなる点に注意が必要です。
未知のウイルスや亜種を検知したい場合
未知のウイルスや亜種を検知したい場合は、ヒューリスティック検知、ビヘイビア検知、サンドボックス検査が有効です。
特にランサムウェアのように、実行後に大量のファイルを暗号化するタイプでは、実行時の動作を監視するビヘイビア検知が重要になります。
メール添付ファイルやWeb経由の脅威を調べたい場合
メール添付ファイルやWebからダウンロードされたファイルは、サンドボックス検査やレピュテーション検知と相性がよいです。
安全な環境で実行して挙動を確認したり、取得元の評判情報を使って危険性を判断したりします。
よくある誤解・混同
誤解1:パターンマッチングは未知のウイルスにも強い
パターンマッチングは、既知の特徴と照合する方法です。
そのため、定義ファイルに登録されていない未知のウイルスや、特徴が変化した亜種には弱いです。
誤解2:暗号化されたウイルスもパターンマッチングで確実に検知できる
暗号化や難読化によって、ファイル上の見た目が変わると、登録済みのパターンと一致しにくくなります。
暗号化された中身の解析や実行時の動作確認には、ビヘイビア検知やサンドボックス検査の考え方が関係します。
誤解3:ハッシュ値を見れば亜種まで特定できる
ハッシュ値は、基本的にファイル全体が同じかどうかを見るものです。
亜種はファイル内容が少し変わっていることが多いため、ハッシュ値だけで亜種を確実に特定するのは難しいです。
誤解4:ビヘイビア検知ならウイルス名まで正確に分かる
ビヘイビア検知は、動作から不審さを判断する方法です。
そのため、感染・発病動作から系統を推定することはできますが、ウイルス名を正確に特定する方法としては不向きです。
誤解5:検知できれば完全に防御できる
検知はあくまで対策の一部です。
実際には、次のような対策と組み合わせる必要があります。
- OSやソフトウェアの更新
- 不審な添付ファイルを開かない教育
- 権限管理
- バックアップ
- EDRやログ監視
- インシデント対応手順の整備
SG試験での選択肢の切り分け
「既知の特徴と照合」ならパターンマッチング
問題文に、次のような表現があればパターンマッチングを考えます。
- ウイルス定義ファイル
- シグネチャ
- 既知の特徴的なコード
- パターンファイルと照合
ただし、未知・暗号化・亜種に強いと書かれていたら注意です。
「怪しい構造・命令」ならヒューリスティック
問題文に、次のような表現があればヒューリスティック検知を考えます。
- ウイルスらしい特徴
- 怪しい命令列
- 既知パターンに完全一致しない
- 未知のウイルスや亜種を検知
ただし、誤検知の可能性があります。
「実行時の動作」ならビヘイビア検知
問題文に、次のような表現があればビヘイビア検知を考えます。
- 実行時の挙動
- ファイル改ざん
- 不審な通信
- 大量の暗号化
- 感染・発病動作
ただし、ウイルス名を確実に特定する方法ではありません。
「隔離環境で動かす」ならサンドボックス
問題文に、次のような表現があればサンドボックス検査を考えます。
- 仮想環境
- 隔離環境
- 安全な環境で実行
- 添付ファイルを実行して挙動を確認
「同一ファイルの確認」ならハッシュ値
問題文に、次のような表現があればハッシュ値による検知を考えます。
- ファイルの同一性
- ハッシュ値
- 既知の悪性ファイルと一致
- 改ざん検知
ただし、亜種の特定に確実という説明は誤りになりやすいです。
例題
問題
ウイルスを検知する方法に関する説明として、最も適切なものはどれか。
ア. パターンマッチング方式は、暗号化された文書中のマクロウイルスの動作を解明するのに有効である。
イ. ハッシュ値を用いる方式は、ファイルのハッシュ値からウイルスの亜種を確実に特定するのに有効である。
ウ. 不正な動作からウイルスを検知する方式は、ウイルス名を確実に特定するのに有効である。
エ. 不正な動作からウイルスを検知する方式は、検知された感染・発病動作から、どの系統に属するウイルスであるかを判定するのに向いている。
正解
エ
解説
アは誤りです。パターンマッチングは既知の特徴と照合する方式であり、暗号化された文書中のマクロウイルスの動作解明には向きません。
イは誤りです。ハッシュ値は同一ファイルの確認には有効ですが、亜種の特定に確実な方法ではありません。
ウは誤りです。不正な動作を見る方式は、ウイルス名の正確な特定には不向きです。
エが正解です。ビヘイビア検知のように動作を見る方式では、感染・発病時の挙動から、どの系統に近いウイルスかを判断することがあります。
まとめ(試験直前用)
ウイルスを検知する方法は、何を手がかりにしているかで整理すると分かりやすいです。
- 既知のコードと照合する → パターンマッチング
- 怪しい構造や命令を見る → ヒューリスティック検知
- 実行時の不審な動作を見る → ビヘイビア検知
- 隔離環境で実際に動かす → サンドボックス検査
- 同じファイルか確認する → ハッシュ値による検知
- 評判情報で危険性を見る → レピュテーション検知
SG試験では、次の判断基準を押さえておきましょう。
- パターンマッチングは既知ウイルスに強いが、未知・暗号化・亜種に弱い
- ハッシュ値は同一ファイル確認に強いが、亜種特定には不向き
- ビヘイビア検知は動作を見るが、ウイルス名の確実な特定には不向き
- 未知・変種対策では、ヒューリスティック、ビヘイビア、サンドボックスが重要
「何と照合するのか」「何を観察するのか」を意識すると、選択肢を切り分けやすくなります。