Агенты ИИ для написания кода взломаны: злоумышленники нацелились на учетные данные, а не на модели
Источник: VentureBeat · Louis Columbus
30 марта компания BeyondTrust доказала, что специально сформированное имя ветки GitHub может похитить OAuth-токен Codex в незашифрованном виде. OpenAI классифицировала уязвимость как критическую (Critical P1). Спустя два дня исходный код Claude Code от Anthropic утек в публичный реестр npm, и уже через несколько часов компания Adversa обнаружила, что Claude Code молча игнорирует собственные правила запрета (deny rules), если количество подкоманд превышает 50. Это не были изолированные ошибки. Они стали частью девятимесячной серии инцидентов: шесть исследовательских групп сообщили об эксплойтах против Codex, Claude Code, Copilot и Vertex AI, причем каждый эксплойт следовал одному и тому же паттерну. ИИ-агент для написания кода владел учетными данными, выполнял действие и проходил аутентификацию в производственной системе без сеанса человека, закрепляющего запрос.
Впервые эту поверхность атаки продемонстрировали на конференции Black Hat USA 2025, когда технический директор Zenity Майкл Баргури (Michael Bargury) прямо на сцене без единого клика взломал ChatGPT, Microsoft Copilot Studio, Google Gemini, Salesforce Einstein и Cursor с помощью Jira MCP. Девять месяцев спустя именно до этих учетных данных добрались злоумышленники.
Мерритт Бэр (Merritt Baer), директор по информационной безопасности в Enkrypt AI и бывший заместитель директора по информационной безопасности в AWS, указала на эту проблему в эксклюзивном интервью VentureBeat: «Предприятия считают, что они „одобрили“ ИИ-поставщиков, но на самом деле они одобрили лишь интерфейс, а не лежащую в основе систему». Учетные данные, скрывающиеся за интерфейсом, и есть брешь в защите.
Codex: как имя ветки похитило токены GitHub
Исследователь из BeyondTrust Тайлер Джесперсен (Tyler Jespersen) вместе с Флетчером Дэвисом (Fletcher Davis) и Саймоном Стюартом (Simon Stewart) обнаружили, что Codex клонирует репозитории, используя OAuth-токен GitHub, внедренный в удаленный URL-адрес git. Во время клонирования параметр имени ветки передавался в установочный скрипт без предварительной санитизации. Точка с запятой и подоболочка с обратным апострофом превратили имя ветки в полезную нагрузку для эксфильтрации.
Стюарт добавил элемент скрытности. Добавив 94 идеографических символа пробела (Unicode U+3000) после слова «main», вредоносную ветку сделали неотличимой от стандартной ветки main на веб-портале Codex. Разработчик видит «main». Оболочка видит команду curl, эксфильтрирующую их токен. OpenAI классифицировала уязвимость как Critical P1 и выпустила полноценное исправление 5 февраля 2026 года.
Claude Code: как две уязвимости CVE и обход лимита из 50 подкоманд сломали песочницу
CVE-2026-25723 затронула ограничения на запись файлов в Claude Code. Передаваемые по конвейеру команды sed и echo выходили за пределы песочницы проекта, поскольку связывание команд не проверялось. Уязвимость была устранена в версии 2.0.55. CVE-2026-33068 оказалась более изощренной. Claude Code определял режимы разрешений из файла .claude/settings.json до вывода диалогового окна доверия к рабочему пространству. Вредоносный репозиторий задавал для permissions.defaultMode значение bypassPermissions. Подсказка о доверии так и не появлялась. Ошибка исправлена в версии 2.1.53.
Последним стал обход лимита из 50 подкоманд. Специалисты Adversa выяснили, что Claude Code без предупреждения прекращает применять правила запрета, если в команде более 50 подкоманд. Инженеры Anthropic пожертвовали безопасностью ради скорости и перестали проверять код после пятидесятой команды. Исправлено в версии 2.1.90.
«Существенная уязвимость в корпоративном ИИ — это нарушенный контроль доступа, когда плоская плоскость авторизации LLM не учитывает пользовательские разрешения», — написал Картер Рис (Carter Rees), вице-президент по искусственному интеллекту и машинному обучению в компании Reputation и член Комиссии по искусственному интеллекту штата Юта. Репозиторий решал, какими разрешениями обладает агент. А бюджет токенов определял, какие правила запрета уцелеют.
Copilot: как описание пулл-реквеста и задача на GitHub стали правами root
Йохан Рехбергер (Johann Rehberger) совместно с Маркусом Вервиром (Markus Vervier) из Persistent Security продемонстрировал уязвимость CVE-2025-53773 против GitHub Copilot. Скрытые инструкции в описаниях пулл-реквестов заставляли Copilot включать режим автоподтверждения в файле .vscode/settings.json. Это отключало все запросы на подтверждение и предоставляло неограниченное выполнение команд оболочки на Windows, macOS и Linux. Microsoft закрыла эту брешь в обновлении Patch Tuesday за август 2025 года.
Затем специалисты Orca Security взломали Copilot внутри GitHub Codespaces. Скрытые инструкции в задаче GitHub заставляли Copilot извлечь вредоносный пулл-реквест со ссылкой в виде символической ссылки на /workspaces/.codespaces/shared/user-secrets-envs.json. Специально созданный URL-адрес JSON $schema производил эксфильтрацию привилегированного токена GITHUB_TOKEN. Последовал полный захват репозитория без какого-либо участия пользователя, помимо открытия задачи.
Майк Ример (Mike Riemer), технический директор Ivanti, обозначил проблему временного фактора в интервью VentureBeat: «Злоумышленники выполняют реверс-инжиниринг патчей в течение 72 часов. Если клиент не устанавливает патч в течение 72 часов после выпуска, он уязвим для атак». Агенты сокращают это окно до секунд.
Vertex AI: как стандартные области видимости предоставили доступ к Gmail, Drive и собственной цепочке поставок Google
Исследователь из Unit 42 Офир Шати (Ofir Shaty) обнаружил, что стандартная служебная учетная запись Google, привязанная к каждому агенту Vertex AI, обладала избыточными разрешениями. Украденные учетные данные P4SA давали неограниченный доступ на чтение ко всем корзинам Cloud Storage в проекте и открывали доступ к защищенным репозиториям Artifact Registry, принадлежащим Google и лежащим в основе движка рассуждений Vertex AI Reasoning Engine. Шати охарактеризовал скомпрометированный P4SA как «двойного агента», имеющего доступ как к пользовательским данным, так и к собственной инфраструктуре Google.
Защитный периметр VentureBeat
|
Требование безопасности |
Реализованная защита |
Путь эксплойта |
Пробел в защите |
|
Запуск ИИ-агента в песочнице |
Codex выполняет задачи в облачных контейнерах; токен очищается во время работы агента. |
Токен присутствует при клонировании. Инъекция команд в имени ветки выполнялась до очистки. |
Отсутствие санитизации входных данных для параметров настройки контейнера. |
|
Ограничение доступа к файловой системе |
Claude Code изолирует операции записи с помощью режима accept-edits. |
Переданные по конвейеру команды sed/echo обошли песочницу (CVE-2026-25723). Файл Settings.json обошел диалог доверия (CVE-2026-33068). Цепочка из 50 подкоманд отключила проверку правил запрета. |
Связывание команд не проверяется. Настройки загружаются до проверки на доверие. Правила запрета усекаются для повышения производительности. |
|
Блокировка промпт-инъекций в контексте кода |
Copilot фильтрует описания пулл-реквестов на предмет известных паттернов инъекций. |
Скрытые инъекции в пулл-реквестах, файлах README и задачах GitHub приводили к удаленному выполнению кода (CVE-2025-53773 + Orca RoguePilot). |
Сопоставление со статическими шаблонами проигрывает внедренным промптам в легитимных процессах ревью и Codespaces. |
|
Ограничение учетных данных агента принципом наименьших привилегий |
Vertex AI Agent Engine использует сервисного агента P4SA с областями видимости OAuth. |
Стандартные области видимости открыли доступ к Gmail, Calendar, Drive. Учетные данные P4SA позволили читать каждую корзину Cloud Storage и Artifact Registry от Google. |
Области видимости OAuth по умолчанию не подлежат редактированию. Принцип наименьших привилегий нарушен на этапе проектирования. |
|
Инвентаризация и управление удостоверениями агентов |
Ни один крупный разработчик ИИ-агентов для кодирования не предоставляет средства обнаружения удостоверений агентов или управления их жизненным циклом. |
Не применялось. Предприятия не проводят инвентаризацию ИИ-агентов для кодирования, их учетных данных или областей разрешений. |
ИИ-агенты невидимы для IAM, CMDB и систем инвентаризации активов. Управление полностью отсутствует. |
|
Обнаружение эксфильтрации учетных данных из среды выполнения агента |
Codex скрывает токены в интерфейсе веб-портала. Claude Code логирует подкоманды. |
Токены видны в незашифрованном виде внутри контейнеров. Обфускация в Unicode скрыла полезные нагрузки эксфильтрации. Связывание подкоманд скрыло намерения. |
Отсутствует мониторинг сетевых вызовов агента в реальном времени. Усечение логов скрыло обход защиты. |
|
Аудит сгенерированного ИИ кода на наличие уязвимостей |
Anthropic запустила Claude Code Security (февраль 2026 г.). OpenAI запустила Codex Security (март 2026 г.). |
Обе системы сканируют сгенерированный код. Ни одна из них не сканирует собственную среду выполнения агента или обработку учетных данных. |
Безопасность выходного кода не равна безопасности среды выполнения агента. Сам агент представляет собой поверхность атаки. |
Каждый эксплойт был нацелен на учетные данные в рантайме, а не на вывод модели
Каждый вендор выпустил защитные механизмы. Каждый защитный механизм был обойден.
Согласно отчету Sonar State of Code Developer Survey за 2026 год, 25% разработчиков регулярно используют ИИ-агентов, а 64% уже начали их применять. Компания Veracode протестировала более 100 языковых моделей и выяснила, что 45% примеров сгенерированного кода содержат уязвимости из списка OWASP Top 10 — это отдельная проблема, которая усугубляет разрыв в защите учетных данных во время выполнения.
Технический директор CrowdStrike Элия Зайцев (Elia Zaitsev) сформулировал это правило в эксклюзивном интервью VentureBeat на конференции RSAC 2026: верните удостоверения агентов под контроль человека, поскольку агент, действующий от вашего имени, никогда не должен обладать большими привилегиями, чем вы сами. Codex владел токеном OAuth GitHub, охватывающим каждый репозиторий, к которому у разработчика был доступ. Учетная запись P4SA в Vertex AI считывала данные из каждой корзины Cloud Storage в проекте. Claude Code променял соблюдение правил запрета на бюджет токенов.
Кайн МакГладри (Kayne McGladrey), старший член IEEE и консультант предприятий по рискам идентификации, дал аналогичную оценку в эксклюзивном интервью VentureBeat: «Он использует гораздо больше разрешений, чем должен, больше, чем использовал бы человек, в силу скорости масштабирования и намерений».
Ример провел операционную границу в эксклюзивном интервью VentureBeat: «Ситуация выглядит так: я не знаю тебя, пока не проверил». Имя ветки связалось с командной оболочкой до прохождения проверки. Задача GitHub обратилась к Copilot еще до того, как ее кто-либо прочитал.
План действий для директора по информационной безопасности
-
Проведите инвентаризацию всех ИИ-агентов для написания кода (CIEM). Codex, Claude Code, Copilot, Cursor, Gemini Code Assist, Windsurf. Составьте перечень учетных данных и областей OAuth, полученных каждым из них при настройке. Если в вашей CMDB нет категории для удостоверений ИИ-агентов, создайте ее.
-
Проведите аудит областей OAuth и уровней патчей. Обновите Claude Code до версии 2.1.90 или выше. Проверьте августовский патч Copilot 2025 года. Переведите Vertex AI на модель использования собственных сервисных учетных записей (bring-your-own-service-account).
-
Относитесь к именам веток, описаниям пулл-реквестов, задачам GitHub и конфигурации репозиториев как к недоверенным входным данным. Отслеживайте обфускацию в Unicode (U+3000), цепочки команд длиннее 50 подкоманд и изменения в файлах .vscode/settings.json или .claude/settings.json, которые переключают режимы разрешений.
-
Управляйте удостоверениями агентов так же, как вы управляете привилегированными учетными записями людей (PAM/IGA). Ротация учетных данных. Принцип наименьших привилегий. Разделение обязанностей между агентом, который пишет код, и агентом, который выполняет его развертывание. Платформы PAM вроде CyberArk, Delinea и любые другие платформы, поддерживающие нечеловеческие удостоверения, уже сегодня могут подключать учетные данные OAuth агентов; однако отчет Gravitee за 2026 год показал, что это сделали лишь 21,9% команд.
-
Проверяйте, прежде чем устанавливать связь. «Пока мы доверяем, проверяем и валидируем, я не против позволить ИИ поддерживать это», — отметил Ример. Прежде чем какой-либо ИИ-агент пройдет аутентификацию в GitHub, Gmail или внутреннем репозитории, проверьте личность агента, его область доступа и сеанс человека, с которым он связан.
-
Запросите у каждого вендора письменный ответ перед очередным продлением контракта. «Предоставьте мне средства управления жизненным циклом удостоверений для ИИ-агента, работающего в моей среде, включая область действия учетных данных, политику ротации и журнал аудита разрешений». Если вендор не может ответить, это и есть результат аудита.
Пробел в управлении в трех предложениях
Большинство директоров по информационной безопасности ведут учет всех человеческих удостоверений и не имеют ни единого представления об ИИ-агентах, работающих с аналогичными правами доступа. Ни одна IAM-структура не регулирует эскалацию привилегий человека и эскалацию привилегий агента с одинаковой строгостью. Большинство сканеров отслеживают каждую уязвимость CVE, но не могут выдать предупреждение, когда имя ветки эксфильтрует токен GitHub через контейнер, которому разработчики доверяют по умолчанию.
Совет Зайцева участникам конференции RSAC 2026 был предельно прямым: вы и так знаете, что нужно делать. Просто агенты сделали цену бездействия катастрофической.



