Google представила ИИ-инструмент CodeMender для исправления уязвимостей в коде
Google представила новый ИИ-инструмент CodeMender, который автоматически находит и исправляет уязвимости в программном коде.
За шесть месяцев разработки система уже внедрила 72 исправления безопасности в проекты с открытым исходным кодом, включая системы размером до 4,5 миллионов строк кода.
CodeMender работает на базе моделей Gemini Deep Think и может самостоятельно отлаживать и исправлять сложные уязвимости. Система оснащена инструментами, которые позволяют анализировать код перед внесением изменений и автоматически проверять, что эти изменения корректны и не вызывают сбоев.
Методы работы CodeMender
В основе работы CodeMender лежит комплекс методов:
- статический и динамический анализ;
- дифференциальное тестирование;
- фаззинг;
- SMT-решатели.
Эти инструменты помогают выявлять первопричины проблем с безопасностью. Также используется система мульти-агентов — специальных помощников для решения конкретных задач.
Примеры работы системы
В одном из примеров CodeMender не только нашёл причину уязвимости, но и смог изменить систему генерации кода на языке C внутри проекта. В другом случае агент применил аннотации -fbounds-safety к библиотеке сжатия изображений libwebp, что предотвратило возможность эксплуатации переполнения буфера.
CodeMender также умеет автоматически исправлять ошибки компиляции и тестов, возникающие после его правок. Система может сама себя корректировать на основе обратной связи от инструментов проверки.
Подход Google к безопасности кода
Google подчёркивает, что подход к безопасности кода должен быть как реактивным (быстро исправлять найденные уязвимости), так и проактивным (переписывать существующий код для устранения целых классов уязвимостей).
Несмотря на успешные результаты, в Google придерживаются осторожного подхода. В настоящее время все патчи, созданные CodeMender, проверяются исследователями перед отправкой в открытые проекты. Компания постепенно налаживает контакты с ключевыми разработчиками открытого ПО, чтобы получить обратную связь.
Планы на будущее
В будущем Google планирует выпустить CodeMender как инструмент, доступный всем разработчикам для поддержания безопасности их кодовой базы. Компания также собирается опубликовать технические статьи о методах и результатах работы системы в ближайшие месяцы.
