Google запускает сервис тестирования Fuzzer


Google запустил FuzzBench, бесплатный автоматизированный сервис для оценки фаззеров. Google заявляет, что цель FuzzBench — сделать безболезненным тщательную оценку исследований фаззинга и облегчить их принятие сообществом.

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

Разработчики Google считают, что есть недостатки, такие как неиспользование большого и разнообразного набора реальных тестов или слишком мало или слишком короткие испытания. Они отмечают, что:

«Это понятно, поскольку полномасштабные эксперименты могут быть непомерно дорогими для исследователей. Например, 24-часовой, 10 пробных, 10 фаззерных, 20 тестовых экспериментов потребует 2 000 процессоров для завершения в день».

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

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

Команда Google заявляет, что большинство интеграций составляют менее 50 строк кода, и после интеграции фаззера он может «из коробки» фаззировать почти все 250+ проектов OSS-Fuzz. Команда уже интегрировала десять фаззеров, включая AFL, LibFuzzer, Honggfuzz, и несколько академических проектов, таких как QSYM и Eclipser.

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


Добавить комментарий