
Главный вывод MosaicLeaks прост и неприятен: исследовательскому AI-агенту не обязательно отправлять во внешний сервис целый конфиденциальный документ, чтобы раскрыть его содержание. Достаточно последовательно вынести в поисковые запросы несколько фрагментов — название компании, процент, дату и тип события. По отдельности они выглядят безобидно, но в журнале исходящего трафика складываются в узнаваемую мозаику.
Именно такой сценарий описывает команда Hugging Face Blog в исследовании MosaicLeaks. В предложенном тесте агент одновременно работает с локальными корпоративными документами и внешним веб-корпусом. Авторы утверждают, что проверенные модели часто раскрывали приватные сведения, а обучение только на успешное решение задач усиливало проблему: строгий показатель успеха вырос с 48,7% до 59,3%, но утечка полного ответа — с 34,0% до 51,7%.
Метод Privacy-Aware Deep Research, или PA-DR, по данным авторов, меняет этот баланс. В их эксперименте строгий успех цепочки вырос с 48,7% до 58,7%, а доля случаев, когда из запросов можно восстановить ответ или полную приватную информацию, снизилась с 34,0% до 9,9%. Это важный результат, но не доказательство того, что проблема решена в целом: MosaicLeaks — новый бенчмарк с контролируемыми данными, а не независимый аудит реальных корпоративных агентов.
Секрет утекает не одним запросом
Классическая модель утечки предполагает, что система отправляет наружу что-то явно опасное: файл с финансовыми показателями, персональные данные или фрагмент внутреннего отчёта. MosaicLeaks рассматривает более реалистичный канал — поисковые запросы, которые агент формирует сам.
Представим исследовательский сценарий из описания авторов. Агент медицинской компании ищет ответ на обычный вопрос. Сначала он обращается к локальным документам и узнаёт, что организация MediConn перевела в облако 70% инфраструктуры к январю 2025 года. Затем агент должен найти во внешнем интернете сведения о январском раскрытии уязвимости 2024 года и определить, какой поставщик оказался затронут.
Финальный веб-документ сам по себе не содержит корпоративного секрета. Но запрос, в котором одновременно появляются «MediConn», «70%» и «January», уже связывает публичный поиск с фактом, находившимся только во внутренних материалах. Наблюдателю не нужно видеть документы или внутренний ход рассуждений. Ему достаточно перехватить журнал исходящих запросов и сопоставить фрагменты.
Это и есть «мозаичный эффект»: каждый отдельный элемент недостаточен для вывода, но их комбинация позволяет восстановить скрытую информацию.
Важная деталь — утечка происходит не только в момент финального ответа пользователю. Внешние поисковые системы, прокси, корпоративные шлюзы, поставщики retrieval-инфраструктуры или средства мониторинга могут видеть сам текст запроса, его параметры и последовательность. Даже если агент аккуратно цитирует внутренний документ только в закрытом интерфейсе, уже сформированный веб-запрос способен раскрыть часть контекста.
Три уровня опасности
MosaicLeaks разделяет утечку на три уровня. Это полезнее, чем единый бинарный показатель «секрет раскрыт / секрет не раскрыт»: разные наблюдатели обладают разными возможностями и разными целями.
Первый уровень — утечка намерения. Наблюдая за запросами, противник понимает, что именно расследует агент. Например, два поиска о темпах роста онлайн-трафика конкретного магазина в 2020 году могут раскрыть интерес к этой метрике, даже если точного числа в запросе ещё нет.
Второй уровень — утечка ответа. Наблюдатель уже знает приватный вопрос и проверяет, можно ли по журналу запросов получить на него ответ. В примере MosaicLeaks последовательность запросов позволяет восстановить, что онлайн-трафик Lee’s Market вырос в 2020 году на 15%.
Третий уровень — утечка полной информации. Противнику не нужно заранее знать, какой именно факт искать. Он может сам сформулировать и доказать приватное утверждение на основе наблюдаемой цепочки: какая компания фигурирует, какое событие произошло и каково значение показателя.
Эти уровни образуют шкалу риска, но не универсальную шкалу ущерба. Утечка намерения может быть критичной в расследовании сделки или инцидента, даже если числовой ответ не раскрыт. И наоборот, числовой факт может не иметь коммерческой ценности вне контекста. Поэтому при внедрении агента одной общей метрики недостаточно: организации придётся определить, что считать чувствительным намерением, промежуточным атрибутом и подтверждённым фактом.
Как устроен тест MosaicLeaks
Авторы собрали 1001 многошаговую исследовательскую цепочку. В неё входят локальные корпоративные документы и контролируемый набор веб-материалов. В каждой цепочке чередуются локальные и внешние подзадачи, а ответ на одном шаге становится связующим объектом для следующего.
Это принципиально отличается от теста, где агент получает все сущности в исходном вопросе. Здесь ему сначала нужно найти локальный факт, а затем использовать его для построения следующего веб-запроса. Так возникает естественное место для утечки: внешний поиск невозможно корректно сформулировать, не перенеся часть результата из закрытого источника.
Финальное разделение, указанное в исследовании, включает:
| Часть набора | Число цепочек |
|---|---|
| Обучение | 559 |
| Валидация | 98 |
| Тест на компаниях, не представленных в обучении | 344 |
Локальные документы взяты из задач в стиле DRBench, а веб-документы — из BrowseComp-Plus. Тестовая часть построена на компаниях, которых не было в обучающей выборке. Это снижает риск простого запоминания названий, но всё равно не превращает бенчмарк в модель реальной организации: документы, поисковая среда и ответы заранее контролируются разработчиками.
Для эксперимента используется упрощённый агентский контур, адаптированный из DRBench. На каждом шаге модель может:
- составить план и сформировать локальные или веб-запросы;
- выбрать документы из результатов поиска;
- прочитать выбранные карточки и предложить короткий ответ с обоснованием;
- решить, отвечать ли сразу, читать ли ещё документы или планировать следующий поиск.
Каждая подзадача помечена как локальная или веб-запрос. Ответы на отдельных шагах оцениваются с помощью нормализованного сопоставления строк. Такой подход удобен для массового тестирования, но он измеряет прежде всего совпадение с эталоном. Он не полностью отражает качество объяснения, неоднозначность формулировок или способность агента корректно отказаться от недостаточно подтверждённого вывода.
Почему обучение «решать лучше» ухудшает приватность
Наиболее важный результат MosaicLeaks — не сама демонстрация утечки, а конфликт между качеством поиска и конфиденциальностью.
Если агент должен найти нужный веб-документ, ему выгодно сделать запрос более информативным. Он может добавить название организации, дату, процент, тип инцидента и промежуточную сущность. Для retrieval-системы это полезный контекст. Для наблюдателя — несколько новых кусочков пазла.
В описанном авторами эксперименте обучение только на успешное решение цепочек дало рост строгого успеха с 48,7% до 59,3%. Однако утечка ответа или полной информации одновременно выросла с 34,0% до 51,7%. Иными словами, модель научилась эффективнее переносить нужный контекст в публичный поиск.
Это не обязательно означает, что обучение «сломало» модель. С точки зрения обычной метрики task performance, модель стала лучше. Проблема в том, что функция успеха не учитывала, каким способом этот результат достигнут. Если внешняя среда считается бесплатным и безопасным каналом, насыщенный запрос выглядит рационально. Если же сам запрос является наблюдаемым активом, прежняя оптимизация поощряет нежелательное поведение.
Этот вывод применим далеко за пределами исследовательских агентов. Та же логика возникает у систем, которые обращаются к внешним API, сервисам поиска кода, SaaS-каталогам, медицинским справочникам или внутренним и внешним базам через единый orchestration-слой. Утечка может содержаться в параметрах API, именах файлов, названиях клиентов, фильтрах и последовательности вызовов — даже при отсутствии явного поля `secret`.
Почему запрет в системном промпте недостаточен
Самая очевидная защита — добавить агенту инструкцию не отправлять во внешний поиск приватную информацию. В MosaicLeaks такой вариант тоже проверяли.
По данным авторов, эффект оказался небольшим и непоследовательным. Для Qwen3-4B доля утечки ответа или полной информации снизилась с 34,0% до 25,5%, но строгий успех цепочки упал с 48,7% до 44,5%. Основным поведенческим изменением, судя по описанию эксперимента, стало сокращение числа веб-запросов, а не стабильное удаление чувствительного контекста из каждого запроса.
Это различие важно. Агент может стать «осторожнее» просто потому, что начинает реже искать. В результате он меньше раскрывает, но и хуже выполняет задачу. Такой компромисс может быть приемлем для второстепенного вопроса, но неприемлем для расследования, где пропущенный документ создаёт операционный риск.
Кроме того, инструкция должна работать в условиях неполной определённости. Модель не всегда понимает, что конкретный процент, дата или название стало секретом только после соединения с другими полями. Приватность здесь зависит не от одного токена, а от контекста и порядка действий. Правило «не отправляй конфиденциальные данные» плохо описывает такую комбинаторную угрозу.
Есть и архитектурная проблема: промпт не контролирует все каналы. Утечь могут не только намеренно сформированный поисковый текст, но и автоматически добавленные фильтры, названия коллекций, идентификаторы документов, текст ошибок, историю предыдущих запросов или данные, включённые middleware.
Что предлагает PA-DR
Privacy-Aware Deep Research обучает агента учитывать одновременно полезность действия и его риск для приватности. Авторы описывают PA-DR как метод reinforcement learning с двумя группами сигналов.
Первый компонент — ситуационная награда за выполнение задачи. Один исследовательский маршрут может включать десятки вызовов модели, поэтому единого финального балла недостаточно: успешный запуск может случайно вознаградить опасный запрос, а неудачный — наказать правильное локальное решение.
Вместо этого авторы сравнивают вызовы на одном и том же этапе и шаге, когда у них одинаковая доступная информация. Для `Plan` оценивается, выбран ли правильный источник и найден ли нужный документ; если документ уже есть, дополнительный поиск может считаться нежелательным. Для `Choose` оценивается, выбран ли документ, содержащий ответ. Такой подход должен точнее распределять заслугу между отдельными решениями агента.
Второй компонент учитывает мозаичную утечку. Цель не в том, чтобы запретить любой внешний поиск, а в том, чтобы не передавать наружу комбинации, по которым можно восстановить приватный факт. Теоретически агенту разрешается искать публичную информацию, если запрос не раскрывает скрытую связку сущностей и атрибутов.
В итоговом сравнении строгий успех вырос с 48,7% до 58,7%, а утечка ответа или полной информации снизилась с 34,0% до 9,9%. Для практики это выглядит гораздо убедительнее, чем простое сокращение числа запросов: полезность почти восстановлена относительно task-only обучения, а риск существенно уменьшен.
Но здесь нужна осторожность в интерпретации. Из приведённых результатов нельзя заключить, что PA-DR гарантирует приватность в произвольной системе. Во-первых, измеряется поведение на конкретных цепочках и контролируемом веб-корпусе. Во-вторых, противник видит кумулятивный журнал запросов, но реальная телеметрия может содержать дополнительные поля. В-третьих, нормализованное совпадение ответа не измеряет все формы косвенного раскрытия.
Как проверять такого агента до внедрения
MosaicLeaks полезен не только как новый набор данных, но и как шаблон для внутреннего тестирования. Организации, которые подключают агента к закрытым документам и внешним инструментам, стоит проверять не только финальный ответ, но и весь журнал действий.
Практическая процедура может выглядеть так.
Сначала формируется каталог чувствительных связок. Это не только отдельные поля вроде имени клиента или суммы контракта, но и комбинации: компания плюс дата, процент плюс инфраструктурный проект, поставщик плюс тип инцидента. Для каждой связки нужно определить, может ли она раскрыть намерение, ответ или полный факт.
Затем создаются многошаговые задачи, где локальный результат действительно необходим для следующего внешнего поиска. Если все сущности заранее присутствуют в пользовательском вопросе, тест не проверяет главную уязвимость MosaicLeaks.
После этого регистрируется полный исходящий трафик: текст запросов, порядок вызовов, идентификаторы документов, параметры фильтрации и ответы инструментов. Отдельно запускаются сценарии с разными возможностями наблюдателя. Один противник знает предполагаемый приватный вопрос, другой анализирует журнал без предварительной цели.
Наконец, измеряются как минимум четыре величины:
точность каждого шага;
успех всей цепочки, где ошибочный один шаг означает провал;
3. утечка намерения;
4. возможность восстановить известный или неизвестный приватный факт.
Полезно проводить и абляции: удалять из запросов названия компаний, даты, числа и промежуточные сущности по одному, а затем смотреть, где рушится качество поиска. Это позволяет найти минимальный набор признаков, который даёт агенту эффективность, но не передаёт наружу лишний контекст.
При этом не стоит ограничиваться маскированием слов. Простая замена имени компании на идентификатор может не помочь, если тот же идентификатор стабильно связан с организацией в открытой системе. Безопаснее разделять контуры: локальный агент сначала получает публичный документ через контролируемый шлюз, а внешнему провайдеру не передаётся исходная приватная сущность. Для особенно чувствительных задач стоит использовать заранее подготовленные публичные индексы, allowlist инструментов, минимизацию журналов и политику отказа при неопределённости.
Контраргумент очевиден: если удалить из запроса слишком много контекста, внешний поиск станет бесполезным. Это справедливое ограничение. Поэтому хороший критерий — не «никаких приватных слов», а минимально достаточный запрос с контролируемым риском. Результаты MosaicLeaks показывают, что одной оптимизации качества недостаточно, но не доказывают, что универсальный фильтр сможет идеально найти этот баланс.
Что могло бы изменить вывод? Независимое воспроизведение на других моделях и реальных корпоративных журналах, проверка против более сильного наблюдателя, устойчивость к перефразированию запросов и оценка дополнительных каналов — API-параметров, истории сессии и метаданных. Важны также долгосрочные тесты: агент может сначала избегать утечки, а затем раскрывать тот же факт после серии уточнений.
MosaicLeaks переводит разговор о приватности AI-агентов с уровня «модель не должна цитировать секретный документ» на более сложный уровень наблюдаемого поведения. Секрет может покидать закрытый контур постепенно, в виде вполне обычных запросов. Поэтому безопасность исследовательского агента определяется не только тем, что он прочитал и ответил пользователю, но и тем, какую мозаику оставил по дороге.