Об эффективности мутационного ... Заметка
RSS Проект Ноль

Об эффективности мутационного грамматического фуззинга

Мутационное грамматическое фаззинг — это техника фаззинга, в которой фаззер использует предопределенную грамматику, описывающую структуру образцов. Когда образец мутирует, мутации происходят таким образом, что любые полученные образцы по-прежнему соответствуют правилам грамматики, таким образом, структура образцов сохраняется процессом мутации. В случае с coverage-guided грамматическим фаззингом, если полученный образец (после мутации) вызывает ранее невиданное покрытие кода, этот образец сохраняется в корпусе образцов и используется в качестве основы для будущих мутаций. Эта техника доказала свою способность находить сложные проблемы, и я успешно использовал ее в прошлом, в том числе для обнаружения проблем в реализациях XSLT в веб-браузерах и даже ошибок в движках JIT. Однако, несмотря на эффективность этого подхода, он не лишен недостатков, которые для случайного пользователя фаззинга могут быть неочевидны. В этой статье я представлю то, что я считаю недостатками подхода мутационного coverage-guided грамматического фаззинга. Я также опишу очень простую, но эффективную технику, которую я использую в своих запусках фаззинга, чтобы противостоять этим недостаткам.