Cайт программиста Ruby, веб-разработчика Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

Защита видит шифротекст, Copilot видит приказ. Новая атака обходит фильтры искусственного интеллекта

Шифрование, которое обычно защищает данные, превратилось в способ спрятать команду от защитных фильтров искусственного интеллекта (ИИ). Команда Adversa AI показала атаку Cryptographic Context Injection на GitHub Copilot CLI: вредоносная страница передаёт зашифрованные инструкции, а агент сам расшифровывает их в своей среде, выполняет как доверенные и действует с полномочиями локального инструмента.

В опубликованном тесте пользователь запускал Copilot CLI в режиме autopilot и просил открыть одну веб-страницу. Adversa AI сообщила, что страница содержала шифротекст, инструкцию запустить Python и два предполагаемых ключа. Обычный фильтр видел только зашифрованный блок и не мог оценить смысл команды до того, как Copilot сам восстановил открытый текст.

Первый «ключ» на самом деле служил шаблоном, для заполнения которого агент читал локальные файлы, включая .env.prod. Попавшие в шаблон секреты сохранялись в строке ключа. Попытка расшифровки специально завершалась ошибкой, после чего Copilot переходил ко второму ключу, получал настоящий текст инструкции и обращался к следующему URL с уже подготовленными данными.

Второй запрос содержал сведения, прочитанные с диска, поэтому секреты уходили на сервер атакующего как параметры обращения. По данным Adversa AI, вся цепочка заняла 28 секунд и не потребовала дополнительного подтверждения после первоначальной команды открыть страницу. Такая prompt injection опаснее обычной текстовой уловки, поскольку вредоносный смысл появляется только внутри среды агента.

Успех атаки зависел от модели. Microsoft mai-code-1.1-flash выполнила полную цепочку в 50% запусков Adversa AI, тогда как две модели OpenAI GPT-5.6 отказались выполнять тот же зашифрованный сценарий. При автоматическом выборе модели Copilot мог назначить разные движки без явного решения пользователя, поэтому одинаковый запрос давал разный результат.

Adversa AI отправила отчёт в программу GitHub Bug Bounty 17 сентября. По данным команды, GitHub проверила сообщение, но отказалась считать сценарий уязвимостью продукта. Компания считает, что пользователь сам просит Copilot загрузить недоверенный контент и разрешает автономные действия. На 1 октября Adversa AI всё ещё воспроизводила цепочку на восприимчивой модели.

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

SecurityLab