Mastodon Mastodon Mastodon Mastodon

Промпт-инъекции в CI/CD Google ADK позволяли запускать привилегированных ИИ-агентов

Фото автора

CyberSecureFox Editorial Team

Опубликовано:

Исследователи компании Pillar Security выявили две уязвимости в автоматизации GitHub-репозитория Google Agent Development Kit (ADK) для Python, позволявшие внешнему злоумышленнику через промпт-инъекции заставить низкопривилегированного бота запустить привилегированный рабочий процесс. Первый сценарий давал возможность подделать историю проверки кода, второй — выполнить произвольный код в CI-раннере и извлечь секреты, включая токены доступа и учётные данные облачных сервисов. По данным исследователей, проблемы затрагивали не сам Python-пакет ADK, а исключительно конфигурацию рабочих процессов репозитория. Google уже устранил уязвимости, удалив три проблемных воркфлоу.

Архитектурная проблема: отсутствие изоляции между агентами

Корень обеих уязвимостей — в архитектуре автоматизации репозитория. По данным исследователя Дэна Лисичкина, в репозитории ADK функционировали два класса ИИ-агентов. Низкопривилегированные боты обрабатывали публичные issues и пул-реквесты, а привилегированные агенты — доступные только мейнтейнерам — могли выполнять команды, изменять код и работать с секретами. Критическая ошибка заключалась в том, что эти две группы не были должным образом изолированы друг от друга: действие низкопривилегированного бота могло инициировать запуск привилегированного рабочего процесса.

Первый сценарий: подделка ревью через промпт-инъекцию

В первом описанном сценарии атаки злоумышленник мог открыть пул-реквест, содержащий одновременно легитимное исправление и вредоносный код, а затем создать второй пул-реквест с промпт-инъекцией. Агент первичной проверки обрабатывал этот запрос и публиковал в обсуждении служебную команду с упоминанием @gemini-cli. Поскольку сообщение исходило от доверенной учётной записи, оно автоматически запускало привилегированный рабочий процесс.

По данным исследователей, успешная эксплуатация этого вектора позволяла:

  • Извлечь GitHub-токен с расширенными правами
  • Манипулировать комментариями, issues и пул-реквестами
  • Отклонять чужие ревью и одобрять произвольные изменения
  • Запускать Gemini для любого пул-реквеста
  • Создавать полностью поддельную историю проверки кода — с имитацией запроса ревью человеком и одобрения со стороны Gemini

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

Второй сценарий: выполнение произвольного кода через adk-bot

Более опасный вектор атаки затрагивал рабочий процесс на базе Antigravity SDK. Публичный агент автоматически анализировал новые issues и оставлял комментарии от имени adk-bot, имевшего роль collaborator. Через промпт-инъекцию в тексте issue злоумышленник мог заставить бота опубликовать команду /adk-issue-fix. Поскольку команда исходила от учётной записи с ролью collaborator, она проходила проверку и запускала привилегированного агента для исправления кода.

Запущенный агент работал в окружении с доступом к токену бота, API-ключу Google и учётным данным сервисного аккаунта Google Cloud. Как сообщают исследователи, они продемонстрировали выполнение произвольного кода в CI-раннере и извлечение персонального токена доступа (PAT), которым пользовался бот.

Особого внимания заслуживает метод обхода ограничений. Воркфлоу пытался ограничить набор доступных команд, разрешив только gh и git. Однако агент сохранял возможность записи файлов на диск. Исследователи показали, что можно сохранить вредоносную нагрузку в файл, указать нестандартный каталог с хуками Git и выполнить произвольный код через разрешённую команду git — классический пример обхода списка разрешённых команд через побочные механизмы.

Оценка воздействия

Статус эксплуатации — доступен публичный PoC. Исследователи подчёркивают, что не обнаружили скомпрометированных релизов ADK и признаков эксплуатации этих уязвимостей в реальных атаках. Тем не менее потенциальные последствия были значительными: компрометация CI/CD-инфраструктуры крупного опенсорсного проекта Google могла привести к внедрению вредоносного кода в кодовую базу, используемую большим количеством разработчиков.

Данный случай показателен для всей индустрии: по мере распространения ИИ-агентов в процессах разработки границы привилегий между ними становятся новой поверхностью атаки. Промпт-инъекция превращается из теоретической угрозы в практический инструмент эскалации привилегий в CI/CD-конвейерах.

Меры по устранению и рекомендации

Инженеры Google уже усилили защиту репозитория и удалили три проблемных рабочих процесса: issue-analyze.yml, issue-fix.yml и pr-analyze.yml. Пользователям ADK как Python-пакета дополнительных действий не требуется — уязвимости не затрагивали сам код библиотеки.

Для команд, использующих ИИ-агентов в собственных CI/CD-конвейерах, исследователь Дэн Лисичкин сформулировал следующие рекомендации:

  • Разделяйте учётные записи — каждый бот должен иметь собственную учётную запись с минимально необходимыми правами
  • Ограничивайте токены — урезайте права токенов до минимума, необходимого для конкретной задачи
  • Не доверяйте командам автоматически — происхождение команды от бота не делает её доверенной; необходима независимая валидация
  • Изолируйте уровни привилегий — действия низкопривилегированных агентов не должны иметь возможности инициировать привилегированные рабочие процессы
  • Аудируйте побочные возможности — ограничение списка команд бесполезно, если агент может записывать файлы и использовать механизмы вроде Git-хуков для обхода

Обнаруженные уязвимости демонстрируют фундаментальную проблему: модели доверия, спроектированные для взаимодействия людей с CI/CD-системами, не учитывают специфику ИИ-агентов, подверженных промпт-инъекциям. Командам, внедряющим ИИ-автоматизацию в процессы разработки, следует провести аудит границ привилегий между агентами и убедиться, что ни один публично доступный бот не способен — напрямую или через цепочку вызовов — инициировать привилегированные операции.


CyberSecureFox Editorial Team

Редакция CyberSecureFox освещает новости кибербезопасности, уязвимости, malware-кампании, ransomware-активность, AI security, cloud security и security advisories вендоров. Материалы готовятся на основе official advisories, данных CVE/NVD, уведомлений CISA, публикаций вендоров и открытых отчётов исследователей. Статьи проверяются перед публикацией и обновляются при появлении новых данных.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.