問題を引き起こす可能性があるデータを大量に入力し脆弱性を検出するテスト手法|情報処理安全確保支援士 平成31年 春期午前Ⅱ試験 問22

出典:平成31年春期 午前Ⅱ 問22 分野:セキュリティ / セキュリティ技術評価
問題を引き起こす可能性があるデータを大量に入力し,そのときの応答や挙動を監視することによって,ソフトウェアの脆弱性を検出するテスト手法はどれか。
  • ア:限界値分析
  • イ:実験計画法
  • ウ:ファジング
  • エ:ロードテスト
解説

ファジングは、ソフトウェアに対して、想定外の値、極端に長い文字列、不正な形式のデータなど、問題を引き起こす可能性があるデータを大量に入力するテスト手法です。

入力後の異常終了、応答停止、メモリ破壊などの挙動を監視することで、開発者が想定していなかった脆弱性や不具合を効率的に検出します。入力データを自動生成して繰り返し試行できる点も特徴です。

したがって、が適切です。

❌他選択肢が誤りの理由
ア:限界値分析
⇒限界値分析は、入力範囲の上限・下限や、その直前・直後の値を重点的にテストする手法です。問題を引き起こす可能性があるデータを大量に生成して、異常な挙動から脆弱性を探すファジングとは異なります。
イ:実験計画法
⇒実験計画法は、複数の要因と結果との関係を効率よく分析するために、実験条件の組合せを計画する統計的手法です。ソフトウェアに大量の異常データを入力して脆弱性を検出する手法ではありません。
エ:ロードテスト
⇒ロードテストは、多数の利用者や大量の処理を想定した負荷を与え、応答時間、処理能力、安定性などを確認する性能テストです。異常な入力データによって脆弱性を検出することを主目的とするファジングとは異なります。
TSUNAGARU-ADVICE

まず押さえたいこと

ファジングは、問題を引き起こす可能性がある大量のデータや異常なデータをソフトウェアに入力し、その応答や挙動を監視して脆弱性を見つけるテスト手法です。想定外の入力に対して、クラッシュ・異常終了・メモリ破壊などが起きないかを確認するため、入力処理の弱点を発見する目的で使われます。

迷ったときの判断軸

限界値分析は入力値の境界付近を重点的に確認するテスト技法、実験計画法は条件の組合せを効率的に検証する手法、ロードテストは負荷を掛けたときの性能や安定性を確認するテストです。ファジングは、大量の不正・異常データを入力して脆弱性を探す手法と判断しましょう。

科目Bにつなげるために

科目Bでは、Webアプリケーション・API・ファイル解析ソフト・ネットワークサービスなどに対して、想定外入力を与えたときの脆弱性検出が問われることがあります。ファジングでは、単に多くのデータを入れるだけでなく、異常な入力に対するエラー処理や例外処理の安全性を確認する視点を持ちましょう。