この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ウ

解説

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

なぜ他の選択肢は違うのか

選択肢 ア
「サーバにFINパケットを送信し、サーバからの応答を観測して、稼働しているサービスを見つけ出す」は、ポートスキャン(FINスキャンなど)の説明です。稼働中のサービスやポートの状態を調べる偵察手法であり、多様な入力でソフトウェアの脆弱性を探すファジングとは目的も方法も異なります。稼働中のサービスやポートの状態を調べる偵察手法であり、ソフトウェアに多様な入力を与えて挙動を監視し脆弱性を発見するファジングとは、目的も手法も全く異なります。
選択肢 イ
「ログやコマンド履歴を解析して、ファイルサーバに保存されているファイルの改ざんを検知する」は、ログ監視や改ざん検知の説明です。事後的に痕跡を解析して不正を見つける活動であり、能動的に多様なデータを入力して脆弱性を見つけ出すファジングとは異なります。事後にログや履歴を解析して改ざんなどの不正を見つける活動であり、能動的に多様なデータを入力して未知の脆弱性を探すファジングとは、アプローチが根本的に異なります。
選択肢 エ
「ネットワーク上を流れるパケットを収集し、攻撃パターンと一致した場合に不正アクセスと判断する」は、シグネチャ型のIDS/IPS(不正侵入検知)の説明です。通信を監視して既知の攻撃を検出する仕組みであり、ソフトウェアに多様な入力を与えて脆弱性を探すファジングとは異なります。通信を監視して既知の攻撃パターンを検出するシグネチャ型IDS/IPSの説明であり、ソフトウェアに多様な入力を与えて脆弱性を探すファジングとは目的が異なります。

解くときのポイント

ファジング=問題を起こしそうな多様・大量のデータを入力し、挙動を監視して未知の脆弱性を発見する動的テスト。静的解析(ソースコード解析)と対比。ポートスキャンやIDSとは目的が異なる。