Суть
Атакующему достаточно внедрить малую долю вредных документов (порядка 0.1% индекса), чтобы поменять логику ответов. Когда retriever достаёт чанк, вместе с полезным текстом в контекст модели попадает скрытая инструкция — и агент может её исполнить.
Зачем это нужно
RAG в блокноте рассматривался как способ дать агенту актуальные данные (RAG, Agentic RAG); эта заметка добавляет к нему security-измерение: индекс — это тоже недоверенный вход. Без провенанса источников любой агент с веб-доступом или пользовательской загрузкой документов уязвим.
Как работает
Вектор:
- Внедрение скрытого текста в документы, которые попадут в индекс (PDF, веб-страницы).
- Самоотравляющиеся системы — отдельный риск: самообучающиеся агенты с графами знаний ходят в интернет и дописывают свою базу; если выход пишется обратно в хранилище, ошибочный/вредный контент закрепляется.
Защита — провенанс и изоляция:
- Провенанс источников — вместе с чанком из векторной базы передаются метаданные: кто добавил документ, когда, через какой канал. Агент принимает решения не только по содержимому, но и по происхождению.
- Trust-метки источников:
source: internal_wiki, trust: highsource: user_uploaded_pdf, trust: mediumsource: scraped_web_page, trust: lowsource: external_email, trust: untrusted
- Изоляция недоверенного контента — не давать данным из низкодоверенных источников влиять на flow/вызовы инструментов без дополнительной проверки (spotlighting, см. Guardrails).
- Retrieval filtering (DLP) — фильтровать результаты поиска до попадания в контекст: документ с зарплатами может быть найден, но не должен уйти в промпт (DLP for LLM).
Связано с
- Prompt Injection — RAG poisoning = косвенная инъекция через индекс
- RAG — базовый механизм, к которому добавляется security-слой
- Guardrails — изоляция недоверенного контента, «документы — это данные»
- DLP for LLM — retrieval filtering на этапе поиска
- Agent Security — место в модели угроз
Открытые вопросы
- Как детектировать уже попавший в индекс отравленный документ (а не только фильтровать на входе)?