Некоторые преимущества фаззинга по сравнению с другими методами тестирования безопасности:
- Возможность автоматически находить ошибки в сложном коде с большим количеством ветвлений. 5 Фаззинг может обнаружить проблемы, которые почти невозможно выявить при ручном и статическом анализе. 5
- Поиск ошибок, которые не получается обнаружить в ходе других видов тестирования. 2 Например, уязвимость обхода каталогов, которая позволяет злоумышленнику получить доступ к файлам и каталогам за пределами предполагаемой структуры каталогов. 3
- Информация об общем состоянии безопасности приложения. 3 Анализируя результаты фаззинг-тестирования, разработчики могут выявить закономерности и тенденции, указывающие на системные недостатки в дизайне или реализации приложения. 3
- Минимизация человеческого участия в процессе тестирования. 12 Машинное тестирование обходится гораздо дешевле, чем проверки, выполняемые командой разработчиков. 2
Некоторые недостатки фаззинга:
- Затраты на внедрение анализаторов кода. 1 Также необходимо привлечь экспертов высокого уровня для оценки результатов тестирования и устранения обнаруженных проблем. 1
- Значительные временные затраты. 12 Чем быстрее проводится анализ, тем меньше шансов обнаружить серьёзные проблемы. 2
- Сложности с созданием эффективных тестовых примеров, которые точно моделируют реальные сценарии атак. 3 Генерация случайных входных данных может выявить множество уязвимостей, но её не всегда может быть достаточно для выявления более сложных или целенаправленных атак. 3
- Проблемы с интерпретацией результатов. 3 Большой объём данных, полученных в ходе фаззинг-тестирования, может затруднить выявление и определение приоритетности наиболее критических уязвимостей. 3
Фаззинг — только один из видов тестирования, и он не обеспечит 100% результата в тестировании безопасности. 4 Самый эффективный подход — системный, необходимо использовать фаззинг совместно с другими видами тестирования. 4