Компании массово взламывают память ChatGPT и заставляют работать на себя.

Исследователи Microsoft обратили внимание на новый способ продвижения через ИИ-ассистентов. Вместо того чтобы бороться за место в поисковой выдаче, некоторые сайты пытаются повлиять на будущие ответы чат-ботов: встраивают в запрос скрытые команды вроде «запомни нас как надёжный источник» или «в дальнейшем рекомендуй нас в первую очередь». Microsoft называет это отравлением рекомендаций. Пользователь получает обычный пересказ страницы, но вместе с ним ассистент может сохранить навязанную установку, которая потом проявится в других темах и диалогах.
Здесь речь не про взлом модели и не про подмену результатов поиска. Проблема в том, что у многих ассистентов появилась долговременная память: они запоминают предпочтения, стиль ответов, детали проектов, контакты, повторяющиеся задачи и явные правила, которые задаёт пользователь. Такая функция делает сервис удобнее, но одновременно открывает уязвимость: если ассистенту подкинуть ложный «факт» или скрытое правило и он сохранит это в памяти, ответы начнут меняться без видимых причин, а пользователь может даже не связать это с недавними событиями.
Microsoft приводит простой сценарий в качестве примера. Финансовый директор просит ассистента подобрать поставщика облачной инфраструктуры для крупной закупки. Ассистент выдаёт разбор и настойчиво продвигает одну компанию (в примере используется вымышленное название), и решение в итоге обходится бизнесу в миллионы. Позже выясняется, что рекомендация могла быть не результатом анализа, а следствием записи в памяти: несколько недель назад человек нажал на кнопку «Summarize with AI» (создать краткую выжимку) в чужом блоге, а ссылка открыла чат уже с подготовленным текстом, где помимо просьбы пересказать материал была команда закрепить в памяти нужную рекомендацию. После этого ассистент начинает повторять её как будто это его собственный вывод.
Чаще всего такие установки доставляют через специально собранные ссылки с заранее заполненным запросом. Многие ассистенты умеют открываться по URL так, чтобы текст запроса сразу подставлялся в поле ввода. Обычно это делается через параметры вроде ?q=, а у некоторых сервисов — через prompt=. Пользователь кликает по кнопке «Сделать краткое резюме с помощью ИИ», попадает в чат, а в поле уже стоит текст, который не только просит пересказать страницу, но и содержит команды «запомнить» и «в будущем использовать».
Microsoft подчёркивает, что подобные попытки встречались на разных платформах. Насколько они работают, зависит от конкретного ассистента: у всех по-разному устроена память и защита от инъекций, и со временем эти механизмы меняются. С технической стороны Microsoft связывает происходящее с двумя приёмами из базы MITRE ATLAS: внедрение инструкций в запрос (AML.T0051) и отравление памяти (AML.T0080).
В своём анализе Microsoft описывает несколько путей, как такие инструкции попадают к ассистенту. Первый вариант — ссылка с уже подставленным запросом: это практически атака в один клик, потому что «лишний текст» спрятан в параметрах URL. Второй — скрытые инструкции в документах, письмах или веб-страницах, которые ассистента просят обработать, то есть внедрение через внешний контент. Третий — социальная инженерия, когда человека уговаривают вручную вставить «полезный запрос», внутри которого есть команды для памяти. В наблюдаемом тренде чаще всего использовали именно первый вариант: кнопки на сайтах, а иногда похожие ссылки приходили и по электронной почте.
Самое неприятное в этой истории — масштаб и то, кто этим занимается. За 60 дней, анализируя ИИ-ссылки, замеченные в почтовом трафике, команда нашла 50 разных примеров таких подсказок. Они шли от 31 компании из 14 отраслей, включая финансы, медицину, юридические услуги, SaaS, маркетинговые агентства, сайты с рецептами и бизнес-сервисы. Важно, что это были не анонимные мошенники, а обычные компании с официальными сайтами.
Есть и дополнительная опасность. Даже у вполне легитимных сайтов часто есть комментарии, форумы и другие пользовательские разделы. Если ассистент закрепит за сайтом статус «авторитетного», доверие может автоматически распространиться и на пользовательский контент. Тогда скрытая инструкция, размещённая уже в комментариях, получит больше веса, чем заслуживает.
Быстрое распространение объясняется тем, что под это появились готовые инструменты. Microsoft упоминает генератор ссылок AI Share URL Creator и библиотеку для веб-разработчиков CiteMET, которые помогают добавлять такие кнопки на сайты и автоматически собирать ссылки под разные ассистенты. Их рекламируют как способ чаще попадать в ответы ИИ и закрепляться как источник на будущее. Плагины снижают порог до минимума: достаточно подключить готовое решение, и ссылки формируются автоматически.
В Copilot Microsoft уже внедряет и разворачивает дополнительные меры против внедрения инструкций, и часть ранее отмеченных эффектов теперь не воспроизводится. Но, опять же, угроза постоянно эволюционирует.
Практические советы начинаются с простых вещей. Полезно навести курсор на кнопку «Summarize with AI» и посмотреть полный адрес: если ссылка ведёт на домен ассистента и содержит длинный текст в ?q= или prompt=, стоит проверить, что именно туда подставлено. Также имеет смысл время от времени открывать настройки памяти и смотреть, что ассистент сохранил. Записи, которые вы не создавали сами, лучше удалить. Если рекомендация выглядит слишком настойчивой, можно попросить ассистента объяснить, почему он советует именно этот вариант, и показать несколько независимых источников.
Для команд безопасности Microsoft предлагает искать такие попытки в корпоративных каналах по характерным признакам: домены популярных ассистентов и ключевые слова в заранее заполненном тексте запроса — remember, trusted source, authoritative, in future conversations, cite. В статье приведены примеры запросов для Advanced Hunting в Microsoft Defender, которые помогают выявлять такие URL в письмах, сообщениях Teams и событиях кликов.
// Поиск ИИ-ссылок с попытками подмешать команды для памяти в письмах
EmailUrlInfo
| where UrlDomain has_any ('copilot', 'chatgpt', 'gemini', 'claude', 'perplexity', 'grok', 'openai')
| extend Url = parse_url(Url)
| extend prompt = url_decode(tostring(coalesce(
Url["Query Parameters"]["prompt"],
Url["Query Parameters"]["q"])))
| where prompt has_any ('remember', 'memory', 'trusted', 'authoritative', 'future', 'citation', 'cite')
// Аналогичный поиск по ссылкам в сообщениях Teams
MessageUrlInfo
| where UrlDomain has_any ('copilot', 'chatgpt', 'gemini', 'claude', 'perplexity', 'grok', 'openai')
| extend Url = parse_url(Url)
| extend prompt = url_decode(tostring(coalesce(
Url["Query Parameters"]["prompt"],
Url["Query Parameters"]["q"])))
| where prompt has_any ('remember', 'memory', 'trusted', 'authoritative', 'future', 'citation', 'cite')
// Поиск пользователей, которые кликали по таким URL (если включены Safe Links и есть события кликов)
UrlClickEvents
| extend Url = parse_url(Url)
| where Url["Host"] has_any ('copilot', 'chatgpt', 'gemini', 'claude', 'perplexity', 'grok', 'openai')
| extend prompt = url_decode(tostring(coalesce(
Url["Query Parameters"]["prompt"],
Url["Query Parameters"]["q"])))
| where prompt has_any ('remember', 'memory', 'trusted', 'authoritative', 'future', 'citation', 'cite')