О чем вы думаете, когда слышите слово «фаззинг»? Одни вспоминают о приказе ФСТЭК России № 239, другие — об утилитах с пугающими отчетами, а кто-то и вовсе озадаченно пожимает плечами. Рассказываем, для чего нужен фаззинг, зачем его применять и каким он бывает.
Навигация по статье:
• Ввод понятия
• Подходы к тестированию (White/Black/Grey Box)
• Необходимость проведения
• Ограничения в выборе
• Международные практики
• Вместо заключения
• Для статистики
Ввод понятия
В ГОСТ 58142 «Информационная технология. Методы и средства обеспечения безопасности. Детализация анализа уязвимостей программного обеспечения в соответствии с ГОСТ Р ИСО/МЭК 15408 и ГОСТ Р ИСО/МЭК 18045. Часть 2. Тестирование проникновения» есть следующее определение: «фаззинг — это тестирование, использующее как корректные, так и случайные (включая некорректные) входные данные для проверки, устанавливающей, обрабатываются ли должным образом интерфейсом случайные входные данные или возникает ошибочная ситуация (ошибочное условие), указывающая (указывающее) на наличие недостатков при разработке (ошибки исходного кода) или при эксплуатации».
Если проще, то фаззинг — это проверка на то, могут ли при обработке случайных, в том числе некорректных, входных данных некоторыми частями софта возникнуть «странности» в поведении ПО, которые разработчики не закладывали в его функционал.
Из определений ясно, что фаззинг позволяет обнаружить ошибки сразу на нескольких стадиях жизненного цикла программного средства: разработки и применения. Неужели этот метод настолько универсален?