Новый метод SecureForge поможет ограничить количество ошибок безопасности в коде, создаваемом большими языковыми моделями. Исследователи из Стэнфордского университета показали, что автоматическая оптимизация системных промптов может значительно снизить долю уязвимого Python-кода без ухудшения его функциональности.

Большие языковые модели всё чаще используются в программировании, однако их выходные данные не всегда безопасны. Даже рабочий код может содержать уязвимости, которые злоумышленник сможет использовать позже.

Команда исследователей во главе с Хуцзюном Люем, Лизой Эйнштейновой и Джоном Янгом разработала SecureForge. Метод автоматически корректирует системные промпты — базовые инструкции, по которым модель руководствуется при генерации кода.

Исследование показало, что простого приказа типа «напиши безопасный код» недостаточно. Модель может соблюдать инструкцию о безопасности лишь частично и всё равно создать, например, код, подверженный SQL-инъекциям или другим распространённым типам атак.

Поэтому SecureForge использует повторное тестирование. Сначала модель получает реалистичную программистскую задачу и создаёт код. Затем его проверяет статический анализатор Semgrep. Если обнаруживается проблема безопасности, другая языковая модель предлагает корректировку системного промпта, и весь процесс повторяется.

Исследователи опирались на базу данных MITRE Common Weakness Enumeration, содержащую известные типы программных уязвимостей. Из 25 значимых категорий ошибок безопасности они с помощью GPT-5.4 создали реалистичные и обычно формулируемые задачи для написания кода на Python.

Одним из примеров была задача по созданию функции, которая будет искать пользователя по имени в базе данных SQLite. Такой запрос при неправильном решении может привести к ошибке типа SQL injection, даже если сама задача явно не упоминает уязвимость.

Сначала авторы собрали 500 задач, приводящих к созданию уязвимого кода. Половину из них оставили для финальной оценки, а вторую половину постепенно расширили до примерно 80 000 вариантов.

Для оптимизации промптов использовали генетический алгоритм GEPA. Он многократно тестировал различные варианты системных инструкций, оценивал найденные ошибки и предлагал их исправления.

SecureForge был протестирован, например, на моделях CodeLlama 7B, Qwen2.5-Coder, Qwen3, Kimi K2, Claude Sonnet 4.6 и нескольких моделях серии GPT.

Результаты показали значительное улучшение. При использовании SecureForge код с ошибками безопасности содержал в среднем 11,8 процента из протестированных программ. При обычной инструкции о требовании безопасного кода этот показатель составлял 20,1 процента.

Для GPT-5.4 количество ошибок снизилось с 15,8 до 10,1 процента. Для GPT-5.4 Mini оно упало с 21,4 до 12,4 процентов, а для GPT-5.4 Nano — с 22,1 до 15,6 процентов.

У метода есть и ограничения. Оптимизация проводилась преимущественно против уже известных классов уязвимостей. Поэтому пока неясно, насколько эффективной она будет при защите от новых или ещё описанных проблем безопасности.

Tем не менее SecureForge показывает один из возможных путей повышения безопасности программирующих ассистентов с использованием искусственного интеллекта. Те же модели, способные выявлять уязвимости, могут при неправильных настройках одновременно создавать новые ошибки сами по себе.

deeplearning.ai/

gnews.cz - GH