プロジェクトマネージャ 2023年 午前2 問25
問題文
脆弱性検査手法の一つであるファジングはどれか。
選択肢
ア:既知の脆弱性に対するシステムの対応状況に注目し、システムに導入されているソフトウェアのバージョン及びパッチの適用状況の検査を行う。
イ:ソフトウェアの、データの入出力に注目し、問題を引き起こしそうなデータを大量に多様なパターンで入力して挙動を観察し、脆弱性を見つける。(正解)
ウ:ソフトウェアの内部構造に注目し、ソースコードの構文をチェックすることによって脆弱性を見つける。
エ:ベンダーや情報セキュリティ関連機関が提供するセキュリティアドバイザリなどの最新のセキュリティ情報に注目し、ソフトウェアの脆弱性の検査を行う。
🔒 解説は解答すると表示されます
ファジング【午前2解説】
正解の理由
ファジングは、ソフトウェアに通常とは異なるデータや不正な形式のデータなどを大量に入力し、そのときの挙動を観察して、脆弱性や異常を見つける検査手法です。
データの入出力に注目し、問題を起こしそうな入力をさまざまなパターンで与える説明が該当するため、イが正解です。異常終了や予期しない動作などを手掛かりに、入力処理に潜む問題を発見します。
解法ステップ
- ファジングの特徴を「大量かつ多様なデータを入力する検査」と押さえます。
- 選択肢のうち、ソフトウェアにデータを入力して挙動を観察するものを探します。
- その方法を説明しているイを選びます。
選択肢別の誤答解説
- ア:ソフトウェアのバージョンやパッチ適用状況を確認する検査です。既知の脆弱性への対応状況を調べる方法であり、入力データを大量に与えるファジングとは異なります。
- イ:多様なデータを入力して挙動を観察するファジングの説明です。
- ウ:ソースコードの構文や内容を調べる方法で、静的解析に関する説明です。実行時の入力に対する挙動を調べるファジングとは異なります。
- エ:セキュリティアドバイザリなどの情報を基に脆弱性を調べる方法です。ソフトウェアに多様なデータを入力して検査するものではありません。
よくある誤解
- ランダムなデータだけを使う検査だと思う:ランダムな入力だけでなく、特定の規則で生成した入力や、不正な形式を意図的に作った入力も使われます。
- 異常終了があれば必ず脆弱性だと思う:異常終了などは問題発見の手掛かりですが、それだけで脆弱性と確定するとは限りません。原因や影響を追加で調査します。
- ソースコードを読む検査だと思う:ファジングの中心は、入力に対する実行時の挙動を観察することです。
補足コラム
ファジングは、実際にソフトウェアを動作させて検査する動的な手法です。入力データの生成方法には、ランダムに作る方法や、既存の入力データを変化させる方法などがあります。入力処理の不備による異常終了や、想定外の動作の発見に役立ちます。
FAQ
Q. ファジングと静的解析の違いは何ですか?
A. ファジングは、データを入力して実行時の挙動を調べます。静的解析は、プログラムを実行せずにソースコードなどを調べます。
A. ファジングは、データを入力して実行時の挙動を調べます。静的解析は、プログラムを実行せずにソースコードなどを調べます。
Q. ファジングで見つかるのは異常終了だけですか?
A. いいえ。異常終了だけでなく、予期しない動作や不適切な入力処理なども発見の手掛かりになります。
A. いいえ。異常終了だけでなく、予期しない動作や不適切な入力処理なども発見の手掛かりになります。
関連キーワード: ファジング、動的解析、静的解析、脆弱性検査、入力データ

\ せっかくなら /
プロジェクトマネージャを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

