正解は ウ
ファジング(fuzzing)は、ソフトウェアの脆弱性を見つけ出すためのテスト手法の一つです。検査対象のソフトウェアに対して、極端に長い文字列、想定外の値、不正な形式のデータなど、問題を引き起こしそうな多様なデータ(ファズ)を大量かつ自動的に入力し、そのときのソフトウェアの挙動(異常終了、フリーズ、予期しない応答など)を監視することで、未知の脆弱性やバグを発見します。選択肢cは「ソフトウェアに、問題を引き起こしそうな多様なデータを入力し、挙動を監視して、脆弱性を見つけ出す」とあり、ファジングの定義そのものなので正解です。ファジングは、ソースコードを解析する静的解析とは異なり、実際にプログラムを動作させながら多様な入力で揺さぶる動的なテスト手法であり、開発者が想定していなかった入力に対する堅牢性を確認できる点が特徴です。製品出荷前のセキュリティテストとして広く活用されています。ファジングは想定外の入力に対する堅牢性を確認でき、開発者が見落とした境界条件や例外処理の不備を効率よくあぶり出せる、実践的なセキュリティテストとして重視されています。
ファジング=問題を起こしそうな多様・大量のデータを入力し、挙動を監視して未知の脆弱性を発見する動的テスト。静的解析(ソースコード解析)と対比。ポートスキャンやIDSとは目的が異なる。