За последний год CI/CD-пайплайн превратился из служебного конвейера в главную мишень. В нём лежат токены, ключи облака и права на публикацию пакетов, а теперь ещё и ИИ-агент, который читает текст, написанный кем угодно. Класс атак, где недоверенный ввод дотягивается до такого агента или до секретов сборки, называют CI-инъекцией (clinejection). Ниже четыре реальных взлома 2025 года и то, что в каждом из них статически поймали бы agentpipe и agentpipe SaaS.
Что такое CI-инъекция и при чём здесь ИИ-агент
Инъекция в CI/CD-пайплайн начинается там, где обычный код-ревью её не ждёт. Сценарий сборки срабатывает на новую задачу или пул-реквест, заголовок этого события падает прямо в промпт ИИ-агента, а само задание держит npm-токен и право на публикацию. В итоге любой, кто открыл задачу, уже передал инструкции процессу, который может опубликовать ваш пакет или слить ключи. Никто ничего не нажимал. Это и есть clinejection: недоверенный триггер соединяется в одну цепочку с секретом.
Важно понять главное: защита от CI-инъекции начинается не в рантайме, а на код-ревью. Если заранее видно, что недоверенный триггер и секрет лежат в одной цепочке, её можно разорвать до того, как ей воспользуется атакующий. Ровно это и делает сканер безопасности CI/CD agentpipe: он статически прослеживает связь от точки входа до удара и показывает конкретный файл и строку.
Недоверенный триггер
Заголовок задачи или пул-реквеста, комментарий, внешний пакет, чужой форк. Текст, который может написать кто угодно.
Шаг с широкими правами
Шаг с ИИ-агентом или действие в задании, у которого есть токены, доступ к облаку или права на запись.
Секрет или публикация
Кража секретов в CI, публикация вредоносного релиза, доступ к приватным репозиториям и данным.
Взлом 1. Amazon Q Developer: враждебный пул-реквест внутри ИИ-агента
Июль 2025 года. Атакующий отправил пул-реквест в открытый репозиторий популярного расширения Amazon Q Developer для VS Code и внедрил в системный промпт ИИ-агента разрушительную инструкцию: очистить файловую систему и удалить облачные ресурсы пользователя. Пул-реквест прошёл ревью и попал в релиз, вредоносная версия успела разойтись по маркетплейсу на сотни тысяч установок, прежде чем её откатили. Это учебный пример промпт-инъекции в GitHub Actions и в цепочку сборки: недоверенный внешний участник дотянулся до агента с мощными правами.
Источник: отчёты об инциденте с расширением Amazon Q Developer (VS Code Marketplace), июль 2025.
Взлом 2. GitHub MCP: публичная задача как команда агенту
Исследователи Invariant Labs показали в 2025 году живой сценарий кражи данных через GitHub MCP. Злоумышленник открывает публичную задачу со скрытыми инструкциями. ИИ-агент, подключённый к GitHub через MCP и имеющий доступ к приватным репозиториям, читает её как команду и послушно переносит приватные данные в публичный пул-реквест. Это каноническая CI/CD-инъекция: недоверенный триггер, шаг агента, утечка приватного содержимого. Атакующему не нужен ни один эксплойт в коде, ему хватает текста в задаче.
Источник: исследование Invariant Labs по промпт-инъекции через GitHub MCP, 2025.
Взлом 3. tj-actions/changed-files: секреты в публичных логах
Март 2025 года, CVE-2025-30066. Один из самых популярных GitHub Actions, tj-actions/changed-files, был скомпрометирован через подмену тега. Вредоносный код заставлял раннер выгружать содержимое памяти процесса, то есть секреты сборки, прямо в публичные логи. Под удар попали десятки тысяч репозиториев, которые подключали действие по плавающему тегу вместо фиксированного коммита. Это чистая атака на цепочку поставок CI/CD и массовая кража секретов в CI.
Источник: NVD, CVE-2025-30066; разбор StepSecurity и Wiz, март 2025.
Взлом 4. s1ngularity / Nx: постинсталл, который искал секреты вашим же ИИ
Август 2025 года. В npm-пакет Nx попали вредоносные версии с постинсталл-скриптом, который собирал GitHub-токены, npm-токены, SSH-ключи и криптокошельки прямо на машинах разработчиков и в CI. Отдельно примечательно то, что скрипт использовал установленные локально ИИ-CLI, чтобы автоматически найти файлы с секретами. Это показало новую грань проблемы: агент и его конфигурация на машине сборки сами становятся частью атаки на цепочку поставок.
Источник: разборы инцидента s1ngularity / Nx (Wiz, StepSecurity, Socket), август 2025.
Что именно проверяют agentpipe и agentpipe SaaS
Это один движок в двух формах. Свободная версия agentpipe (CLI и GitHub Action, открытый код, лицензия MIT) даёт защиту от CI-инъекции прямо в вашем пайплайне: запускаете локально за две минуты или подключаете одним файлом, и на каждом пул-реквесте бот оставляет один комментарий с найденными цепочками. agentpipe SaaS ставится один раз на всю GitHub-организацию, следит за каждым репозиторием без единого файла сценария сборки и собирает все находки на одном дашборде.
| Сценарий | agentpipe (CLI и Action) | agentpipe SaaS |
|---|---|---|
| Поиск цепочки clinejection на пул-реквесте | да | да |
| Стороннее действие по плавающему тегу вместо SHA | да | да |
| Секрет в области видимости задания | да | да |
| Проверка локальных конфигураций агента | agentpipe local | на машинах |
| Единая картина по всем репозиториям организации | нет | да |
| Без файлов сценария сборки, установка в один клик | нет | да |
| Политика на весь парк репозиториев и дашборд | нет | да |
Честные границы
agentpipe показывает предпосылки, а не доказательство эксплуатации. Он статически анализирует GitHub Actions и конфигурации агентов, не запускает ваш агент и не останавливает промпт-инъекцию в момент атаки. Каждый отчёт заканчивается тем, что скан не видит, и именно там начинается настоящий пентест. Если нужен рубеж в рантайме, его закрывает Airlock, а честное подтверждение действий человеком берёт на себя Countersign. Вместе это — эшелонированная защита: agentpipe ловит цепочку заранее, Airlock и Countersign страхуют в момент выполнения.
Как начать за две минуты
Защита от CI-инъекции не требует внедрения на неделю. Поставьте CLI и просканируйте репозиторий:
pip install agentpipe-scan
agentpipe scan . # проверить сценарии сборки этого репозитория
agentpipe local # проверить конфигурации ИИ-агентов на машинеПонравилось на одном репозитории и хотите единую панель и политику на всю организацию? Подключите agentpipe SaaS, он бесплатен на время беты. Безопасность ИИ-агентов в CI/CD начинается с того, чтобы увидеть цепочку раньше атакующего.
Частые вопросы про защиту от CI-инъекции
Что такое CI-инъекция (clinejection)?
Это класс атак, где недоверенный ввод (заголовок задачи, пул-реквест, внешний пакет) дотягивается в одной цепочке до ИИ-агента или до секретов сборки. Атакующему не нужен эксплойт в коде, ему достаточно текста, который читает ваш пайплайн.
Чем agentpipe отличается от обычного линтера или сканера кода?
Линтер проверяет синтаксис сценария сборки или сам код. agentpipe прослеживает связь целиком: недоверенное событие, шаг агента, секрет, и показывает конкретный файл и строку. Он ищет цепочку, а не отдельную строку конфигурации.
agentpipe останавливает prompt injection (промпт-инъекцию) в момент атаки?
Нет. agentpipe работает статически и показывает предпосылки до запуска, он не выполняет ваш агент. Рубеж в рантайме закрывает Airlock, а честное подтверждение действий человеком берёт на себя Countersign.
Чем agentpipe SaaS полезнее свободной версии?
Движок один и тот же. agentpipe SaaS ставится один раз на всю GitHub-организацию, следит за каждым репозиторием без файлов сценария сборки и собирает все находки на одном дашборде с политикой на весь парк репозиториев. Свободная версия (CLI и Action) защищает отдельный репозиторий.
Это правда бесплатно?
CLI и GitHub Action бесплатны и с открытым кодом навсегда (MIT). agentpipe SaaS бесплатен на время беты с разумными лимитами.