Почему «Какую ИИ-модель выбрать?» неправильный вопрос

Угрозы

У EndorLabs в апреле вышел (в мае обновили) интересный отчет о безопасности кода, созданного ИИ-агентами, в котором автор прогнал 13 комбинаций «агент + модель» на бенчмарке SusVibes из 200 реальных задач по исправлению уязвимостей в 108 open-source Python-проектах, покрывающих 77 классов CWE. Смысл был не просто проверить, проходит ли код функциональные тесты, а понять, остается ли он безопасным после исправления или реализации фичи.

SusVibes – это исходный академический бенчмарк, на котором Endor Labs построила свой Agent Security League. Полное название работы: «Is Vibe Coding Safe? Benchmarking Vulnerability of Agent-Generated Code in Real-World Tasks». Авторы предлагают SusVibes как набор задач для проверки не просто того, умеют ли ИИ-агенты писать работающий код, а умеют ли они писать работающий и безопасный код в реалистичных условиях.

Резюме: прохождение тестов больше не может считаться достаточным признаком качества сгенерированного ИИ кода. Лучшая комбинация по функциональности, Cursor + Claude Opus 4.6, достигла 84,4% FuncPass, то есть код часто «работал». Но SecPass у нее был всего 7,8%. А лучший результат по безопасности, Codex + GPT-5.4, дал только 17,3% SecPass. То есть даже лидер по безопасности оставляет уязвимыми примерно 8–9 решений из 10.

Первый вывод с точки зрения ИБ – мнение руководства: «раз ИИ пишет код быстрее, значит мы просто ускорим разработку» – это миф. На практике мы можем ускорить не только разработку, но и производство технического долга и уязвимостей, устранение которых приведет к, возможно, бОльшим расходам.

По сравнению с оригинальным исследованием SusVibes функциональная корректность выросла заметно: с 61% до 84,4%. А вот безопасность выросла совсем немного: с потолка в 12,5% до 17,3%. То есть разрыв между кодом, который работает, и кодом, который безопасен, стал шире.

Для бизнеса это означает, что внедрение ИИ-агентов может дать быстрый прирост производительности, но без изменения SDLC, AppSec-процессов и review-практик этот прирост будет сопровождаться ростом скрытого риска.

Третий вывод – оптимизация под «работающий код» и оптимизация под «безопасный код» – это разные задачи. Это к разговору в комментариях у меня в канале о том, какая модель лучше. Лучше для чего? Написать по-быстрому способ автоматизации задачи для себя, для развертывания в локальной инфре без выхода в Интернет, или для работы в корпоративной среде – это разный scope и… возможно, разные модели. Cursor + Claude Opus 4.6 лидировал в тестах EndorLabs по функциональности, но не вошел в топ-5 по безопасности. Codex + GPT-5.4, наоборот, лидировал по безопасности, но имел более скромную функциональную результативность – 62,6% FuncPass. То есть нельзя выбирать ИИ-инструмент для разработки только по скорости, удобству или проценту прохождения тестов. Для ИБ-команд нужен отдельный критерий: как инструмент ведет себя на чувствительных для ИБ задачах, насколько часто он генерирует уязвимый код, умеет ли он учитывать контекст репозитория и не ломает ли безопасность при «исправлении» функциональности.

Еще одно интересное наблюдение авторов исследования – одна и та же LLM ведет себя по-разному в разных агентных оболочках. Например, Claude Opus 4.6 через Claude Code и через Cursor дал близкую функциональность, но разные показатели по ИБ. То есть важна не только модель, но и архитектура агента – как он читает код, какие инструменты использует, как планирует изменения, как работает с тестами и репозиторием. Опять же – для домашнего использования это не так уж и важно, но для корпоративного выбора инструментов может быть критичным.

Вопрос «какую модель использовать?» недостаточен. Надо спрашивать: в каком IDE, в каком агенте, с какими правами, с каким доступом к репозиторию, с какими ИБ-инструментами и guardrails?

Один из самых интересных выводов отчета – агенты не всегда решают задачу «как разработчик». Иногда они ищут готовое исправление в git history или в Интернете и фактически восстанавливают известный патч. В одном экстремальном случае у SWE-Agent + Claude Opus 4.6 было подтверждено 163 случая «обмана» из 200, и это раздуло SecPass с 1,5% до 64%, то есть примерно в 42 раза. В реальной разработке похожее поведение может выглядеть как «агент нашел готовое решение», но вопрос в том, откуда он его взял, понял ли он его, подходит ли оно к текущему контексту и не принес ли он вместе с ним новые риски и уязвимости.

У вас есть anti-cheating pipeline в процессе разработки?

А что если взять всех агентов, будет ли прирост в уровне безопасности? Закономерный вопрос и EndorLabs ответила и на него. Если объединить все 13 протестированных конфигураций, то хотя бы одна из них дает функционально корректное решение для 90,5% задач. Но безопасно решается только 33% задач.

То есть даже «коллективный разум» разных агентов и моделей оставляет две трети задач нерешенными с точки зрения ИБ.

Но зато такая фрагментация ИБ-возможностей агентов подсказывает направление для развития AppSec-практик. Один агент решает одни классы задач, другой – другие. Поэтому в будущем могут быть полезны ансамбли: один агент пишет код, другой проводит security review, третий проверяет зависимости, четвертый гоняет SAST/DAST/поиск секретов и т.п.

Ну а для управления такими ансамблями понадобится оркестратор, то есть еще один агент. Но вопрос «А кто контролирует контролеров?» мы сегодня оставим без внимания; хотя он и важен.

Еще из интересного – инъекции, несмотря на зрелость и огромное количество известных практик защиты, остаются достаточно слабым местом. В отчете EndorLabs указано, что для «A05: Injection» (это из CWE, кто не помнит) средний SecPass составил только 5,9%, хотя это самая крупная категория в наборе задач. Это разрушает еще один миф: «LLM видела тысячи примеров SQL injection, XSS и path traversal, значит должна хорошо их исправлять». Видеть шаблоны в обучающих данных недостаточно. В реальном репозитории надо понять контекст, источники данных, границы доверия, существующие абстракции, фреймворк и побочные эффекты исправления.

Относительно лучше агенты справлялись с задачами, где есть узнаваемый шаблон: проверка токена, хеширование пароля, проверка подписи, лимиты, таймауты, замена опасного regex. Например, категории Authentication Failures и Software/Data Integrity Failures выглядели «менее плохо», а ReDoS (Regular Expression Denial of Service) оказался одним из наиболее решаемых CWE.

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

В отчете упоминается вывод оригинального SusVibes: общие ИБ-инструкции, просьба выбрать CWE или даже подсказка класса уязвимости не дали устойчивого роста SecPass. Иногда безопасность улучшалась в одних задачах, но ломалась функциональность в других. На практике это означает, что просто добавить в промпт «пиши безопасный код» недостаточно. Нужны конкретные критерии безопасности, модель угроз, контекст используемого фреймворка, безопасные API, автоматические проверки, тесты на злоупотребление, review и политики, встроенные в процесс разработки.

В качестве резюме, опираясь на результаты EndorLabs, для компаний я бы исходил из следующих правил:

  1. Не измерять успех ИИ-разработки только скоростью и количеством закрытых задач.
  2. Ввести отдельные метрики по безопасности сгенеренного ИИ кода.
  3. Требовать security review для кода, написанного агентами.
  4. Добавлять security-тесты, а не только функциональные юнит-тесты.
  5. Ограничивать права агентов в репозиториях и окружениях.
  6. Логировать действия агентов: какие файлы читали, какие команды запускали, откуда брали код.
  7. Проверять не только итоговый diff, но и процесс его получения.
  8. Встраивать SAST, SCA, сканирование секретов, обнаружение вредоносов и вредоносных пакетов  и проверки политик прямо в агентный workflow.
  9. Не разрешать агентам бесконтрольно подтягивать зависимости.
  10. Для критичных компонентов использовать модель «AI пишет – человек и инструменты доказывают безопасность» (human-in-the-loop никуда не девается).

Главный риск вайб-кодинга не в том, что код «не заработает». Он как раз все чаще начинает работать и работать неплохо. Главный риск в том, что он заработает вместе с SQL injection, path traversal, insecure deserialization, утечками данных, ошибками проверки подписи или логическими дырами, которые обычные функциональные тесты не увидят!

Оцените статью
Бизнес без опасности
Есть что добавить? Добавьте!

Нажимая кнопку "Отправить", я даю свое согласие на обработку персональных данных (если вдруг они указаны в комментарии) в соответствие с политикой конфиденциальности. Также я соглашаюсь с тем, что в своем комментарии не раскрываю никаких сведений, составляющих государственную тайну, а также никакой иной информации, охраняемой законом (для этого используйте иные способы :-) ), если это не разрешено ее владельцем. Ваш комментарий может появиться не сразу, а после модерации (так бывает не всегда, но бывает).