
Лаборатория Google DeepMind представила результаты работы своего искусственного интеллекта под названием CodeMender. Этот агент способен автономно выявлять, исправлять и переписывать уязвимый код, чтобы предотвратить потенциальные эксплойты в программном обеспечении.
CodeMender представляет собой развитие предыдущих проектов DeepMind по обнаружению уязвимостей, включая проект OSS-Fuzz, предназначенный для анализа безопасности открытого программного обеспечения, и систему Big Sleep. Агенты CodeMender объединяют интеллектуальные возможности моделей Gemini с передовыми методами программного анализа.
Основной задачей этого проекта является автономная отладка и исправление сложных ошибок в масштабных кодовых базах. Хотя проект всё еще находится на стадии исследований, CodeMender уже внес 72 исправления безопасности в проекты с открытым исходным кодом, включая те, чей объём превышает 4,5 миллиона строк кода. По данным компании, ИИ-агент помогает разработчикам сосредоточиться на создании качественного программного обеспечения, автоматически генерируя и применяя надежные патчи безопасности.
Система разработана для двух типов работы: реактивной и проактивной. Она не только мгновенно устраняет обнаруженные уязвимости, но и переписывает существующий код, тем самым ликвидируя целые классы ошибок. В качестве примера исследователи DeepMind приводят работу агента с библиотекой сжатия изображений libwebp, использовавшейся в атаке на iOS в 2023 году.
Архитектура CodeMender включает виртуальный набор инструментов: статический и динамический анализ, фаззинг, символьное исполнение и «судью LLM», который проверяет, сохраняют ли предлагаемые изменения исходную функциональность.
Система способна к самокоррекции, если в процессе проверки выявляется проблема. Перед отправкой все изменения проходят тщательную проверку на соответствие корректности, стилевым стандартам и отсутствие регрессий. В DeepMind подчеркивают, что CodeMender остаётся исследовательским проектом, и все патчи, сгенерированные им, подвергаются проверке экспертами перед интеграцией в проекты.
После своего запуска этот инструмент предложит новый подход по сравнению с традиционными методами, такими как статический анализ и фаззинг, которые зависят от знаний проверяющего. Новый подход позволит искусственному интеллекту самостоятельно выявлять и устранять ошибки, что является критически важным шагом в условиях экспоненциального роста размера и сложности современных кодовых баз.





