応用情報技術者試験 令和5年秋 午前問46 解説付き過去問
問題
問題を引き起こす可能性があるデータを大量に入力し、そのときの応答や挙動を監視することによって、ソフトウェアの脆弱性を検出するテスト手法はどれか。
正解
解説
この問題は、ソフトウェアのセキュリティテスト手法の一つである「ファジング(Fuzzing)」の特徴について理解しているかを問うものです。
- ファジングとは
- 具体的な実施方法
- ランダムに生成された文字列や数値
- 想定よりも長い文字列
- 異常な形式や範囲外の値
- 他の選択肢との違い
- 限界値分析:入力値の境界部分(最大・最小値など)を中心にテストケースを作成するブラックボックステスト
- 実験計画法:複数の要因の組合せと影響を統計的に分析するための設計手法
- ロードテスト:大量のアクセスやデータ処理を行い、システムの性能や応答性を評価するテスト
ファジングは、ソフトウェアやシステムに対して、大量の予期しない、ランダムな、または異常なデータを入力し、その際の応答や挙動を監視することで、セキュリティ上の脆弱性や不具合を発見するテスト手法です。
主にバッファオーバーフローや例外処理の欠如、アプリケーションのクラッシュなどの脆弱性の発見に有効です。
ファジングでは、次のような入力データが使用されます。
これらをAPI、フォーム、ネットワークプロトコル、ファイルインタフェースなどに対して自動的に送信し、異常終了や想定外の動作がないかを観察します。
以下はファジングとは異なるテスト手法です。
したがって、問題を引き起こす可能性がある大量のデータを入力し、挙動を監視することで脆弱性を検出するテスト手法は、ファジングです。