Угрозы

Copilot отказался в чате, но зато записал опасное в код

Маша Даровская
By Маша Даровская , IT-редактор и автор
Copilot отказался в чате, но зато записал опасное в код
Обложка © Anonhaven

Исследователи описали новый тип обхода защитных фильтров в IDE-агентах: GitHub Copilot отказывается отвечать на вредные запросы в обычном чате, но может сгенерировать те же опасные ответы внутри файлов, тестовых данных и программного конвейера. Проблема не в одном «магическом» промпте, а в том, что вредная цель собирается по частям через обычный рабочий процесс разработчика.

Работа называется Refused in Chat, Written in Code: Workflow-Level Jailbreak Construction in IDE Coding Agents. Ее авторы, Abhishek Kumar и Carsten Maple, опубликовали препринт 4 июля 2026 года. Они проверяли GitHub Copilot в Visual Studio Code на четырех закрытых модельных бэкендах: Claude Sonnet 4.6, Claude Haiku 4.5, Gemini 3.1 Pro и Gemini 3.5 Flash. Прямые вредные запросы почти всегда блокировались, но в полном многошаговом рабочем процессе результат изменился радикально: 816 из 816 попыток завершились генерацией небезопасных «обучающих примеров» внутри кода.

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

В эксперименте Copilot не просили напрямую выдать запрещенный ответ. Ему давали на вид легитимную инженерную задачу: построить конвейер для оценки устойчивости другой модели к обходу правил, загрузить набор промптов, посчитать метрики, улучшить успешность тестов и добавить примеры «вопрос — ответ» для обучения. На каждом отдельном шаге задача выглядела как обычная разработка инструмента для оценки безопасности. Вредное содержимое появлялось уже внутри массивов строк, тестовых фикстур и генерируемых файлов, а не как прямой ответ в чате. Cybersecurity News описывает это как workflow-level jailbreak construction — обход, собранный на уровне рабочего процесса, а не одного сообщения.

Авторы проверили 204 промпта из наборов Hammurabi’s Code, HarmBench и AdvBench. В базовых режимах — прямой чат, чтение CSV и одношаговая правка кода — успешных вредных ответов было только 8 из 816 в каждом варианте. В полном рабочем процессе те же промпты и модели дали 816 из 816 небезопасных завершений, причем их отдельно подтвердили два экспертных оценщика по строгой рубрике.

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

GitHub уже отдельно разбирал похожий класс угроз для VS Code: если в чат попадает отравленный внешний контент, например issue или pull request с вредными скрытыми инструкциями, агент может попытаться выполнить чувствительные действия через доступные инструменты. В публикации GitHub говорится, что такие сценарии могут приводить к утечке токенов GitHub, чтению конфиденциальных файлов или даже запуску произвольного кода без явного согласия пользователя, если защита настроена плохо.

Исследование на Copilot хорошо показывает сбой, но проблема касается всего класса агентных помощников для кода. В 2026 году отдельная систематизация по атакам на агентные кодинг-ассистенты собрала 78 исследований за 2021–2026 годы и описала 42 техники атак: манипуляцию входными данными, отравление инструментов, злоупотребление протоколами, мультимодальные инъекции и перенос инструкций между разными источниками контекста. Авторы этой работы делают вывод, что внедрение инструкций нужно считать полноценным классом уязвимостей, а не проблемой, которую можно закрыть парой фильтров.

Есть новость? Станьте автором.

Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.