応用情報技術者試験ナビ ロゴ 応用情報技術者試験ナビ
次回試験日:2025年4月20日(あと1日)

応用情報技術者試験 令和5年秋 午前問46 解説付き過去問

問題

問題を引き起こす可能性があるデータを大量に入力し、そのときの応答や挙動を監視することによって、ソフトウェアの脆弱性を検出するテスト手法はどれか。

正解

解説

この問題は、ソフトウェアのセキュリティテスト手法の一つである「ファジング(Fuzzing)」の特徴について理解しているかを問うものです。

  1. ファジングとは
  2. ファジングは、ソフトウェアやシステムに対して、大量の予期しない、ランダムな、または異常なデータを入力し、その際の応答や挙動を監視することで、セキュリティ上の脆弱性や不具合を発見するテスト手法です。
    主にバッファオーバーフローや例外処理の欠如、アプリケーションのクラッシュなどの脆弱性の発見に有効です。

  3. 具体的な実施方法
  4. ファジングでは、次のような入力データが使用されます。

    • ランダムに生成された文字列や数値
    • 想定よりも長い文字列
    • 異常な形式や範囲外の値

    これらをAPI、フォーム、ネットワークプロトコル、ファイルインタフェースなどに対して自動的に送信し、異常終了や想定外の動作がないかを観察します。

  5. 他の選択肢との違い
  6. 以下はファジングとは異なるテスト手法です。

    • 限界値分析:入力値の境界部分(最大・最小値など)を中心にテストケースを作成するブラックボックステスト
    • 実験計画法:複数の要因の組合せと影響を統計的に分析するための設計手法
    • ロードテスト:大量のアクセスやデータ処理を行い、システムの性能や応答性を評価するテスト

したがって、問題を引き起こす可能性がある大量のデータを入力し、挙動を監視することで脆弱性を検出するテスト手法は、ファジングです。