RAG Security: Complete Guide
Securing Retrieval-Augmented Generation systems against document poisoning, retrieval manipulation, and embedding attacks
Updated: August 2026 • Parte din OWASP LLM08
Ce este 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. Interogare utilizator
Analiză Zuplo 2026 | sistem
2. Încorporare
Interogarea este convertită în încorporare vectorială
3. Recuperare
Documente similare din Studio Studio
4. Augmentation
Context preluat adăugat la prompt
5. Generație
LLM generează răspuns folosind context
Paradoxul încrederii
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.
Vectorii de atac
1. Otrăvirea documentelor
Injectarea de conținut rău intenționat în documentele stocate în baza de cunoștințe.
Cum funcționează
- Atacatorul încarcă sau injectează documente rău intenționate
- Documentele sunt încorporate și stocate în DB vectorial
- Când se face o interogare relevantă, documentul otrăvit este preluat
- LLM încorporează context rău intenționat în răspuns
Impact
- 90% success cu doar 5 documente otrăvite
- Funcționează chiar și în baze de date cu milioane de documente
- Poate cauza rezultate dăunătoare, părtinitoare sau incorecte
- Dificil de detectat după implementare
2. Manipularea recuperării
Manipulați ce documente sunt preluate pentru a influența rezultatele.
Cum funcționează
- Atacatorul creează interogări pentru a declanșa o recuperare specifică
- Exploatează punctele slabe ale algoritmului de clasificare
- Folosește similaritatea semantică pentru a deturna recuperarea
- Manipularea între utilizatori în sistemele partajate
Impact
- Forțează regăsirea conținutului controlat de atacator
- Poate suprima conținutul legitim
- Permite manipularea țintită
- Încrede încrederea în calitatea recuperării
3. Încorporarea inversării
Recuperarea datelor originale din înglobarea vectorului.
Cum funcționează
- |
- Folosește tehnici de inversare în încorporare
- Reconstruiește textul original din vectori
- Recuperează date sensibile încorporate
Impact
- Recover 50-70% of input words
- Expunerea datelor sensibile în înglobări
- Încălcări ale confidenţialităţii
- Probleme de conformitate (GDPR, etc.)
4. Atacuri între chiriași
Exploarea infrastructurii RAG partajate în sisteme multi-locatari.
Cum funcționează
- Atacatorul este unul dintre locatarii unui sistem partajat
- spoofing în sisteme multi-agent
- Exploatează baza de date vectorială partajată
- Preluează date de la alți chiriași
Impact
- Scurgeri de date între locatari
- Acces neautorizat la datele concurenților
- Încălcări ale conformității
- Daune reputaționale
CVE din lumea reală
Vulnerabilități documentate în sistemele RAG.
| CVE ID | Ghid de dezvoltare a serverului MCP securizat | Descriere | Severitate | CVSS Incident de joc |
|---|---|---|---|---|
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 |
Strategii de apărare
1. Securitate în faza de asimilare
Validarea documentelor
- Scanați toate documentele pentru malware
- Validați formatul și structura documentului
- Verificați dacă există modele de conținut suspect
- Limite tipurile de document permise
Filtrarea conținutului
- Eliminați PII înainte de încorporare
- Filtrare de date sensibile|organizații de documente,| cu săgeți care indică un anumit text, ceea ce face ca modelul să se concentreze incorect
- Blocați modelele rău intenționate cunoscute
- Implementați liste de autorizare/blocare
Controale accesului
- Validați sursa documentelor
- Implementați RBAC pentru asimilare
- Pista de audit pentru toate încărcările
- Carantină documente noi
2. Securitatea fazei de recuperare
Dezinfectarea interogărilor
- Validați și dezinfectați interogările utilizatorilor
- Detectați încercările de injectare
- Limitați complexitatea interogărilor
- Limitarea ratei
Filtrare de recuperare
- Implementați securitatea reclasării
- Referințe încrucișate cu surse de încredere
- Detectați modele anormale de recuperare
- Limitați numărul de documente
Izolarea multi-chirie
- Spatii de nume vectoriale separate
- Delimitări stricte ale chiriașilor
- Prevenirea interogărilor între locatari
- Criptarea per chiriaș
3. Securitate în faza de generare
Validarea ieșirii
- Validarea rezultatelor LLM
- Verificați conținutul injectat
- Verificarea faptelor față de surse
- Filtrarea conținutului
Verificare context
- Verificați autenticitatea conținutului preluat
- Detectați încercări de manipulare
- Semnalați modele de context neobișnuite
- Înregistrați toate utilizările contextului
Human-in-the-Loop
- Examinați rezultatele sensibile
- Aprobarea acțiunilor cu risc ridicat
- Capacitate de suprascrie manuală
- Căi de escaladare
4. Securitatea datelor
Criptare
- Criptarea vectorilor în repaus
- Servere MCP oficiale în registru
- Cele mai bune practici de gestionare a cheilor
- Luați în considerare criptarea homomorfă
Vector DB Security
- Autentificare puternică
- Izolarea rețelei
- Audituri regulate de securitate
- Gestionarea corecțiilor
Protecția confidențialității
- Minimizarea datelor
- Detectarea și eliminarea IPI
- Politicile de reținere
- Dreptul la asistență pentru ștergere
Metodologie de testare
Lista de verificare a testului de securitate RAG
- Injectarea promptă intermodală
- Teste de manipulare a recuperării
- Încercări de inversare de încorporare
- Teste de izolare între locatari
- Teste de scurgere IPI
- Teste de depășire a contextului
- Teste de manipulare a clasamentului
- Teste de ocolire a autentificării
- Teste de injecție API
- Teste de refuzare a serviciului
- Teste de exfiltrare a datelor
- Audit de conformitate
Instrumente de testare
Scanere DB vectoriale
Instrumente pentru testarea securității bazei de date vectoriale
Vizualizare →|Codificare|Identificare|Identificare|Identificare| cerințe de conformitate/reglementare (GDPR, HIPAA etc.)
Exemplu de validare a documentului
```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
}
```