Не просто латает дыры, а переписывает целые библиотеки.
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. По их словам, проект лишь начинает раскрывать потенциал искусственного интеллекта в области защиты программного обеспечения.