Что появилось в списке 2025 года
RAG-архитектура — дополнение ответов модели поиском по собственной базе знаний — стала самой распространённой формой корпоративного ИИ. Её ядро — векторное представление: текст превращается в числовой отпечаток, по схожести отпечатков находится релевантный материал. Издание 2025 года закрепило за инфраструктурой этого конвейера отдельную позицию: векторные базы и эмбеддинги создают специфическую поверхность атаки, которой не было в классических системах поиска.
Специфику задают три свойства. Эмбеддинг — производная конфиденциального текста: по отпечатку в ряде сценариев можно восстановить содержание. Поиск работает по близости, а не по точному совпадению — фильтрация прав должна встраиваться в сам запрос, иначе чужой документ окажется в выдаче. Наконец, индекс — привлекательная мишень для закладок: испорченная запись влияет на все ответы, которые её касаются.
Карта рисков конвейера
| Элемент | Угроза | Механизм |
|---|---|---|
| Эмбеддинги документов | восстановление исходных текстов | инверсия векторных представлений |
| Хранилище векторов | доступ к чужой коллекции | единая база без разделения прав |
| Поисковая выдача | сведения уровня выше прав пользователя | отсутствие фильтрации при запросе |
| Индекс | закладки и отравление | запись вредоносного материала в базу |
| Конвейер индексации | попадание лишних данных | сканирование приватных хранилищ |
| Кэш результатов | выдача чужого контекста | общие кэши между пользователями |
Утечки через эмбеддинги
Распространённое заблуждение: вектор — обезличенное число, хранить отпечатки можно свободнее текста. Исследования инверсии показывают обратное: по векторным представлениям восстанавливается значимая часть исходного содержания, а сопоставление с известными текстами позволяет идентифицировать источник. Практический вывод: к хранилищу эмбеддингов применяются те же требования доступа, что и к самим документам. Отдельно проверяется внешний периметр: векторные базы, доступные из интернета с дефолтными учётными данными, — регулярно встречающаяся находка обследований.
Права на выдачу
Классическая ошибка RAG — индексация общего хранилища с документами разных уровней конфиденциальности при выдаче без фильтрации: ассистент честно находит договор отдела, который спрашивающему видеть не положено. Исправление — фильтрация на уровне запроса: у каждой записи индекса метка уровня и владельца, у каждого пользователя — профиль прав, поиск идёт по пересечению. Популярная у команд альтернатива «сделаем отдельные индексы по уровням» работает, пока уровней мало; при росте гранулярности правильнее единый индекс с метками.
Отравление индекса
Пополнение базы — регулярная операция, и каждый вход несёт риск: документ с промпт-вставкой, попадая в индекс, начинает влиять на ответы при каждом совпадении по смыслу. Защита повторяет дисциплину приёмки данных: источники с владельцами, санитизация текста до индексации, выборочная проверка записей на скрытые инструкции, аудит изменений справочников. Для внешнего контента — карантинная зона индекса, из которой материал попадает в боевой только после просмотра.
Инженерный минимум
- аутентификация и авторизация на самом хранилище векторов, никакой анонимности и дефолтных паролей;
- шифрование хранилища и каналов; резервные копии индексов под тем же режимом доступа, что и первоисточники;
- метки уровня и владельца на записях, фильтрация в каждом запросе, тест прав на проникновение между отделами;
- журнал поисковых запросов и выданных фрагментов — иначе разбор инцидента невозможен;
- контроль пополнения: источники, санитизация, карантин для внешнего контента;
- ограничение кэширования результатов по пользователям, чтобы выдача одного не подставлялась другому.
Как проверить свой конвейер
Трёхчастный тест. Права: под учёткой с минимальными правами задать вопросы, ответы на которые лежат в закрытых документах, — утечка в выдаче фиксируется как находка. Содержимое: выборочно восстановить тексты по эмбеддингам из хранилища и оценить, что реально читается. Целостность: внести в тестовую зону документ с безобидной меткой-закладкой и проверить, воспроизводится ли её влияние в ответах. Результаты превращаются в задачи по местам, а не общее «надо лучше».
Мультимодальные индексы: особый случай
Когда в поиске участвуют не только тексты, но и изображения, аудио и видео, конвейер наследует текстовые риски и добавляет свои. Текст, распознанный из картинки или звуковой дорожки, попадает в эмбеддинги наравне с обычным документом — вместе со всеми закладками, которые туда вписаны. Метаинформация файлов — описания, теги, подписи слоёв — нередко индексируется без разбора и выносит наружу сведения, которые команда считала служебными. Отдельного внимания заслуживает согласованность прав: доступ к исходному файлу и доступ к его векторному следу должны совпадать, а на практике рассинхронизация возникает первой. Практическое правило то же, что и для текстов, плюс один пункт — контроль распознанного слоя: всё, что извлечено из мультимодального содержимого, проходит ту же санитизацию и разметку доступа, что и загруженные документы.
Рост мультимодальности ассистентов делает этот раздел актуальным для всё большего числа организаций: индекс, который вчера был текстовым, сегодня принимает файлы нового типа — и его периметр надо пересматривать синхронно с расширением форматов.
Экономика вопроса
Векторный слой часто достаётся организации «бесплатно» — как встроенная функция корпоративного поиска или готового ассистента, — и потому не попадает ни в один реестр. Между тем именно на него завязаны самые чувствительные данные компании: в индекс попадает то, что сотрудникам нужно находить, то есть концентрированная суть бизнеса. Практика аудитов показывает закономерность: чем позже векторное хранилище заметила служба безопасности, тем больше лишнего в него успело попасть — от черновиков договоров до кадровых документов. Раннее включение слоя в контур управления стоит часов согласований; позднее — недель выборочной чистки индекса и оценки того, кто и что мог прочитать через выдачу.
Разбор атаки: чтение закрытой коллекции через уязвимость в соседнем сервисе
Типовая компрометация векторного слоя не начинается с самого хранилища. Обезличенный сценарий: веб-приложение с функцией «спросить у ассистента», рядом во внутренней сети — векторная база, развёрнутая в конфигурации по умолчанию.
Шаг 1 — точка входа. Во фронтенде находится серверный запрос к произвольному адресу (SSRF): картинка по ссылке грузится сервером, а не браузером. Прямого отношения к поиску это не имеет — но исполняющий запрос идёт из внутренней сети.
Шаг 2 — обнаружение цели. Перебором внутренних адресов находится открытый порт векторной базы. Аутентификация не включена — «внутри же сети»; дефолтные настройки отдают список коллекций по первому запросу.
Шаг 3 — съём данных. Через API поиска атакующий тянет фрагменты: запросы составляются так, чтобы выдача возвращала содержательные куски документов. Метаданные записей — авторы, названия папок, даты — собираются отдельным обходом.
Шаг 4 — восстановление. По сочетанию фрагментов и метаданных реконструируется структура хранилища: какие отделы что положили, где договоры, где кадровые документы. Полного текста не нужно — достаточно выдачи, чтобы понять ценность и точечно доизвлекать.
Шаг 5 — тишина. Журналирование запросов к базе не включено: в логах — только нехарактерная активность фронтенда. Инцидент обнаруживается позже — по внешним признакам или на аудите.
Разрыв цепочки стоит копейки относительно ущерба: аутентификация на хранилище (дефолтные учётные данные — недопустимая конфигурация); сетевая сегментация (у веб-сервера нет причины ходить в подсеть данных — SSRF упирается в стену); журнал поисковых запросов (шаг 3–4 оставили бы след); метки уровня и владельца на записях с фильтрацией в самом запросе (выдача атакующему была бы пустой). Отдельный слой — маскирование персональных сведений до индексации: в векторный след не должно попадать то, что не нужно для поиска.
Таблица «сценарий → как проявляется → защита»
| Сценарий компрометации | Как проявляется | Защита |
|---|---|---|
| Хранилище без аутентификации во внутренней сети | база отвечает на запросы любого сервиса сегмента | обязательные учётные записи, сетевой периметр вокруг слоя |
| Доступ через SSRF соседнего приложения | странные исходящие запросы фронтенда внутрь | сегментация, запрет веб-серверам в подсеть данных |
| Выдача без учёта прав спрашивающего | закрытые фрагменты приходят в ответах ассистента | метки уровня и владельца, фильтрация в каждом запросе |
| Инверсия эмбеддингов | по утечке векторов восстанавливается часть текстов | тот же режим доступа, что у исходных документов |
| Запись в индекс без приёмки | в базе появляются файлы вне регламента | карантин, единый конвейер пополнения, аудит изменений |
| Общий кэш выдач между пользователями | один пользователь получает контекст другого | ключ кэша с учётом прав, отключение общего кэширования |
| Рассинхрон прав файла и его вектора | доступ к документу закрыт, а его след читается | синхронная переиндексация при смене прав, периодическая сверка |
| Бэкап индекса с послабленным режимом | копия лежит там, где прав меньше, чем у боевой базы | единый режим доступа для копий, шифрование носителей |
Чек-лист самопроверки векторного контура: двенадцать пунктов
- Хранилище векторов требует аутентификацию — без исключений «для внутренней сети».
- Сетевой доступ к слою имеют только компоненты конвейера, а не все сервисы сегмента.
- У записей есть метки уровня и владельца; фильтрация выполняется в каждом запросе.
- Персональные сведения маскируются до индексации, а не после утечки.
- Права на файл и его векторный след меняются синхронно.
- Пополнение идёт через единый конвейер с карантином для внешнего контента.
- Журнал запросов фиксирует, кто, что искал и какие фрагменты получил.
- Кэш выдач изолирован по пользователям.
- Резервные копии индекса находятся в том же режиме доступа, что боевая база.
- Регулярно выполняется тест «минимальных прав»: под учётной записью без прав задаются вопросы по закрытым темам.
- Состав индекса периодически сверяется с реестром допустимых источников.
- Индекс внесён в реестр ИИ-активов — слой, которого нет в учёте, не защищается.
Что это значит для бюджета
Обезличенный расчёт для организации с внутренним ассистентом и хранилищем на открытых компонентах. Программная строка близка к нулю: свободные СУБД векторного поиска распространяются по лицензиям Apache-2.0, платите вы за инженерию, а не за лицензии. Инженерная строка — аутентификация, сегментация, метки прав, маскирование и журналирование: порядка нескольких недель работы команды с последующей поддержкой. Строка проверки — аудит конвейера (от 70 000 ₽) и прогон теста «минимальных прав» в цикле ИИ-RED (от 300 000 ₽). Штрафная альтернатива: персональные данные, утёкшие через выдачу, — это состав по ч. 13 ст. 13.11 КоАП со штрафом 3–5 млн ₽ при 1–10 тысячах субъектов; чистка индекса post factum дороже любой из перечисленных строк.
Продолжение темы и первоисточник
- парный риск — LLM04: отравление данных и моделей;
- канал доставки закладок — промпт-инъекции через документы и файлы;
- рамка целиком — OWASP LLM Top-10: полный разбор;
- описание риска — OWASP GenAI Security Project.