ファジング 【fuzzing】 ファズテスト / fuzz testing
概要
ファジング(fuzzing)とは、ソフトウェアテストの手法の一つで、開発者が想定しにくい様々な種類のデータを入力してみて、不具合がないか調べるもの。外部からの攻撃に利用できる保安上の弱点(脆弱性)が存在しないか調べるために行われることが多い。ソフトウェアに対するテストの多くは、想定される用途や使用環境、操作方法、入力データなどをに対して期待通りの処理や動作が行われるかを調べるために行われる。しかし、それだけでは想定外の操作やデータによって致命的な誤作動が引き起こされる可能性が残るため、通常は想定されない利用パターンに対する反応を調べるファジングが行われる。
最も一般的な方式では、「ファジングツール」「ファザー」と呼ばれる専用ソフトウェアを用いて対象の挙動に問題を引き起こしそうな入力値を大量に自動生成する。これをテストツールで次々にテスト対象に与え、その反応から未知の問題が発生しないか調べる。
検査用の入力値は正常な入力値の例を元に、一部を置き換えたり改変するなどして生成する手法が用いられることが多いが、まったくランダムに生成する手法や、怪しい入力値を人が考えて列挙する方式、値を連続的に変化させてあり得る入力値をしらみつぶしに調べる方式などが用いられることもある。
(2024.2.15更新)