Фаззинг
Б19-505 Алексей Голигузов
Задачи
Фаззинг
Техника тестирования программного обеспечения, часто автоматическая или полуавтоматическая, заключающаяся в передаче приложению на вход неправильных, неожиданных или случайных данных. Предметом интереса являются падения и зависания, нарушения внутренней логики и проверок в коде приложения, утечки памяти, вызванные такими данными на входе
Плюсы
Vocabulary
Может быть получен фаззером
Набор плохих и хороших входных данных
Получает массив байтов на вход
Вызывает код, который нужно протестировать
Инструмент, подающий рандомные входные данные в цель
Алгоритм работы
Пример
Ход работы
2. Написание фаззера
3. Ждем
4. Смотрим логи
Результаты
Выводы
К сожалению, удача была не на моей стороне, или я написал недостаточно хорошие фаззеры, или разработчики boost сделали все хорошо (в это я верю больше всего).
Тем не менее, разработчики должны использовать больше инструментов для тестирования своего кода (не только тесты UIRAP).
Весь код и корпусы могут быть найдены на https://github.com/MyLibh/fuzzing и использованны.