CodeMender является развитием предыдущих проектов DeepMind, таких как OSS-Fuzz и Big Sleep, и сочетает возможности моделей Gemini с передовыми методами программного анализа. Главная цель разработки – автономная отладка и исправление сложных ошибок в больших кодовых базах, рассказывает 24 Канал со ссылкой на DeepMind.
Смотрите также OpenAI меняет будущее генеративных видео: платформа, похоже, решила проблему правообладателей
Хотя проект еще находится на этапе исследования, он уже прислал 72 исправления безопасности в проекты с открытым исходным кодом, некоторые из которых содержат более 4,5 миллиона строк кода. По словам компании, ИИ-агент позволяет разработчикам сосредоточиться на создании качественного ПО, пока система автоматически генерирует и применяет надежные патчи безопасности.
Как работает CodeMender?
Система может работать как реактивно, мгновенно исправляя обнаруженные уязвимости, так и проактивно, переписывая имеющийся код для устранения целых классов ошибок.
В качестве примера, исследователи приводят работу с библиотекой сжатия изображений libwebp, которую использовали в атаке на iOS в 2023 году. Агент применил к ней специальные аннотации, после чего, по заявлению разработчиков, уязвимости переполнения буфера стали "невозможными для эксплуатации навсегда".
Как это устроено?
Внутренняя архитектура CodeMender содержит набор инструментов: статический и динамический анализ, фазинг и символьное исполнение, объясняет SiliconAngle. Также есть так называемый "судья LLM", который проверяет, сохраняют ли предложенные изменения первоначальную функциональность.
Если во время проверки обнаруживается проблема, система способна к самокоррекции. Все изменения перед отправкой проходят тщательную проверку на корректность, соответствие стандартам стиля и отсутствие регрессий.
В то же время в DeepMind отмечают, что все сгенерированные патчи проверяются людьми-исследователями перед их отправкой в проекты.
После полноценного запуска инструмент предложит новый подход, отличающийся от традиционных методов, которые находят уязвимости, но все еще сильно зависят от опыта человека. Искусственный интеллект сможет самостоятельно выявлять и устранять ошибки, что является критически важным шагом, поскольку размер и сложность современных кодовых баз растут экспоненциально.


