情報セキュリティマネジメント 2017年 秋期 午前(科目A) 問30
問題文
ファジングの説明はどれか。
選択肢
ア:社内ネットワークへの接続を要求するPCに対して、マルウェア感染の有無を検査し、セキュリティ要件を満たすPCだけに接続を許可する。
イ:ソースコードの構文を機械的にチェックし、特定のパターンとマッチングさせることによって、ソフトウェアの脆弱性を自動的に検出する。
ウ:ソースコードを閲読しながら、チェックリストに従いソフトウェアの脆弱性を検出する。
エ:問題を引き起こしそうな多様なデータを自動生成し、ソフトウェアに入力したときのソフトウェアの応答や挙動から脆弱性を検出する。(正解)
🔒 解説は解答すると表示されます
ファジング(入力自動生成)【情報セキュリティマネジメント解説】
正解の理由
ファジングは、テスト対象のソフトウェアに対して「多数の多様な入力データを自動で作り、それを与えて挙動(応答やクラッシュなど)を観察する」ことで、実行時に表れる脆弱性(vulnerability:攻撃に使われうるソフトやシステムの弱点)を見つける手法です。選択肢の中でこの説明に合致するのは エ です。
ポイントは「入力を自動生成する」「ソフトの実行時の挙動を観察する(動的検査)」という点です。これにより、メモリ破壊や例外発生など、実際の動作でしか現れない不具合を発見できます。
解法ステップ
- 問題文・選択肢から「入力を自動生成」「実行時の挙動」「ソースコードを読む/静的に解析」のどれを示しているかを見分ける。
- 「自動生成+実行時観察」を示す記述があればファジング(正解)と判断。
- 「ソースコードを読む」「構文チェック」「パターンマッチング」は静的解析やコードレビューなのでファジングではないと除外する。
要チェック語句:自動生成、入力データ、多様なデータ、ソフトウェアの応答・挙動、実行時、クラッシュ、など。
選択肢別の誤答解説
- ア: 社内ネットワークへの接続を要求するPCに対してマルウェア感染の有無を検査し…
→ これはネットワークアクセス制御(NAC:Network Access Control)や端末の健全性チェックの説明です。ファジングではありません。 - イ: ソースコードの構文を機械的にチェックし、パターンとマッチングして脆弱性を検出する。
→ これは静的解析(Static Analysis:ソースコードを実行せずに解析する手法)やシグネチャ検査の説明です。ファジングは実行して挙動を観察する点が異なります。 - ウ: ソースコードを閲読しながらチェックリストに従い脆弱性を検出する。
→ これはコードレビュー(手動でソースを読む作業)で、人手による静的な確認です。ファジングではありません。 - エ: 問題を引き起こしそうな多様なデータを自動生成し、ソフトウェアに入力したときの応答や挙動から脆弱性を検出する。
→ これがファジングの本質を表す記述で、したがって エ が正解です。
よくある誤解
- 「ファジングはソースコードがある環境でしか使えない」
→ 誤り。ブラックボックス(ソース無し)でも実行ファイルに対して入力を与えて動作を見ることで使えます。ソースがあるとより効率的に行える(ホワイトボックスやカバレッジ誘導型)だけです。 - 「ファジングだけで全ての脆弱性が見つかる」
→ 誤り。ファジングは有効ですが、論理的な設計ミスや認証回りの脆弱性など、入力だけでは検出しにくい問題もあります。静的解析や手動レビューと併用するのが実務的です。 - 「クラッシュしないと脆弱性ではない」
→ 誤解。クラッシュ以外にもメモリリーク、不正な出力、例外発生、セキュリティ制約の回避なども問題になります。
補足コラム
- ファジングの種類(簡単なまとめ)
- 生成ベース(Generation-based):プロトコルやフォーマットの仕様を元に正しい構造を作り、それを乱す。
- 変異ベース(Mutation-based):既存の正常なデータをランダムに変えてテストデータを作る。
- カバレッジ誘導型(Coverage-guided):コードカバレッジ情報を使って効率よく未探索の経路を狙う。
- 代表的なツール例(名前だけ)
- AFL(American Fuzzy Lop)、libFuzzer、honggfuzz など。
- 実務での使い方のイメージ
- 開発段階の自動テストに組み込み、CI(継続的インテグレーション)で定期的にファジングを回す。外部コンポーネントの評価時にも、提供バイナリに対するブラックボックスファズを実施してリスクを洗い出す。発見した問題は再現手順とログを開発者に渡して修正してもらいます。
FAQ
Q: ファジングはソースコードなしでも使えますか?
A: はい。実行ファイルやネットワークインターフェースに対するブラックボックスファジングが可能です。ただしソースがあると深い解析や効率的探索がしやすくなります。
A: はい。実行ファイルやネットワークインターフェースに対するブラックボックスファジングが可能です。ただしソースがあると深い解析や効率的探索がしやすくなります。
Q: ファジングは自動で修正もしてくれますか?
A: いいえ。ファジングは脆弱性や不具合を「発見」するツールです。見つかった問題は開発者が原因を解析して修正する必要があります。
A: いいえ。ファジングは脆弱性や不具合を「発見」するツールです。見つかった問題は開発者が原因を解析して修正する必要があります。
Q: ファジングは時間やリソースが必要ですか?
A: はい。ランダムに多数の入力を試すため、十分な時間や計算資源があるほど効果が高まります。カバレッジ誘導型は効率を上げる工夫です。
A: はい。ランダムに多数の入力を試すため、十分な時間や計算資源があるほど効果が高まります。カバレッジ誘導型は効率を上げる工夫です。
関連キーワード: ファジング、動的テスト、ブラックボックステスト、生成ベース、変異ベース、カバレッジ誘導、静的解析、コードレビュー、NAC、脆弱性検査

\ せっかくなら /
情報セキュリティマネジメントを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

