---
title: "ウイルスを検知する方法｜SG試験対策"
description: "情報セキュリティマネジメント試験で問われやすい、パターンマッチング、ヒューリスティック、ビヘイビア、サンドボックス、ハッシュ値、逆アセンブルなどのウイルス検知・調査方法を初心者向けに整理します。 選択肢で問われる目的・対象・責任範囲を押さえ、似た用語や対策との違いを判断できるようにします。"
last_modified_at: "2026-05-29"
canonical_url: "https://stemtazoo.github.io/sg/virus-detection-methods/"
section: "sg"
---

## まず結論

ウイルスを検知する方法は、**既知のウイルスを見つける方法**と、**未知・変種のウイルスを疑う方法**に分けて考えると整理しやすいです。

SG試験では、特に次の切り分けが重要です。

| 検知方法 | 見ているもの | 得意なこと | 注意点 |
|---|---|---|---|
| パターンマッチング | 既知の特徴的なコード | 既知ウイルスの検知 | 暗号化・変種・未知に弱い |
| 逆アセンブル | 実行ファイルの命令列 | バイナリから動作を解析 | 検知よりも調査・解析寄り |
| ヒューリスティック検知 | 怪しい命令や構造 | 未知・変種の検知 | 誤検知の可能性がある |
| ビヘイビア検知 | 実行時の不審な動作 | 感染後の挙動検知 | ウイルス名の特定には不向き |
| サンドボックス検査 | 隔離環境での動作 | 実行後の挙動確認 | 時間や環境依存の回避に注意 |
| ハッシュ値による検知 | ファイル全体の一致 | 同一ファイルの判定 | 亜種・少し改変されたファイルに弱い |
| レピュテーション検知 | ファイルやURLの評判 | 危険な配布元・新しい脅威の早期警戒 | 評価情報に依存する |
| YARAルール等 | 特徴的な文字列や条件 | マルウェア調査・分類 | ルール作成の知識が必要 |

試験では、**ウイルス名や亜種の特定に確実**という表現が出たら注意です。検知できることと、正確に種類まで特定できることは別です。

### SG試験で選択肢を切る判断軸（先にここだけ）

- **既知の一致確認**か（パターンマッチング・ハッシュ）
- **未知の不審性判断**か（ヒューリスティック・ビヘイビア）
- **隔離環境での実行確認**か（サンドボックス）

選択肢で「**何を根拠に検知しているか**」を見分けると、誤答を切りやすくなります。

---

## 直感的な説明

ウイルス検知は、ざっくりいうと「怪しいものを見つけるための見方の違い」です。

たとえば、空港の手荷物検査で考えると分かりやすいです。

- **パターンマッチング**：登録済みの危険物リストと照合する
- **ヒューリスティック検知**：形や組み合わせから危険そうだと判断する
- **ビヘイビア検知**：実際の行動が怪しいかを見る
- **サンドボックス検査**：安全な別室で動かして様子を見る
- **ハッシュ値による検知**：全く同じ荷物かどうかを指紋で確認する

つまり、ウイルス検知では、**中身そのものを見る方法**、**構造を見る方法**、**動作を見る方法**、**過去の情報と照合する方法**があります。

---

## 定義・仕組み

### パターンマッチング方式

パターンマッチング方式は、ウイルス定義ファイルやシグネチャファイルに登録された**既知の特徴的なコード列**と、検査対象のファイルを照合する方式です。

既知のウイルスに対しては有効ですが、次のようなケースには弱くなります。

- 新種のウイルス
- 既存ウイルスを少し改変した亜種
- コードが暗号化・難読化されたウイルス
- 実行時に自身を変化させるタイプのマルウェア

SG試験の選択肢で見かける「**暗号化された文書中のマクロウイルスの動作解明に有効**」という説明は誤りです。パターンマッチングは、基本的には既知の特徴と一致するかを確認する方法であり、暗号化された中身や実行時の動作解析には向きません。

### 逆アセンブル

逆アセンブルは、実行ファイルのバイナリコードを、プログラマが読みやすいアセンブリ言語に変換して解析する方法です。

ソースコードを入手できないマルウェアでも、命令列を読み解くことで、どのような処理を行うかを調べられます。  
そのため、新種のウイルスや未知の不審ファイルについて、内部の動作を詳しく知りたい場面に向いています。

ただし、逆アセンブルは自動的に「検知する」方法というより、検体を詳しく調べるための**解析手法**です。  
SG試験では、パターンマッチングやハッシュ照合のような照合型の検知と区別して考えます。

### ポリモーフィック型ウイルス（ミューテーション型）とは

ポリモーフィック型ウイルス（ミューテーション型）は、**感染や複製のたびに、暗号化や復号ルーチンの見た目を変えて、同じパターンで検知されにくくする**タイプです。

SG試験では、次の表現があれば最優先で疑います。

- 感染のたびに異なる鍵やコードを使う
- 同一シグネチャ（同一パターン）で検知されにくい
- 変種が次々に現れる

つまり、論点は「自己増殖」そのものより、**検知回避のために見た目を変える**点です。

### ヒューリスティック検知

ヒューリスティック検知は、既知のパターンと完全一致しなくても、プログラムの構造や命令の組み合わせから「ウイルスらしい」と判断する方法です。

たとえば、次のような特徴を手がかりにします。

- 自分自身をコピーしようとする
- システム領域を書き換えようとする
- 不審なAPIを呼び出す
- メールやネットワーク経由で拡散しようとする

未知のウイルスや亜種に対応しやすい反面、正常なプログラムを誤って危険と判定する**誤検知**が起こることもあります。

### ビヘイビア検知

ビヘイビア検知は、プログラムを実行したときの**動作**を監視し、不審な振る舞いを検知する方法です。

たとえば、次のような動作が対象になります。

- 大量のファイルを暗号化する
- レジストリやシステム設定を不自然に変更する
- 外部サーバへ不審な通信を行う
- 他のプロセスに侵入しようとする
- 権限昇格を試みる

SG試験の選択肢でも、ビヘイビア検知は**ウイルス名の特定には不向き**ですが、検知された感染・発病動作から、どの系統に近いウイルスかを判断する用途には向いています。

### サンドボックス検査

サンドボックス検査は、疑わしいファイルを本番環境ではなく、隔離された仮想環境で実行し、その動作を観察する方法です。

メールの添付ファイルやダウンロードファイルに対して、実際に動かしたときに不審な通信やファイル操作がないかを確認します。

ただし、マルウェアの中には、仮想環境で動いていることを検知すると動作を止めるものもあります。そのため、サンドボックスだけで完全に安全とは言い切れません。

### ハッシュ値による検知

ハッシュ値による検知は、ファイルから生成したハッシュ値を、既知の悪性ファイルのハッシュ値と照合する方法です。

同じファイルからは同じハッシュ値が生成されるため、**全く同じファイルかどうかを確認する**用途に向いています。

ただし、ファイルの一部でも変更されるとハッシュ値は変わります。そのため、亜種や少し改変されたマルウェアの種類を特定する方法としては不向きです。

SG試験では、**ハッシュ値からウイルスの亜種を特定するのに確実な手法**という説明は誤りです。

### レピュテーション検知

レピュテーション検知は、ファイル、URL、送信元IPアドレス、ドメインなどの評判情報をもとに危険性を判断する方法です。

たとえば、次のような情報を利用します。

- 多くの利用者から危険と報告されているURL
- 過去にマルウェア配布に使われたドメイン
- 信頼性の低い配布元から取得されたファイル
- 利用実績が少ない実行ファイル

クラウド型のセキュリティ製品で使われることが多く、新しい脅威への早期対応に役立ちます。

### YARAルールなどによる検知

YARAは、マルウェア調査などで使われるルールベースの検知方法です。特定の文字列、バイト列、条件をルールとして定義し、それに一致するファイルを見つけます。

SG試験で深く問われる可能性は高くありませんが、**パターンマッチングに近い考え方で、より柔軟に条件を定義できるもの**として知っておくと理解しやすいです。

---

## どんな場面で使う？

### 既知のウイルスを効率よく検知したい場合

既知のウイルスを検知する場合は、パターンマッチングやハッシュ値による検知が有効です。

ただし、ハッシュ値は「同じファイルかどうか」の判定が中心であり、少しでもファイルが変わると一致しなくなる点に注意が必要です。

### 未知のウイルスや亜種を検知したい場合

未知のウイルスや亜種を検知したい場合は、ヒューリスティック検知、ビヘイビア検知、サンドボックス検査が有効です。

特にランサムウェアのように、実行後に大量のファイルを暗号化するタイプでは、実行時の動作を監視するビヘイビア検知が重要になります。

### メール添付ファイルやWeb経由の脅威を調べたい場合

メール添付ファイルやWebからダウンロードされたファイルは、サンドボックス検査やレピュテーション検知と相性がよいです。

安全な環境で実行して挙動を確認したり、取得元の評判情報を使って危険性を判断したりします。

---

## よくある誤解・混同

### 誤解1：パターンマッチングは未知のウイルスにも強い

パターンマッチングは、既知の特徴と照合する方法です。

そのため、定義ファイルに登録されていない未知のウイルスや、特徴が変化した亜種には弱いです。

### 誤解2：暗号化されたウイルスもパターンマッチングで確実に検知できる

暗号化や難読化によって、ファイル上の見た目が変わると、登録済みのパターンと一致しにくくなります。

暗号化された中身の解析や実行時の動作確認には、ビヘイビア検知やサンドボックス検査の考え方が関係します。

### 誤解3：ハッシュ値を見れば亜種まで特定できる

ハッシュ値は、基本的にファイル全体が同じかどうかを見るものです。

亜種はファイル内容が少し変わっていることが多いため、ハッシュ値だけで亜種を確実に特定するのは難しいです。

### 誤解4：ビヘイビア検知ならウイルス名まで正確に分かる

ビヘイビア検知は、動作から不審さを判断する方法です。

そのため、感染・発病動作から系統を推定することはできますが、ウイルス名を正確に特定する方法としては不向きです。

### 誤解5：検知できれば完全に防御できる

検知はあくまで対策の一部です。

実際には、次のような対策と組み合わせる必要があります。

- OSやソフトウェアの更新
- 不審な添付ファイルを開かない教育
- 権限管理
- バックアップ
- EDRやログ監視
- インシデント対応手順の整備

---

## SG試験での選択肢の切り分け

### 「既知の特徴と照合」ならパターンマッチング

問題文に、次のような表現があればパターンマッチングを考えます。

- ウイルス定義ファイル
- シグネチャ
- 既知の特徴的なコード
- パターンファイルと照合

ただし、**未知・暗号化・亜種に強い**と書かれていたら注意です。

### 「バイナリを読み解く」なら逆アセンブル

問題文に、次のような表現があれば逆アセンブルを考えます。

- 実行ファイルをアセンブリ言語に変換する
- ソースコードがないプログラムの処理内容を調べる
- バイナリコードから新種ウイルスの動作を解析する

逆アセンブルは、既知パターンとの照合ではなく、**内部の処理を読み解く調査手法**です。

### 「怪しい構造・命令」ならヒューリスティック

問題文に、次のような表現があればヒューリスティック検知を考えます。

- ウイルスらしい特徴
- 怪しい命令列
- 既知パターンに完全一致しない
- 未知のウイルスや亜種を検知

ただし、誤検知の可能性があります。

### 「実行時の動作」ならビヘイビア検知

問題文に、次のような表現があればビヘイビア検知を考えます。

- 実行時の挙動
- ファイル改ざん
- 不審な通信
- 大量の暗号化
- 感染・発病動作

ただし、ウイルス名を確実に特定する方法ではありません。

### 「隔離環境で動かす」ならサンドボックス

問題文に、次のような表現があればサンドボックス検査を考えます。

- 仮想環境
- 隔離環境
- 安全な環境で実行
- 添付ファイルを実行して挙動を確認

### 「同一ファイルの確認」ならハッシュ値

問題文に、次のような表現があればハッシュ値による検知を考えます。

- ファイルの同一性
- ハッシュ値
- 既知の悪性ファイルと一致
- 改ざん検知

ただし、亜種の特定に確実という説明は誤りになりやすいです。

### ポリモーフィック型と他用語の切り分け

SG試験では、次のように切り分けると選択肢を落としやすくなります。

| 用語 | 判断キーワード | 何が本質か |
|---|---|---|
| ポリモーフィック型 | 異なる鍵・異なるコードで同一パターン検知を回避 | 検知回避のために見た目を変化 |
| ボット | 外部から命令を受けて遠隔操作される | 攻撃者の指示で動く感染端末 |
| ルートキット | 管理者権限で痕跡を隠す | 侵入後の隠蔽・権限維持 |
| マルチプラットフォーム型 | 複数OSで動作する | 動作環境の広さ |
| ステルス型 | 感染や存在を見えにくくする | 隠蔽そのもの |

選択肢で「遠隔操作」「管理者権限で隠蔽」「複数OS対応」と書かれていれば、ポリモーフィック型の説明ではない可能性が高いです。


## SG試験で選択肢を切る判断軸（ビヘイビア法編）

- 「実際にプログラムを動かして、挙動を監視する」と書かれている  
  → **ビヘイビア法**を優先します。実行時の不正動作（不審な書込み・複製・破壊・通信異常）を見る説明です。

- 「ファイル内容の一致確認だけで判定する」と書かれている  
  → **パターンマッチング法**や**ハッシュ照合**側を疑います。実行せずに静的に見る説明です。

- 「検体を実行する必要はない」と書かれている  
  → **ビヘイビア法としては誤り**です。ビヘイビア法は“振る舞い”を見るため、実行が前提になります。

迷ったら、**「動かして監視か／動かさず照合か」**で先に切り分けます。

## 確認問題（SG試験対策）

ある組織では、既知の定義ファイルでは検知できない不審な実行ファイルを入手した。ソースコードはなく、内部でどのような処理を行うかを詳しく調べたい。この調査方法として最も適切なものはどれか。

- ア. 実行ファイルをアセンブリ言語に変換し、命令列から処理内容を解析する。
- イ. 既知のウイルス定義ファイルと照合し、登録済みパターンと一致するかだけを確認する。
- ウ. ファイル全体のハッシュ値を既知の悪性ファイルと比較し、亜種かどうかを確実に判定する。
- エ. 実行時の不審な動作だけを根拠に、ウイルス名を正確に特定する。

<details markdown="1">
<summary>▶ クリックして答えと解説を見る（ここを開く）</summary>

**正解：ア**

### 解説

- ア：適切です。逆アセンブルは、バイナリコードをアセンブリ言語に変換し、ソースコードがない実行ファイルの動作を解析する方法です。
- イ：パターンマッチングの説明です。既知の特徴との照合には有効ですが、未知の実行ファイルの内部動作を詳しく調べる方法ではありません。
- ウ：ハッシュ値による照合の説明です。同一ファイルの確認には向きますが、亜種を確実に判定する方法ではありません。
- エ：ビヘイビア検知に近い説明ですが、動作だけでウイルス名を正確に特定できるとは限りません。

判断ポイント：**「バイナリコードを読んで動作を解明する」なら逆アセンブル、「既知の特徴と照合」ならパターンマッチングやハッシュ照合です。**

</details>

## まとめ（試験直前用）

ウイルスを検知する方法は、**何を手がかりにしているか**で整理すると分かりやすいです。

- 既知のコードと照合する → **パターンマッチング**
- 実行ファイルを命令列として読み解く → **逆アセンブル**
- 怪しい構造や命令を見る → **ヒューリスティック検知**
- 実行時の不審な動作を見る → **ビヘイビア検知**
- 隔離環境で実際に動かす → **サンドボックス検査**
- 同じファイルか確認する → **ハッシュ値による検知**
- 評判情報で危険性を見る → **レピュテーション検知**

SG試験では、次の判断基準を押さえておきましょう。

- **パターンマッチングは既知ウイルスに強いが、未知・暗号化・亜種に弱い**
- **逆アセンブルは、バイナリから新種ウイルスの動作を解析する調査手法**
- **ハッシュ値は同一ファイル確認に強いが、亜種特定には不向き**
- **ビヘイビア検知は動作を見るが、ウイルス名の確実な特定には不向き**
- **未知・変種対策では、ヒューリスティック、ビヘイビア、サンドボックスが重要**

「何と照合するのか」「何を観察するのか」を意識すると、選択肢を切り分けやすくなります。

## 関連記事（学習導線）

- [マルウェアとは？](https://stemtazoo.github.io/sg/malware/)
- [マルウェア解析とは？](https://stemtazoo.github.io/sg/malware-analysis/)
- [マルウェア脅威のまとめ](https://stemtazoo.github.io/sg/malware-threats-summary/)
