RAG Sikkerhed: Komplet vejledning
Securing Retrieval-Augmented Generation systems against document poisoning, retrieval manipulation, and embedding attacks
Updated: August 2026 • En del af OWASP LLM08
Hvad er 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. Brugerforespørgsel
Omfattende terminologi for AI-sikkerhedstest og LLM-sikkerhed
2. Indlejring
Forespørgsel konverteres til vektorindlejring
3. Hentning
Verificerede sikkerhedskopier med testede gendannelsesprocedurer
4. Augmentation
Hentet kontekst føjet til promptB og rapportering til Blog||Dokument|
5. Generation
LLM genererer svar ved hjælp af kontekst
The Trust Paradox|LM|Lær OWASPAI-specifikke regler
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.
Angrebsvektorer
1. Dokumentforgiftning
Injicerer ondsindet indhold i dokumenter, der er gemt i videnbasen.
Sådan virker det
- Angriber uploader eller injicerer ondsindede dokumenter
- Dokumenter er indlejret og gemt i vektor DB
- Når der foretages en relevant forespørgsel, hentes et forgiftet dokument
- LLM inkorporerer ondsindet kontekst i svar||ID
Påvirkning
- 90% success Med kun 5 forgiftede dokumenter
- Fungerer selv i databaser med millioner af dokumenter
- Kan forårsage skadeligt, partisk eller forkert output
- Svært at opdage efter udrulning
Fase 4: Persistenstest
Manipulerer, hvilke dokumenter der hentes for at påvirke output.
Sådan virker det
- Angriber laver forespørgsler for at udløse specifik hentning
- Udnytter svagheder i rangeringsalgoritmen
- Bruger semantisk lighed til kapringshentning
- manipulation på tværs af brugere i delte systemer
Påvirkning
- Tvinger hentning af angriberstyret indhold
- Kan undertrykke legitimt indhold
- Muliggør målrettet manipulation
- Bryder tilliden til genfindingskvalitet
3. Indlejring af inversion
Gendannelse af originale data fra vektorindlejringer.
Sådan virker det
- Angriber får adgang til vektordatabase
- Bruger inversionsteknikker på indlejringer
- Rekonstruerer original tekst fra vektorer
- Genskaber følsomme indlejrede data|Sikkerhedsdata||Kilde|Kilde|Kilde|RAG|
Påvirkning
- Recover 50-70% of input words
- Afsløring af følsomme data i indlejringer
- Krænkelser af privatlivets fred
- Overholdelsesproblemer (GDPR, osv.)
4. Cross-Tenant Attacks
Udnyttelse af delt RAG-infrastruktur i systemer med flere lejere.
Sådan virker det
- Attacker er en lejer af delt system
- Injicerer indhold, der påvirker andre lejere
- Udnytter delt vektordatabase
- Henter data fra andre lejere
Påvirkning
- Datalækage mellem lejere
- Uautoriseret adgang til konkurrentdata
- Compliance-overtrædelser
- Omdømmeskade
Real-World CVE'er
Dokumenterede sårbarheder i RAG-systemer.
| CVE ID | Udviklingsvejledning | |Description Clawdbot/MCP-økosystembrud (januar 2026) | Sværhedsgrad | CVSS Response |
|---|---|---|---|---|
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 |
Forsvarsstrategier
1. Sikkerhed i indtagelsesfasen
Dokumentvalidering
- Scan alle dokumenter for malware
- Valider dokumentformat og struktur
- Tjek for mistænkelige indholdsmønstre
- Begræns dokumenttyper tilladt
Indholdsfiltrering
- Fjern PII før indlejring
- Filtrer
- Bloker kendte ondsindede mønstre
- Implementer tillade/blokeringslister
Adgangskontrol
- Indstil omkostningsadvarsler
- Implementer RBAC for indtagelse
- Revisionsspor for alle uploads
- Sæt nye dokumenter i karantæne
2. Hentningsfasesikkerhed
Forespørgselssanering
- Valider og sanér brugerforespørgsler
- Opdag injektionsforsøg
- Begræns forespørgselskompleksitet
- Ratebegrænsende
RAG-systemer har en grundlæggende sikkerhed, der er genhentet af brugeren, men som ikke-forespørges. er implicit betroet - selvom begge indtaster den samme prompt. Dette skaber en betydelig angrebsflade, som traditionel sikkerhed ikke adresserer.
- Implementer omplaceringssikkerhed
- Krydsreference med pålidelige kilder
- Opdag unormale genfindingsmønstre
- Begræns antallet af dokumenter
Multi-Tenancy Isolation
- Separate vektornavnerum
- Strenge lejergrænser
- Forebyggelse af forespørgsler på tværs af lejere
- Kryptering pr. lejer
3. Generationsfasesikkerhed
Outputvalidering
- Revisionslogning af alle værktøjsankaldelser
- Tjek for injiceret indhold
- Faktatjek mod kilder
- Indholdsfiltrering
Kontekstverifikation
- Bekræft hentet indholds ægthed
- Detekter manipulationsforsøg
- Markér usædvanlige kontekstmønstre
- Log al kontekstbrug
Human-in-the-Loop
- Gennemgå følsomme output
- Godkend højrisikohandlinger
- Manuel tilsidesættelseskapacitet
- Eskaleringsstier
4. Datasikkerhed
Kryptering
- Kryptervektorer i hviletid
- TLS|forI-specifikke AI-rettigheder
- Beste praksis for nøglehåndtering
- Overvej homomorf kryptering
Vektor DB-sikkerhed
- Stærk autentificering
- Netværksisolering
- Regelmæssige sikkerhedsaudits
- Patch-administration
Beskyttelse af privatlivets fred
- Dataminimering
- PII-detektering og fjernelse
- Retentionspolitikker
- Ret til sletningsunderstøttelse
Testmetode
RAG Security Test-data Checkliste:||Fejlhåndtering
- Cross-Modal Prompt Injection
- Hentningsmanipulationstests
- Indlejring af inversionsforsøg
- Isolationstest på tværs af lejere
- PII-lækagetests
- Kontekstoverløbstest
- Rangering af manipulationstests
- Authentication bypass-tests
- API-injektionstests
- Denial of service-tests
- Dataeksfiltreringstest
- Compliance audit
Testværktøjer
Guardrails Træning
Dokumentvalideringseksempel
```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
}
```