Что такое fuzz-тестирование и где его используют?

1. Что такое Fuzz-тестирование

Fuzz Testing (Fuzzing) — это метод автоматического тестирования программного обеспечения путём подачи на вход случайных, некорректных или неожиданных данных с целью выявления ошибок, сбоев или уязвимостей.

Цель:

  • Найти баги, которые не выявляются обычным функциональным тестированием

  • Проверить устойчивость системы к некорректным, нестандартным или злонамеренным данным


2. Особенности Fuzz-тестирования

  • Обычно автоматизированное, генерация входных данных происходит программно

  • Часто применяется для безопасности и стабильности

  • Не гарантирует полное покрытие, но позволяет находить «тяжёлые» баги


3. Где используется Fuzz Testing

  1. Безопасность (Security Testing)

    • Проверка на уязвимости: buffer overflow, SQL-injection, XSS

  2. Системы с критической стабильностью

    • ОС, драйверы, сетевые протоколы, базы данных

  3. API и веб-приложения

    • Проверка обработки некорректных или случайных данных

  4. Форматы файлов и мультимедиа

    • Проверка загрузки PDF, изображений, видео


4. Примеры инструментов

  • AFL (American Fuzzy Lop) — для C/C++ приложений

  • Burp Suite Intruder / OWASP ZAP — для веб-приложений

  • Peach Fuzzer — для сетевых протоколов и приложений

  • Fuzzing в Python/JavaScript — простые скрипты генерации случайных данных

Last updated

Was this helpful?