1 декабря команда специалистов по безопасности Google анонсировала новую программу OSS-Fuzz в рамках которой планирует выделить ресурсы на непрерывный фаззинг ПО с открытым исходным кодом (новость, пост в блоге Google Security). Фаззинг — это метод автоматизированного тестирования программ, идея которого была сформулирована еще в конце 80-х (PDF). С ростом производительности компьютеров достаточно прямолинейный процесс скармливания софту произвольных данных в поиске уязвимостей становится все актуальнее. Да и вообще, в мире где компьютерами все чаще управляют другие компьютеры, это годная тема, уже включенная, например, в методику Secure Development Lifecycle у Microsoft.
Объясняя успешность подхода именно по отношению к свободному ПО, в Google приводят пример уязвимости в библиотеке Freetype, обнаруженной фаззером OSS-Fuzz. Freetype установлена на миллиардах устройств, и поэтому исследовать такой софт важно. Серьезные уязвимости в опенсорсе вроде Heartbleed показали, что сама возможность независимого аудита не равняется повышенной безопасности. У людей просто не хватает рук проанализировать все, поэтому на сцену выходят роботы. Странно, что в Google ничего не рассказывают про фаззинг Android, хотя исследователи из других компаний таки этим занимаются.
На самом деле главная польза проекта заключается в том, что Google приглашает сторонних исследователей и мейнтейнеров открытого софта, по сути предоставляя им вычислительные ресурсы в рамках проекта. В своих впечатлениях исследователь и разработчик Алекс Гэйнор пишет, что меньше чем за день его тестовый код, добавленный в OSS-Fuzz, обработал 17 триллионов тестовых кейсов, на что в домашних условиях у него ушел бы месяц.
Читать полностью »