スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.4198
ソフトウェアの脆弱性を発見するために用いられるファジングに関する記述として不適切なものはどれか。

【正解の解説】

ファジングは、あらかじめ作成した仕様書や設計書に基づき、プログラムのソースコードの論理的な誤りを人間が目視で一行ずつ確認するテスト手法である。

人間が目でコードを追うのは「コードレビュー」や「静的解析」と呼ばれる手法です。ファジングは、人間が手作業でするのではなく、コンピュータが自動でメチャクチャな入力を大量に浴びせかけてプログラムのボロを出す手法なので、この記述はファジングではなく手動テストの説明になっています。

スポンサーリンク

【その他の選択肢の解説】

ファジングは、テスト対象のプログラムに対して、意図的に不正なデータや予期しない入力を大量に与えてその応答を監視する手法である。

これはまさにファジングの王道の仕組みを説明しています。例えば、自動販売機に硬貨だけでなく、ボタンを同時に連打したりおもちゃのコインを入れたりして、機械がエラーを起こして壊れないか片っ端から試すようなアプローチを、プログラムに対して自動で行うのがファジングです。

ファジングは、プログラムの実行パスを網羅的に通過するようにテストケースを効率的に自動生成して脆弱性を検出する手法である。

ファジングツールは、プログラムの隅々までデータが行き渡るように、賢くテストデータを自動生成して送り込みます。人間では思いつかないような変な入力パターンを爆発的に作り出すことで、プログラマーも気づかなかった想定外のバグや脆弱性をあぶり出すことができます。

ファジングは、ブラックボックス型のテスト手法として分類され、内部のソースコードを参照せずに脆弱性を発見するために用いられる。

ファジングは中身のソースコードの仕組みをあらかじめ知る必要がなく、外側から見て「変な入力を入れたら変な挙動をするか」だけを見るため、ブラックボックス型テストに分類されます。中身が見えない黒い箱に対して、とりあえず色々ないたずらをしてみて反応を見るイメージです。