CodeMender сам себя чинит. Google DeepMind выпустила ИИ-агента, который находит и исправляет уязвимости в коде без вмешательства человека

Не просто латает дыры, а переписывает целые библиотеки.


tlawovkfrkw32qgxl58u1g2qrfzd8e4d.jpg

Google DeepMind представила CodeMender — новый ИИ-агент, созданный для автоматического поиска и исправления уязвимостей в программном коде. По данным официального блога компании , система объединяет возможности больших языковых моделей Gemini Deep Think с набором инструментов для анализа и валидации исправлений, что позволяет устранять ошибки быстрее и точнее, чем традиционные методы.

Разработчики отмечают, что даже при использовании инструментов вроде OSS-Fuzz и Big Sleep , ручное устранение уязвимостей остаётся трудоёмким процессом. CodeMender решает эту задачу комплексно — он не только реагирует на новые проблемы, автоматически создавая патчи, но и проактивно переписывает фрагменты кода, устраняя целые классы уязвимостей.

За шесть месяцев команда DeepMind передала в открытые проекты 72 исправления безопасности. В их числе — библиотеки объёмом более 4,5 миллиона строк кода. Все изменения проходят проверку на корректность и соответствие стилю, прежде чем попадают к людям на ревью.

CodeMender использует возможности моделей Gemini для рассуждений о логике программ, анализа поведения кода и автоматической проверки результатов. При этом агент способен сам убедиться, что исправление устраняет первопричину уязвимости и не вызывает регрессий.

Чтобы сделать процесс надёжным, DeepMind внедрила новые методы анализа: статический и динамический анализ, дифференциальное тестирование, фаззинг и SMT-решатели. Дополнительно CodeMender опирается на многоагентную систему, где отдельные модули специализируются на разных аспектах проверки кода — от сравнения изменений до самокоррекции при ошибках.

В одном из примеров CodeMender устранил переполнение буфера в XML-парсере, найдя ошибку в управлении стеком элементов, а не в месте, где происходил сбой. В другом случае агент предложил сложное исправление, касающееся жизненного цикла объектов и генерации C-кода внутри проекта.

CodeMender также способен переписывать существующий код, используя более безопасные структуры данных и API. Так, агент автоматически добавил аннотации -fbounds-safety в библиотеку libwebp , чтобы предотвратить переполнения буфера. Именно в этой библиотеке ранее была обнаружена критическая уязвимость CVE-2023-4863 , использовавшаяся в эксплойте NSO Group для iPhone . По оценке исследователей, с новыми аннотациями подобные атаки больше не будут возможны.

Агент не только применяет исправления, но и автоматически тестирует их, корректируя новые ошибки и проверяя функциональное соответствие исходному коду. При обнаружении несоответствий система использует «LLM-судью», чтобы скорректировать патч без вмешательства человека.

Пока DeepMind сохраняет осторожность — все изменения проходят обязательную ручную проверку. Тем не менее, уже сейчас CodeMender помогает улучшать безопасность десятков популярных open-source-проектов. Компания намерена расширить взаимодействие с сообществом и в будущем сделать инструмент доступным для всех разработчиков.

Разработчики обещают в ближайшие месяцы опубликовать технические отчёты и статьи о подходах, применённых в CodeMender. По их словам, проект лишь начинает раскрывать потенциал искусственного интеллекта в области защиты программного обеспечения.