平成28年度秋期 応用情報技術者試験 午前 問45
脆弱性検査手法の一つであるファジングはどれか。
- ア 既知の脆弱性に対するシステムの対応状況に注目し,システムに導入されているソフトウェアのバージョン及びパッチの適用状況の検査を行う。
- イ ソフトウェアのデータの入出力に注目し,問題を引き起こしそうなデータを大量に多様なパターンで入力して挙動を観察し,脆弱性を見つける。
- ウ ソフトウェアの内部構造に注目し,ソースコードの構文を機械的にチェックするホワイトボックス検査を行うことによって脆弱性を見つける。
- エ ベンダや情報セキュリティ関連機関が提供するセキュリティアドバイザリなどの最新のセキュリティ情報に注目し,ソフトウェアの脆弱性の検査を行う。
解答・解説を見る
正解:イ
AI解説
正解はイ。ファジング(fuzzing)は、検査対象のソフトウェアに対して、問題を引き起こしそうなデータ(ファズ:極端に長い文字列、異常な形式のデータなど)を大量かつ多様なパターンで自動的に入力し、その挙動(クラッシュや異常動作)を観察して未知の脆弱性を発見する動的な検査手法である。入出力に着目したブラックボックス的手法である点が特徴である。 ア: 誤り。ソフトウェアのバージョンやパッチ適用状況を調べるのは、既知の脆弱性への対応状況の検査(脆弱性スキャンの一種)であり、ファジングではない。 イ: 正解。異常なデータを大量・多様に入力して挙動を観察し、脆弱性を見つけるのがファジングである。 ウ: 誤り。ソースコードの構文を機械的にチェックするのは静的解析(ホワイトボックス検査)であり、プログラムを実際に動かすファジングとは異なる。 エ: 誤り。セキュリティアドバイザリなどの公開情報に基づいて検査するのは、既知の脆弱性情報の収集・照合による検査であり、ファジングではない。 💡 ファジング=「ファズ(異常データ)を大量に食わせて壊れないか見る」動的テストと覚える。ソースを読む静的解析との対比、既知脆弱性のスキャンとの対比がひっかけの典型である。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。