GitHub AI agent утекли private repositories через prompt injection-атаку — ИИ для бизнеса

GitHub AI agent утекли private repositories через prompt injection-атаку

Прослушать статью

Выводы усиливают опасения по поводу безопасности AI agents с привилегированным доступом к корпоративному коду.

Prompt injection-атака может заставить preview Agentic Workflows в GitHub извлечь содержимое из private repositories и опубликовать его открыто, что показывает более широкий риск по мере того, как компании внедряют AI agents с привилегированным доступом к средам разработки, следует из нового исследования Noma Security.

Компания по AI-безопасности описала атаку, получившую название GitLost, в блоге. По ее словам, неавторизованный атакующий мог использовать preview Agentic Workflows в GitHub, отправив специально созданный GitHub issue в публичный репозиторий. Если AI agent имеет доступ на чтение к private repositories внутри той же организации, он может извлечь конфиденциальную информацию и опубликовать ее в публичном комментарии, заявила компания.

GitHub Agentic Workflows объединяют GitHub Actions с AI models вроде Claude или GitHub Copilot, позволяя разработчикам описывать workflows в Markdown. При этом AI agents читают issues, вызывают инструменты и выполняют задачи от их имени.

«Что произойдет, когда GitHub agent прочитает то, чему не должен доверять?» — написал исследователь Noma Sasi Levi. «Ответ — классическая indirect prompt-injection attack, которая тихо отправляет private data любому в интернете».

Публичный GitHub issue стал вектором атаки

По данным Noma, атака не опиралась на украденные учетные данные, malware или software vulnerabilities. Вместо этого атакующий встроил скрытые инструкции в GitHub Issue, отправленный в публичный репозиторий.

Поскольку AI agent интерпретировал issue как инструкции, а не как untrusted content, он получил доступ к private repository и вернул его содержимое обратно в публичный issue, добавили в блоге.

«Корневая причина уязвимости GitLost — уже знакомая проблема в agentic AI systems: prompt injection», — написал Levi. «В этом конкретном случае любой malicious actor может создать GitHub Issue и спрятать в тексте issue команды на обычном английском, которым GitHub agent последует».

Чтобы показать атаку, исследователи создали выглядевший обычным GitHub Issue с просьбой обновить документацию. После запуска workflow AI agent забрал файл README из private repository и опубликовал его содержимое в публично видимом комментарии.

Исследователи также сообщили, что обошли prompt-based guardrails GitHub, слегка изменив формулировку так, чтобы AI agent выполнил инструкции, которые ранее отвергал.

GitHub не сразу ответила на запрос о комментарии.

Исследование указывает на более широкий риск для AI agents

Noma заявила, что GitLost показывает более общую архитектурную проблему AI agents, а не flaw, уникальный для GitHub.

«Проблема не в том, что AI agent GitHub необычно небезопасен», — написал Levi. «Проблема в том, что любой AI agent, имеющий доступ и к untrusted external content, и к sensitive internal resources, может стать непреднамеренным мостом между ними, если trust boundaries не enforced».

Независимый cybersecurity researcher и red teamer Vibhum Dubey сказал, что результаты показывают более фундаментальную проблему, чем prompt injection сама по себе.

«Это не prompt injection в абстрактном смысле. Это GitHub, который выпускает agent permissions до того, как выпускает agent security», — сказал Dubey. «Уязвимость показывает, что AI agents работают по модели permissions service account, а не user permission model. Это архитектурное допущение, которое команды безопасности сделали до того, как начали рассматривать LLMs как вектор атаки».

По словам Dubey, сама prompt injection здесь почти вторична.

«Опасность в том, что trust boundaries есть в data model GitHub, но нигде в execution context агента», — сказал он. «Agent не “знает”, что repository private. Он видит лишь “accessible”. По мере того как все больше организаций deploy agents, мы накапливаем эти невидимые permission gaps».

Эксперты призывают к более жесткому контролю над AI agents

Dubey сказал, что организациям стоит пересмотреть, как AI agents получают permissions, а не рассматривать проблему прежде всего как задачу мониторинга.

«Три конкретных исправления: agents должны получать явные repository whitelists, а не широкий доступ service account. Все пользовательские input, включая commit messages, PR descriptions и issues, нужно проверять до того, как они попадут в LLM. И нужен аварийный kill-switch», — сказал он. «Большинство команд могут отключить скомпрометированный API key. А вы можете отключить rogue agent?»

Dubey добавил, что GitLost показывает, как AI agents могут фактически стать insider threat, если им дать широкий organizational access.

«Гениальность GitLost не в том, что он обманул AI. Он в том, что он превратил предположение GitHub о доверенности service accounts в оружие», — сказал он. «Agents были созданы, чтобы обходить человеческое суждение и работать автономно. Именно поэтому они опасны: мы нормализовали cross-boundary operations в момент, когда автоматизировали их».

Noma также рекомендовала применять least-privilege access controls, ограничивать cross-repository access для AI agents и рассматривать GitHub Issues, pull requests и comments как untrusted input.


Материал — перевод статьи с английского.

Оригинал: GitHub AI agent leaks private repositories via prompt injection attack