OSS-Fuzz от Google, инструмент фазз-тестирования на основе искусственного интеллекта, недавно добился замечательных результатов, успешно обнаружив уязвимости в 26 библиотеках с открытым исходным кодом, включая уязвимость средней степени серьезности в почти 20-летней библиотеке шифрования OpenSSL. Этот прорыв знаменует собой новую веху в автоматизированном обнаружении уязвимостей. Цели фазз-тестирования, созданные с помощью искусственного интеллекта, продемонстрировали мощные возможности в улучшении покрытия кода и обнаружении глубоких уязвимостей. В этой статье будут подробно описаны последние результаты OSS-Fuzz, роль технологии искусственного интеллекта в ней и меры, принятые Google для повышения безопасности кода.
Недавно Google объявила, что ее инструмент фазз-тестирования OSS-Fuzz на основе искусственного интеллекта успешно обнаружил уязвимости в 26 библиотеках с открытым исходным кодом, включая уязвимость средней степени серьезности в библиотеке шифрования OpenSSL.
«Обнаружение этих уязвимостей знаменует собой новую веху в автоматизированном обнаружении уязвимостей: каждая уязвимость обнаруживается с помощью сгенерированных ИИ и расширенных целей нечеткого тестирования», — заявила команда безопасности открытого исходного кода Google в общем сообщении в блоге.
Примечание к источнику изображения: изображение генерируется искусственным интеллектом и поставщиком услуг авторизации изображений Midjourney.
На этот раз обнаружен номер уязвимости OpenSSL — CVE-2024-9143 (оценка CVSS 4.3), которая проявляется в виде ошибки записи за пределами памяти, которая может привести к сбою приложения или удаленному выполнению кода. Эта проблема исправлена в нескольких версиях OpenSSL, включая 3.3.3, 3.2.4, 3.1.8, 3.0.16, 1.1.1zb и 1.0.2zl. В Google отметили, что уязвимость могла существовать в базе кода уже почти 20 лет и что традиционные тесты фазз-тестирования, написанные человеком, не обнаружили бы проблему.
Google также упомянул, что с помощью целей фазз-тестирования, созданных искусственным интеллектом, было улучшено покрытие кода 272 проектов C/C++, добавлено более 370 000 строк нового кода. Google объясняет, что причина, по которой многие ошибки остаются незамеченными, заключается в том, что покрытие кода не означает отсутствие ошибок в функциональности. Покрытие кода само по себе не позволяет измерить все возможные пути и состояния кода, поскольку разные флаги и конфигурации могут вызывать различное поведение и, таким образом, обнаруживать разные уязвимости.
Это обнаружение уязвимостей с помощью искусственного интеллекта также выигрывает от превосходной производительности больших языковых моделей (LLM) при моделировании рабочего процесса нечеткого тестирования разработчиков, что еще больше повышает степень автоматизации. Кроме того, ранее в этом месяце Google сообщила, что ее платформа Big Sleep на основе LLM помогла обнаружить уязвимость нулевого дня в ядре базы данных с открытым исходным кодом SQLite.
Чтобы повысить безопасность собственной кодовой базы, Google продвигает миграцию кода на безопасные для памяти языки, такие как Rust, и устраняет уязвимости безопасности пространственной памяти в существующих проектах C++. Сюда входит переход на безопасные буферы и включение усиленной библиотеки libc++, которая устраняет важный класс уязвимостей пространственной безопасности за счет добавления проверок границ в стандартные структуры данных C++. Google заявляет, что снижение производительности от реализации этих улучшений минимально и составляет в среднем всего 0,30%.
Google также подчеркнул, что усиленная библиотека libc++, недавно добавленная участниками открытого исходного кода, представляет серию проверок безопасности, предназначенных для обнаружения уязвимостей, таких как внешний доступ в производственных средах. Хотя язык C++ не может полностью реализовать безопасность памяти, эти улучшения, несомненно, снижают риски и делают программное обеспечение более надежным и безопасным.
Выделять:
Инструмент Google OSS-Fuzz обнаружил уязвимости в 26 проектах с открытым исходным кодом, включая уязвимость OpenSSL почти 20-летней давности.
Фазз, созданный с помощью искусственного интеллекта, направлен на улучшение покрытия кода в 272 проектах C/C++, добавив более 370 000 строк нового кода.
Google переносит код на языки, безопасные для памяти, и повышает безопасность проектов C++ с помощью таких мер, как усиление защиты libc++.
В целом, Google использовала технологию искусственного интеллекта, чтобы значительно улучшить свои возможности обнаружения безопасности программного обеспечения, и ее опыт является ценным источником информации для других организаций. В будущем ИИ будет играть все более важную роль в области безопасности программного обеспечения, помогая разработчикам создавать более безопасные и надежные программные системы.