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


