Фаззинг-тестирование. Что такое, с чего начать и к чему стремиться?

BIS Journal №3(58)2025

14 октября, 2025

Фаззинг-тестирование. Что такое, с чего начать и к чему стремиться?

C августа 2024 года проектом OSS-Fuzz зарегистрировано не менее 750 подтверждённых уязвимостей в open-source-компонентах. Не менее 20 исправлений десятков уязвимостей в них за этот же период внесено Центром исследования безопасности системного ПО, сформированным при участии отечественных экспертов.

Эти цифры объединяет одно: данные уязвимости выявлены видом динамического анализа кода под названием «фаззинг». Тестировщики, которые впервые с ним знакомятся, ассоциируют его с анализом граничных значений, оценкой на основе эквивалентных классов, тестированием property-based. Действительно, эти виды тестирования отчасти покрываются в ходе фаззинга, но всплывают и нюансы, которые делают процедуру не такой уж и простой.

 

ФАЗЗИНГ: ЧТО ЭТО?

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

  • в зависимости от оценки выполнения кода фаззинг проводится по принципу «белого», «серого» и «чёрного» ящиков;
  • подход к формированию входных значений, семплов, может быть генерационным — не связанным с процессом фаззинга — или мутационным — основанным на получаемом покрытии кода;
  • целью исследования может быть как конечный исполняемый файл, так и конкретная библиотечная функция.

Большой ассортимент существующих инструментов, фаззеров, «даёт разгуляться». Однако такая вариативность создаёт определённую сложность в реализации фаззинг-тестирования.

 

С ЧЕГО НАЧАТЬ?

Простой фаззинг можно запустить «на коленке», достаточно определить цель. В таком случае проще получить генерационный фаззинг чёрного ящика: входные семплы генерируются случайно, информации о покрытии кода нет, целью выступает конечный исполняемый процесс, который можно запустить и вручную. Такой подход является примитивом к фаззингу веб-приложений: программа-клиент отправляет на сервер запросы, в их содержимое подставляются случайные данные. Результат ожидаемо «сырой»: искать «вредные» семплы необходимо самостоятельно.

 

К ЧЕМУ СТРЕМИТЬСЯ?

Освоение мутационного фаззинга серого ящика удобно начать с формирования на базе юнит-тестов «фаззинг-обёрток» — программ, вызывающих исследуемый код и подающих на вход данные от фаззера. Интересными целями выступают библиотечные функции: строкочувствительные, утилитарные, с высокой цикломатической сложностью, парсеры, десериализаторы и т. п. Их тест завязан на трёх элементах:

  • проинструментированная библиотека;
  • фаззер;
  • скомпилированная обёртка с входным набором данных, обеспечивающих стартовое покрытие.

Дополнить процесс можно:

  • мутаторами, увеличивающими входной набор данных;
  • словарями, насыщающими семплы значениями, влияющими на ход выполнения кода.

Работа фаззера сводится к увеличению числа уникальных путей исполнения кода. Но следует помнить, что важен не только конечный уровень покрытия, но и общее число запусков цели. А для повышения эффективности поиска дефектов процесс дополняют средствами отлова ошибок — санитайзерами, фиксирующими отклонения от штатного выполнения программы.

 

ИГРА СТОИТ СВЕЧ

Внедрение фаззинга берёт начало от крупных игроков ИТ-индустрии и вызвано стремлением к повышению качества и безопасности продуктов: фаззинг давно доказал свою эффективность в поиске багов и уязвимостей. Ясна и риторика регулятора: искать ошибки нужно уметь, особенно если речь идёт о том, что действительно важно, и фаззинг — эффективный способ для этого.

Стать автором BIS Journal

Смотрите также

Подписаться на новости BIS Journal / Медиа группы Авангард

Подписаться
Введите ваш E-mail

Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных

14.10.2025
«Мы рискуем потерять до 80% клиентов». Биометрия радикально сократит рынок МФО?
14.10.2025
Сохранить всё: человеческий фактор на службу бизнесу
14.10.2025
ФСТЭК, ФСБ и Банк России озвучили планы по изменению регулирования в сфере ИБ на конференции АБИСС
13.10.2025
«Сбер» обеспокоен принудительной заменой продуктов Visa и Mastercard
13.10.2025
Введение новых самозапретов и попытки слома старых
13.10.2025
Аферы скамеров слишком дорого обходятся компаниям по всему миру
13.10.2025
Discord пострадала из-за взлома внешнего партнёра
13.10.2025
Евросоюз начал замещать штампы в загранпаспортах биометрией
13.10.2025
Нейросеть Банка России поможет с оформлением договоров
13.10.2025
Синхронизация внедрения ДБО и Цифрового рубля становится ключевым трендом для банков

Стать автором BIS Journal

Поля, обозначенные звездочкой, обязательные для заполнения!

Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных