ИИ код: опасен по умолчанию

LLMs и генерация небезопасного кода: сценарий по умолчанию

Последние исследования Backslash Security выявили тревожную тенденцию: большие языковые модели (LLMs), такие как GPT-4.1, а также другие широко используемые модели, по умолчанию склонны генерировать небезопасный код. Это означает, что без конкретных инструкций или руководств, ориентированных на безопасность, код, созданный этими AI-системами, часто уязвим для распространенных слабых мест и эксплойтов. Однако исследование также показывает, что безопасность сгенерированного кода может быть значительно улучшена путем предоставления дополнительных указаний по безопасности или внедрения управления на основе правил.

Для дальнейшего изучения этой проблемы Backslash Security объявила о запуске Model Context Protocol (MCP) Server, а также правил и расширений, разработанных для Agentic Integrated Development Environments (IDEs). Эти инструменты направлены на устранение уязвимостей безопасности, выявленных в коде, сгенерированном LLM, и предоставление разработчикам средств для создания более безопасных приложений.

Backslash Security провела серию тестов на семи различных версиях популярных LLMs, включая модели GPT от OpenAI, Claude от Anthropic и Gemini от Google. Цель состояла в том, чтобы оценить, как различные методы подсказок влияют на способность моделей генерировать безопасный код. Безопасность вывода кода оценивалась на основе его устойчивости к десяти вариантам использования Common Weakness Enumeration (CWE), которые представляют собой ряд распространенных уязвимостей программного обеспечения.

Результаты этих тестов последовательно показывали, что безопасность сгенерированного кода улучшается с более сложными методами подсказок. Однако главной темой было то, что все протестированные LLMs, как правило, создают небезопасный код, когда их оставляют на произвол судьбы. Это говорит о том, что эти модели в своей конфигурации по умолчанию не уделяют приоритетного внимания безопасности и часто не устраняют распространенные недостатки кодирования.

Наивные подсказки: рецепт уязвимости

При представлении простых, ‘наивных’ подсказок, в которых явно не упоминаются соображения безопасности, все протестированные LLMs сгенерировали небезопасный код, который был уязвим по крайней мере для четырех из десяти распространенных CWE. Это подчеркивает присущее этим моделям отсутствие осведомленности о безопасности при работе без конкретного руководства.

Влияние подсказок, ориентированных на безопасность

Подсказки, в которых в целом указывалась необходимость безопасности, привели к более безопасным результатам, что указывает на то, что LLMs способны создавать более безопасный код, если им явно приказано это сделать. Кроме того, подсказки, которые запрашивали код, соответствующий передовой практике Open Web Application Security Project (OWASP), дали еще лучшие результаты. OWASP - это некоммерческий фонд, который работает над повышением безопасности программного обеспечения. Однако даже с этими более сложными подсказками некоторые уязвимости кода сохранялись в пяти из семи протестированных LLMs, что подчеркивает проблемы с последовательной генерацией безопасного кода с помощью LLMs.

Подсказки на основе правил: путь к безопасному коду

Наиболее эффективный подход к генерации безопасного кода включал подсказки, привязанные к правилам, указанным Backslash для устранения конкретных CWE. Эти подсказки на основе правил приводили к коду, который был безопасным и не уязвимым для протестированных CWE. Это говорит о том, что предоставление LLMs конкретных, целевых указаний имеет решающее значение для обеспечения безопасности сгенерированного кода.

Вариации производительности между LLMs

В целом, GPT-4o от OpenAI продемонстрировал самую низкую производительность по всем подсказкам, достигнув результата безопасного кода всего 1 из 10 при использовании ‘наивных’ подсказок. Даже когда его попросили сгенерировать безопасный код, он все равно выдавал небезопасные выходные данные, уязвимые для восьми из десяти проблем. GPT-4.1 не показал значительно лучших результатов с наивными подсказками, набрав 1,5 из 10.

В отличие от этого, Claude 3.7 Sonnet оказался лучшим исполнителем среди протестированных инструментов GenAI. Он набрал 6 из 10, используя наивные подсказки, и идеальные 10 из 10 при использовании подсказок, ориентированных на безопасность. Это говорит о том, что некоторые LLMs лучше оснащены для решения вопросов безопасности, даже в отсутствие явных инструкций.

Решения Backslash Security для безопасного Vibe Coding

Чтобы решить проблемы, выявленные в ходе тестирования подсказок LLM, Backslash Security представляет несколько новых функций, предназначенных для обеспечения безопасного vibe coding. Vibe coding относится к практике генерации кода с использованием AI-инструментов, таких как LLMs.

Правила и политики Backslash AI

Правила и политики Backslash AI предоставляют машиночитаемые правила, которые можно внедрять в подсказки для обеспечения охвата CWE. Эти правила можно использовать с такими инструментами, как Cursor, популярный редактор кода. Кроме того, политики AI контролируют, какие правила AI активны в IDE через платформу Backslash, что позволяет организациям настраивать параметры безопасности.

Расширение Backslash IDE

Расширение Backslash IDE интегрируется непосредственно в существующие рабочие процессы разработчиков, позволяя им получать обзоры безопасности Backslash кода, написанного как людьми, так и AI. Эта интеграция имеет решающее значение для обеспечения учета соображений безопасности на протяжении всего процесса разработки.

Сервер Backslash Model Context Protocol (MCP)

Сервер Backslash Model Context Protocol (MCP) - это контекстно-зависимый API, который соответствует стандарту MCP. Он соединяет Backslash с AI-инструментами, обеспечивая безопасное кодирование, сканирование и исправления. Стандарт MCP обеспечивает общую основу для AI-инструментов для связи и обмена информацией, облегчая разработку безопасных AI-приложений.

Решение проблем с кодом, сгенерированным AI

Йосси Пик, соучредитель и технический директор Backslash Security, подчеркивает проблемы, которые код, сгенерированный AI, создает для групп безопасности. Он отмечает, что ‘код, сгенерированный AI, или vibe coding, может показаться кошмаром для групп безопасности. Он создает поток нового кода и приносит риски LLM, такие как галлюцинации и чувствительность к подсказкам’. Галлюцинации относятся к случаям, когда LLMs генерируют неверную или бессмысленную информацию, в то время как чувствительность к подсказкам относится к тенденции LLMs выдавать разные выходные данные в зависимости от незначительных изменений во входной подсказке.

Однако Пик также считает, что AI может быть ценным инструментом для команд AppSec при использовании с правильными элементами управления. Он утверждает, что ‘с правильными элементами управления - такими как правила, определенные организацией, и контекстно-зависимый MCP-сервер, подключенный к специально созданной платформе безопасности, - AI может фактически дать командам AppSec больше контроля с самого начала’. Backslash Security стремится предоставить эти элементы управления с помощью своих динамических правил на основе политик, контекстно-чувствительного MCP-сервера и расширения IDE, которые предназначены для новой эры кодирования.

Последствия небезопасного кода, сгенерированного AI

Выводы исследования Backslash Security имеют значительные последствия для индустрии разработки программного обеспечения. Поскольку AI-инструменты для генерации кода становятся все более распространенными, крайне важно понимать риски, связанные с использованием этих инструментов без надлежащих мер безопасности.

Повышенная уязвимость к кибератакам

Небезопасный AI-код может создать новые уязвимости, которые киберпреступники могут использовать. Эти уязвимости могут привести к утечкам данных, компрометации системы и другим инцидентам безопасности.

Трудности в выявлении и устранении уязвимостей

Огромный объем AI-кода может затруднить выявление и устранение уязвимостей. Команды безопасности могут изо всех сил пытаться угнаться за быстрыми темпами генерации кода, что приведет к невыполненным задачам безопасности.

Недостаточная осведомленность о безопасности среди разработчиков

Многие разработчики могут быть не в полной мере осведомлены о рисках безопасности, связанных с AI-кодом. Эта недостаточная осведомленность может привести к тому, что разработчики непреднамеренно внедряют уязвимости в свои приложения.

Проблемы с соблюдением нормативных требований

Организации, которые полагаются на AI-код, могут столкнуться с проблемами соблюдения нормативных требований. Многие правила требуют от организаций внедрения адекватных мер безопасности для защиты конфиденциальных данных. Небезопасный AI-код может затруднить выполнение этих требований.

Лучшие практики для безопасной генерации кода с помощью AI

Чтобы снизить риски, связанные с небезопасным AI-кодом, организации должны принять следующие лучшие практики:

Проведите обучение разработчиков по вопросам безопасности

Разработчики должны пройти обучение по рискам безопасности, связанным с AI-кодом. Это обучение должно охватывать такие темы, как общие CWE, методы безопасного кодирования и использование инструментов безопасности.

Внедрите политики и процедуры безопасности

Организации должны внедрить политики и процедуры безопасности, которые касаются использования AI-кода. Эти политики должны определять допустимые варианты использования, требования безопасности и процессы для проверки и утверждения AI-кода.

Используйте инструменты безопасности для сканирования AI-кода

Организации должны использовать инструменты безопасности для сканирования AI-кода на наличие уязвимостей. Эти инструменты могут помочь выявить общие CWE и другие проблемы безопасности.

Внедрите безопасный жизненный цикл разработки (SDLC)

Организации должны внедрить безопасный жизненный цикл разработки (SDLC), который включает соображения безопасности на протяжении всего процесса разработки. Это включает в себя проведение проверок безопасности AI-кода, проведение тестирования на проникновение и внедрение мониторинга безопасности.

Создайте программу Bug Bounty

Организации должны создать программу Bug Bounty, чтобы побудить исследователей безопасности находить и сообщать об уязвимостях в AI-коде. Это может помочь выявить уязвимости, которые могли быть пропущены внутренними группами безопасности.

Будьте в курсе последних угроз безопасности

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

Сотрудничайте с экспертами по безопасности

Организации должны сотрудничать с экспертами по безопасности для оценки безопасности своего AI-кода и разработки стратегий смягчения рисков.

Будущее безопасной генерации кода с помощью AI

Поскольку AI-инструменты для генерации кода продолжают развиваться, крайне важно уделять приоритетное внимание безопасности. Внедрив лучшие практики, изложенные выше, организации могут использовать преимущества генерации кода с помощью AI, одновременно снижая риски, связанные с небезопасным кодом.

Достижения в области безопасности AI

Текущие усилия по исследованиям и разработкам сосредоточены на повышении безопасности AI-систем. Эти усилия включают разработку новых методов обнаружения и предотвращения атак противников, повышение надежности AI-моделей и создание более безопасных AI-архитектур.

Интеграция безопасности в разработку AI

Безопасность все больше интегрируется в процесс разработки AI. Это включает в себя включение соображений безопасности в конструкцию AI-моделей, использование методов безопасного кодирования и проведение тестирования безопасности на протяжении всего жизненного цикла разработки.

Сотрудничество между AI и экспертами по безопасности

Сотрудничество между AI и экспертами по безопасности имеет важное значение для обеспечения безопасности AI-систем. Это сотрудничество может помочь выявить потенциальные риски безопасности и разработать эффективные стратегии смягчения рисков.

Повышенная осведомленность о рисках безопасности AI

Повышенная осведомленность о рисках безопасности AI стимулирует разработку новых инструментов и методов безопасности. Это включает в себя инструменты для обнаружения атак противников, анализа безопасности AI-моделей и мониторинга AI-систем на предмет подозрительной активности.

Решая проблемы безопасности, связанные с AI-кодом, организации могут раскрыть весь потенциал разработки на основе AI, одновременно защищая свои системы и данные от кибератак. Исследования Backslash Security четко указывают на необходимость повышенного внимания к вопросам безопасности при использовании больших языковых моделей (LLMs) для генерации кода. Простота использования и доступность этих инструментов не должны затмевать потенциальные риски, связанные с созданием небезопасного кода, который может сделать системы уязвимыми для атак.

Рекомендации Backslash Security по внедрению политик безопасности, использованию специализированных инструментов, таких как MCP Server и IDE Extension, а также постоянному обучению разработчиков представляют собой важные шаги в направлении безопасной разработки с использованием AI. Без этих мер предосторожности организации рискуют создать ‘кошмар’ для своих команд безопасности, как выразился Йосси Пик.

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

По мере развития технологий AI и их все большего проникновения в разработку программного обеспечения, организации должны быть готовы адаптироваться и постоянно совершенствовать свои стратегии безопасности. Это включает в себя постоянное отслеживание новых угроз и уязвимостей, а также инвестиции в исследования и разработки для улучшения методов защиты AI-кода.

В заключение, исследование Backslash Security служит важным напоминанием о том, что AI-код не является безопасным по умолчанию. Обеспечение безопасности AI-кода требует активного подхода, который включает в себя обучение, инструменты и политики безопасности. Только путем принятия этих мер организации могут полностью раскрыть потенциал AI для ускорения разработки и инноваций, не подвергая себя неприемлемым рискам безопасности.