Комментарии 2
Отличная статья, спасибо.
Может быть пропустил в тексте, но упомяну лишний раз тогда, что иногда для нормального фаззинга приходится модифицировать сам код некоторым образом, например, пропускать проверки контрольных сумм и прочие подобные, которые могут быть тривиально вычислены атакующим, но при этом заблокирую фаззер на этом месте намертво.
Может быть пропустил в тексте, но упомяну лишний раз тогда, что иногда для нормального фаззинга приходится модифицировать сам код некоторым образом, например, пропускать проверки контрольных сумм и прочие подобные, которые могут быть тривиально вычислены атакующим, но при этом заблокирую фаззер на этом месте намертво.
+4
Спасибо за отзыв и напоминание!
У нас мысль о создании "фаззинг-сборок" в том или ином виде встречается по тексту. Чаще всего создание таких фаззинг-сборок требуется как раз для afl, который в большинстве случаев применяется для фаззинга всей библиотеки или исполняемого файла, когда, как было сказано, LibFuzzer позволяет многие такие моменты обойти и фаззить отдельные функция / классы.
Помимо контрольной суммы еще частый пример GUI и открытие файла, то есть когда ждет взаимодействия с пользователем после выполнения тестируемых операций. И пару примеров как это выглядит на практике:
- патчи для компилирования фаззинг сборки популярного irc-клиента среди любителей консоли — irrsi
- статья с Хабра про изменение nginx для получения им входных данных не через сеть, а через stdin для последующего фаззинга с помощью afl
+2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
DevSecOps: организация фаззинга исходного кода