contact@jetteam.dev
Компетенции и кейсы/Данные, ML и компьютерное зрение
NDAR&D · безопасность

Повышение эффективности фаззинга нейросетевыми моделями мутаций

Исследовательская работа. Пять стратегий выбора мутаций – собственный плагин, softmax-бандит, GRU, LSTM и DQN – встраивались надстройкой в стандартный фаззер и сравнивались с ним на 21 открытой программе при одинаковом бюджете времени. Целевая метрика – прирост покрытия кода.

21реальная программа в прогоне, бюджет времени у всех стратегий одинаковый
2цели из двадцати одной, на которых прирост оказался устойчивым

Контекст

Классический фаззер мутирует входные данные вслепую, и большая часть мутаций не открывает новых путей выполнения. Идея исследования – подсказывать направление мутации моделью, не трогая сам фаззер.

В среднем по 21 цели лучший результат показала одна стратегия из пяти, но почти весь её прирост приходится на две программы. На остальных целях надстройка не окупает затраченного на неё времени.

схема

Что дали модели мутаций

СРЕДНЕЕ ИЗМЕНЕНИЕ ПОКРЫТИЯ ПО 21 ЦЕЛИ, %softmax-бандит+7.3DQN+1.0GRU-1.1LSTM-2.8свой плагин-7.2SOFTMAX-БАНДИТ ПО КАЖДОЙ ИЗ 21 ЦЕЛИприрост на 11 целях, потеря на 6, без изменений на 4vim +140 %wc +61 %без этих двух среднее по остальным – -2.5 %Все пять стратегий прогнаны при одинаковом бюджете времени и сравниваются с базовым фаззером на тех же программах.
Цифры – изменение покрытия кода относительно базового прогона на той же программе и том же бюджете времени. У выигравшей стратегии плюс собирается на vim и wc, на остальных целях среднее уходит в минус.
из проекта

Результаты на реальных программах

Таблица прогона: пять стратегий мутаций на 21 программе, изменение покрытия относительно базового фаззера по ка
Таблица прогона: пять стратегий мутаций на 21 программе, изменение покрытия относительно базового фаззера по каждой цели, включая отрицательные значения.

Что входило в задачи

  • Выборкатестовые входы и данные о покрытии кода
  • Встраивание в фаззернадстройка поверх готового инструмента, без правки его ядра
  • Разбор без форматаструктура входных данных выводится моделью, описание формата не требуется
  • Пять стратегийсвой плагин, softmax-бандит, GRU, LSTM и DQN
  • Прогон на 21 целиодинаковый бюджет времени у всех стратегий
  • Разбор результатагде прирост держится, а где подход не окупается

Стек проекта

PythonPyTorchC / C++инструменты фаззингаанализ покрытия

Есть похожая задача?

contact@jetteam.dev