Лаборатория Google DeepMind опубликовала результаты работы агента на базе искусственного интеллекта CodeMender. Агент может в автономном режиме выявлять, исправлять и переписывать уязвимый код для предотвращения будущих эксплойтов в программном обеспечении.

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