March 14, 2023

Что такое Fuzzing?

Приветствую, друзья 🥷

В этой статье разберем метод тестирования программного обеспечения.

Фазз-тестирование - это метод тестирования ПО способом "черного ящика", он заключается в поиске ошибок реализации посредством введения недостоверных данных в автоматизированной задаче.

Такой анализ является техникой тестирования, которая используется повсеместно тестировщиками и разработчиками на проникновение, чтобы проверить приложения на неожиданные, недопустимые и случайные наборы вводимых данных. В ответ на такие действия приложение выдает ошибку или сбой. Весь процесс показывает, что в системе есть уязвимости. Такие как:

  • переполнение буфера
  • форматные строки
  • инъекции кода
  • висячие указатели
  • условия отказа в обслуживании

История появления

Классическое фазз-тестирование было разработано в Университете Висконсин-Мэдисон в 1989 году профессором Бартоном Миллером и студентами. Оно было ориентировано на интерфейс в целом и командную строку. Именно оно устанавливает, что современные ОС являются уязвимыми для самого простого фаззинга.

Типы атак

Подход в этом тестировании заключается в определении списков "известных опасных значений" (fuzz vectors) для каждого вида:

  • Для целых чисел в список входит: ноль, отрицательные и очень большие числа.
  • Для символов это: экранированные, интерпретируемые символы / инструкции
  • Для двоичных чисел: случайные единицы.
  • Для символов: экранированные, интерпретируемые символы / инструкции (например: кавычки)

Специальная программа для фаззинга — фаззер перебирает комбинации атак на следующие "мишени":

  • числа (целые числа со знаком/без знака/плоские числа)
  • символы (вводы командной строки)
  • метаданные: вводимый пользователем текст
  • чистые двоичные последовательности.

Важность Fazzing для тестирования безопасности

Вся суть тестирования строится на гипотезе, что в каждой программе есть ошибки, которые могут быть найдены в самый неожиданный момент. Поэтому, система и структурный подход очень скоро помогут их обнаружить.

Фаззинг привнесет в классическое тестирование ПО новые перспективы и векторы развития, поскольку является машинным методом в противопоставление классическим методам, таким как: ручной просмотр кода и отладка. Он станет отличным дополнением благодаря своей работе.


Теперь вы знаете о методике тестирования ПО. Берите на заметку, хакеры🥷


​​​​​​​​​​​​​​​🔥 Ставь реакцию, если понравилась статья ​

​​​​​​​​​​​​⚡️Остались вопросы? Пиши - @golden_hpa