Код от ИИ-агентов протекает: что показали замеры и как чинить
Автономные агенты пишут код быстрее человека и с той же скоростью тащат в проект уязвимости. Разбираем, откуда берутся дыры, что показывают исследования и какие правила снижают риск.

Летом 2025 года агентные помощники по коду — Claude Code от Anthropic, Codex от OpenAI, Cursor с агентным режимом и GitHub Copilot с фичей coding agent — перешли от подсказок в редакторе к самостоятельному написанию, запуску и коммиту кода. Агент читает задачу, редактирует несколько файлов, гоняет тесты и открывает pull request. Скорость выросла, но вместе с ней выросла и площадь атаки: код, который никто из людей построчно не читал, попадает в репозиторий и в прод.
Проблема не в том, что модели «злонамеренны». Они воспроизводят паттерны из обучающих данных, а в открытом коде хватает небезопасных примеров. Плюс агент действует автономно: сам ставит зависимости, сам выполняет команды в терминале, сам решает, что задача выполнена. Ошибка здесь стоит дороже, чем неудачный автокомплит.
Что именно ломается
Наиболее воспроизводимые классы проблем в сгенерированном коде повторяются от инструмента к инструменту:
- Инъекции. SQL-запросы, собранные конкатенацией строк, вызовы shell без экранирования, небезопасная сборка команд.
- Секреты в коде. Агент, которому дали ключ API для теста, может закоммитить его в открытый файл или в историю.
- Слабая обработка ввода. Отсутствие валидации, доверие к данным от клиента, path traversal.
- Устаревшие и уязвимые зависимости. Модель тянет версию библиотеки из своих обучающих данных — а та может быть годичной давности с известными CVE1.
- Галлюцинированные пакеты. Агент импортирует несуществующую библиотеку с правдоподобным именем. Этим пользуются атакующие: заранее регистрируют такой пакет с вредоносным содержимым — приём получил название slopsquatting.
Что говорят измерения
Здесь важно не выдавать желаемое за факт. Академическое исследование «Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions» (Pearce et al., опубликовано в трудах IEEE S&P 2022) на выборке сценариев по списку CWE показало, что заметная доля сгенерированных фрагментов содержала уязвимости. С тех пор модели заметно продвинулись, но методология «дай модели контекст, провоцирующий на небезопасный паттерн — и посмотри, устоит ли она» осталась актуальной. Свежие сравнительные цифры по конкретным агентам 2025 года публикуются разрозненно; относитесь к любым «X% уязвимого кода» скептически, пока не видите названия теста, версии модели и даты.
Агент не заменяет ревьюера. Он заменяет того, кто печатает. Ответственность за то, что уходит в прод, по-прежнему на команде.
Чем агенты отличаются по контролю безопасности
С точки зрения защиты кода важнее не то, кто «умнее», а какие ограждения даёт сама среда: изоляция выполнения, подтверждение опасных действий, встроенное сканирование. Ниже — сравнение по этим осям, а не по «качеству» генерации. Конкретные возможности быстро меняются, сверяйтесь с документацией.
| Инструмент | Изоляция выполнения | Подтверждение опасных действий | Доступность |
|---|---|---|---|
| Claude Code (Anthropic) | Работает локально в вашем окружении; права ограничиваются настройками разрешений | Запрашивает подтверждение на команды и правки по умолчанию | Подписка/API, тарифы — на сайте Anthropic |
| OpenAI Codex (агентный) | Облачное изолированное окружение (sandbox) под задачу | Действия ограничены песочницей; сеть по умолчанию урезана | Входит в платные планы, детали — на сайте OpenAI |
| GitHub Copilot coding agent | Выполняется в изолированном раннере GitHub Actions | PR требует ревью и прохождения проверок перед мержем | Часть платных планов Copilot |
| Cursor (агентный режим) | Локально в проекте; управление разрешениями на команды | Настраиваемое подтверждение автозапуска команд | Бесплатный и платные тарифы, цены — на сайте Cursor |
Общий вывод из таблицы: изоляция и обязательное ревью PR снижают риск не потому, что код становится безопаснее, а потому что вредная команда не выполняется молча и любой diff проходит через проверки до мержа.
Кому это пригодится, а кому нет
Пригодится:
- Командам с настроенным CI, статическим анализом и обязательным ревью — агент ускоряет рутину, а конвейер ловит его промахи.
- Для генерации тестов, миграций, скучного бойлерплейта, где легко проверить результат.
- Разработчикам, которые читают каждый diff и не мержат вслепую.
Не пригодится или опасно:
- Для критичного к безопасности кода — аутентификация, платежи, криптография, обработка персональных данных — без ручного аудита специалистом.
- Новичкам без навыка ревью: они не отличат правдоподобный небезопасный код от корректного.
- В проектах без пайплайна проверок, где PR от агента мержится «на доверии».
- Там, где агенту дают широкие права в терминале и доступ к секретам без изоляции.
Как снизить риск: практический минимум
- Изолируйте выполнение. Запускайте агента в контейнере или облачной песочнице без доступа к боевым секретам и продовой сети.
- Никаких реальных ключей в контексте. Давайте тестовые заглушки; храните секреты в менеджере секретов, а не в файлах проекта.
- Обязательное ревью diff. Код от агента проходит тот же PR-процесс, что и человеческий: ревьюер, проверки, ничего не мержится автоматически.
- Статический анализ и SAST2 в CI. Semgrep, CodeQL, линтеры с правилами безопасности — на каждый PR.
- Проверка зависимостей. SCA-инструменты и dependabot ловят уязвимые версии; сверяйте, что импортируемый пакет реально существует и это тот пакет.
- Ограничьте автозапуск команд. Требуйте подтверждения на любые операции с файловой системой вне проекта, сетевые вызовы и установку пакетов.
1 CVE (Common Vulnerabilities and Exposures) — публичный каталог известных уязвимостей с уникальными идентификаторами вида CVE-2024-XXXXX.
2 SAST (Static Application Security Testing) — анализ исходного кода на уязвимости без его запуска, встраивается в пайплайн сборки.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: Pearce et al. «Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions», IEEE S&P 2022, Anthropic — документация Claude Code
Частые вопросы
Код от ИИ-агента менее безопасен, чем написанный человеком?
Что такое slopsquatting и почему это опасно?
Можно ли давать агенту реальные API-ключи для работы?
Достаточно ли встроенной песочницы, чтобы не проверять код?
Какие инструменты стоит поставить в CI для проверки кода от агентов?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.