RAG Security: полное руководство
Securing Retrieval-Augmented Generation systems against document poisoning, retrieval manipulation, and embedding attacks
Updated: August 2026 • Часть OWASP LLM08
Что такое RAG?
Retrieval-Augmented Generation (RAG) is an AI architecture that combines large language models with external knowledge retrieval. Enterprise LLM deployments now use RAG extensively, making its security critical.
1. Запрос пользователя
Пользователь отправляет в систему вопрос или подсказку
2. Внедрение
Запрос преобразуется в векторное внедрение
3. Получение
Аналогичные документы, полученные из векторной базы данных
4. Дополнение
Извлеченный контекст добавлен в подсказку
5. Генерация
LLM генерирует ответ, используя контекст
Парадокс доверия
RAG systems have a fundamental security flaw: user queries are treated as untrusted input, but retrieved context is implicitly trusted - even though both enter the same prompt. This creates a significant attack surface that traditional security doesn't address.
Векторы атак
1. Отравление документов
Внедрение вредоносного контента в документы, хранящиеся в базе знаний.
Как это работает
- Злоумышленник загружает или внедряет вредоносные документы
- Документы внедряются и хранятся в векторной базе данных
- При выполнении соответствующего запроса извлекается зараженный документ
- LLM включает в ответ вредоносный контекст
Воздействие
- 90% success всего с 5 отравленными документами
- Работает даже в базах данных с миллионами документов
- Может привести к вредным, предвзятым или неверным результатам
- Трудно обнаружить после развертывания
2. Манипулирование поиском
Управление тем, какие документы извлекаются, чтобы повлиять на выходные данные.
Как это работает
- Атакующий создает запросы для запуска конкретного извлечения
- Использует слабые места алгоритма ранжирования
- Использует семантическое сходство с перехватом извлечения
- Межпользовательские манипуляции в общих системах
Воздействие
- Принудительное извлечение контента, контролируемого злоумышленником
- Можете подавлять законный контент
- Позволяет целенаправленное манипулирование
- Подрывает доверие к качеству извлечения данных.
3. Внедрение инверсии
Восстановление оригинала данные из векторных вложений.
Как это работает
- Злоумышленник получает доступ к базе данных векторов
- Использует методы инверсии при внедрении
- Реконструирует исходный текст из векторов
- Восстанавливает конфиденциальные встроенные данные
Воздействие
- Recover 50-70% of input words
- Раскрытие конфиденциальных данных во встроенных компонентах
- Нарушения конфиденциальности
- Проблемы соответствия (GDPR и т. д.)
4. Межтенантные атаки
Использование общей инфраструктуры RAG в многопользовательских системах.
Как это работает
- Атакующий является одним из арендаторов общей системы
- Внедряет контент, который влияет на других арендаторов
- Использует общую базу данных векторов
- Получает данные от других арендаторов
Воздействие
- Утечка данных между арендаторами
- Несанкционированный доступ к данным конкурентов
- Нарушения соответствия
- Репутационный ущерб
Реальные CVE
Задокументированные уязвимости в системах RAG.
| CVE ID | Продукт | Описание | Серьезность | CVSS |
|---|---|---|---|---|
CVE-2025-68700 |
RAGFlow | RCE via Canvas CodeExec component - untrusted data parsed with eval() | Critical | 9.1 |
CVE-2025-69286 |
RAGFlow | Insecure API key generation allows mutual token derivation (authentication bypass) | Critical | 8.9 |
CVE-2025-25282 |
RAGFlow | IDOR vulnerability allowing cross-tenant access and unauthorized user addition | High | 8.1 |
CVE-2025-69286 |
RAGFlow | Token generation using same URLSafeTimedSerializer for API keys | High | 8.9 |
GHSA-8xw3-v6c2-j84j |
RAGFlow | RCE via stdout parsing in CodeExec component | High | 8.5 |
Стратегии защиты
1. Безопасность на этапе приема
Проверка документов
- Сканировать все документы на наличие вредоносных программ
- Проверка формата и структуры документа
- Проверка шаблонов подозрительного контента
- Ограничить допустимые типы документов
Фильтрация контента
- Удалите PII перед внедрением
- Фильтируйте шаблоны конфиденциальных данных
- Блокировать известные вредоносные шаблоны
- Внедрение разрешенных/блокированных списков
Контроль доступа
- Проверка источника документов
- Реализация RBAC для приема
- Аудитовый журнал для всех загрузок
- Поместить в карантин новые документы
2. Фаза восстановления
Обеззараживание запросов
- Проверка и очистка пользовательских запросов
- Обнаружение попыток внедрения
- Ограничить сложность запросов
- Ограничение скорости
Фильтрация извлечения
- Внедрите безопасность изменения рейтинга
- Перекрестные ссылки с доверенными источниками
- Обнаружение аномальных шаблонов поиска
- Ограничить количество документов
Многопользовательская изоляция
- Модель выводит стеганографические данные в описаниях изображений, содержащих системные подсказки
- Строгие границы арендаторов
- Предотвращение перекрестных запросов
- Шифрование для каждого арендатора
3. Фаза создания безопасности
Проверка выходных данных
- Проверка выходных данных LLM
- Проверьте наличие внедренного контента.
- Проверка фактов по источникам
- Фильтрация контента
Проверка контекста
- Проверка подлинности полученного контента
- Обнаружение попыток манипулирования
- Отметить необычные шаблоны контекста
- Регистрация всего использования контекста
Человек в цикле
- Просмотр конфиденциальных выходных данных
- Одобрить действия с высоким риском
- Возможность ручного переопределения
- Пути эскалации
4. Безопасность данных
Шифрование
- Шифрование векторов в состоянии покоя
- TLS для передаваемых данных
- Рекомендации по управлению ключами
- Рассмотрите возможность гомоморфного шифрования
Векторная безопасность БД
- Сильная аутентификация
- Сетевая изоляция
- Регулярные проверки безопасности
- Управление исправлениями
Защита конфиденциальности
- Минимизация данных
- Обнаружение и удаление идентификационных данных
- Политики хранения
- Право на поддержку удаления
Методология тестирования
Контрольный список испытаний безопасности RAG
- Тесты внедрения документов
- Тесты манипулирования извлечением информации
- Внедрение попыток инверсии
- Тесты межклиентской изоляции
- Тесты на утечку личных данных
- Тесты на переполнение контекста
- Рейтинговые тесты на манипулирование
- Тесты обхода аутентификации
- Тесты на внедрение API
- Тесты на отказ в обслуживании
- Тестирование утечки данных
- Аудит соответствия
Инструменты тестирования
Гарак
Сканер уязвимостей LLM с помощью зондов, специфичных для RAG
Последние обновления стандартов безопасности ИИ, уязвимостей, правил и лучших практик →Apache RAG
Система тестирования безопасности, специфичная для RAG
Последние обновления стандартов безопасности ИИ, уязвимостей, правил и лучших практик →Сканеры векторных баз данных
Инструменты для тестирования безопасности базы данных векторов
Последние обновления стандартов безопасности ИИ, уязвимостей, правил и лучших практик →Примеры кода
Пример проверки документа
```python
import re
from typing import List
class RAGDocumentValidator:
SUSPICIOUS_PATTERNS = [
r"ignore previous instructions",
r"system prompt:",
r"{{.*}}",
r"you are now dan",
]
PII_PATTERNS = [
r"\b\d{3}-\d{2}-\d{4}\b", # SSN
r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b", # Email
r"\b\d{16}\b", # Credit card
]
def validate_document(self, content: str) -> dict:
"""Validate document before embedding."""
warnings = []
blocked = False
# Check for suspicious patterns
for pattern in self.SUSPICIOUS_PATTERNS:
if re.search(pattern, content, re.IGNORECASE):
warnings.append(f"Suspicious pattern: {pattern}")
blocked = True
# Check for PII
for pattern in self.PII_PATTERNS:
if re.search(pattern, content):
warnings.append(f"PII detected: {pattern}")
return {
"valid": not blocked,
"warnings": warnings,
"pii_detected": len([w for w in warnings if "PII" in w]) > 0
}
```