Разработчики Chromium рассказали о проекте ClusterFuzz, в рамках которого создан кластер для проведения fuzzing-тестирования браузера и смежных открытых проектов. Суть метода в генерации потока всевозможных случайных комбинаций входных данных, приближенных к реальным данным (например, html-страницы с случайными параметрами тегов или изображения с аномальными заголовками), и фиксации возможных сбоев в процессе их обработки. Если какая-то последовательность приводит к краху или не соответствует ожидаемой реакции, то такое поведение с высокой долей вероятности свидетельствует об ошибке или уязвимости. Для анализа причин зафиксированных крахов используется открытый инструментарий Address Sanitizer.
В настоящее время в состав кластера ClusterFuzz входит несколько сотен виртуальных машин, которые одновременно тестируют около 6000 экземпляров Chrome, автоматически собранных из последней рабочей ревизии в репозитории проекта. Ежедневно выполняется около 50 млн тестов. В течение ближайших нескольких недель размер кластера планируется увеличить примерно в 4 раза. Кластер был введён в строй в конце прошлого года, за это время с его помощью было выявлено 95 новых уязвимостей, 44 из которых были выявлены и исправлены в процессе отладки нового кода экспериментальных выпусков, т.е. данные уязвимости не фигурировали в стабильных релизах. Кроме тестирования Chrome, проверку в кластере также проходят кодовые базы проектов WebKit и FFmpeg, для которых исправления выявленных уязвимостей передаются в upstream.