RAG Security: Komplett veiledning
Securing Retrieval-Augmented Generation systems against document poisoning, retrieval manipulation, and embedding attacks
Updated: August 2026 • En del av OWASP LLM08
Hva 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. Brukerspørring
Omfattende terminologi for AI-sikkerhetstesting og LLM-sikkerhet
2. Innebygging
Spørringen er konvertert til vektorinnbygging
3. Henting
Lignende kode fra vektordokumenter|henting av vektorer|
4. Augmentation
Hentet kontekst lagt til promptB og rapportering til blogg
5. Generasjon
LLM genererer respons ved å bruke kontekst
The Trust Paradox|LM|Lær OWASPAI-spesifikke reguleringer med 10 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.
Angrepsvektorer
1. Dokumentforgiftning
Injiserer ondsinnet innhold i dokumenter som er lagret i kunnskapsbasen.
Slik fungerer det
- Angriper laster opp eller injiserer ondsinnede dokumenter
- Dokumenter er innebygd og lagret i vektor-DB
- Når relevant forespørsel gjøres, hentes forgiftet dokument
- LLM inkorporerer ondsinnet kontekst i respons||ID
Påvirkning
- 90% success med bare 5 forgiftede dokumenter
- Fungerer selv i databaser med millioner av dokumenter
- Kan forårsake skadelige, partiske eller feilaktige utdata
- Vanskelig å oppdage etter utplassering
2. Hentingsmanipulasjon
Manipulerer hvilke dokumenter som hentes for å påvirke utdataene.
Slik fungerer det
- Angriper lager spørringer for å utløse spesifikk henting
- Utnytter svakheter i rangeringsalgoritmen
- Bruker semantisk likhet for å kapre henting
- Tverrbrukermanipulasjon i delte systemer
Påvirkning
- Tvinger henting av angriperkontrollert innhold
- Kan undertrykke legitimt innhold
- Muliggjør målrettet manipulering
- Krosser tilliten til gjenfinningskvalitet
3. Embedding Inversion
Gjenoppretter originale data fra vektorinnbygginger.
Slik fungerer det
- Angriperen får tilgang til vektordatabasen
- Bruker inversjonsteknikker på innebygging
- Rekonstruerer originaltekst fra vektorer
- Kriterier for innsetting
Påvirkning
- Recover 50-70% of input words
- Eksponering av sensitive data i innbygginger
- Personvernbrudd
- Overholdelsesproblemer (GDPR, osv.)
4. Cross-Tenant Attacks
Utnyttelse av delt RAG-infrastruktur i systemer med flere leietakere.
Slik fungerer det
- Attacker er en leietaker av delt system
- Injiserer innhold som påvirker andre leietakere
- Utnytter delt vektordatabase
- Henter data fra andre leietakere
Påvirkning
- Datalekkasje mellom leietakere
- Uautorisert tilgang til konkurrentdata
- Compliance-brudd
- Omdømmeskade
Real-World CVEer
Dokumenterte sårbarheter i RAG-systemer.
| CVE ID | Product inje|CPDocure| Utviklingsveiledning | |Description Clawdbot/MCP-økosystembrudd (januar 2026) | Alvorlighetsgrad | CVSS-respons |
|---|---|---|---|---|
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. Inntaksfase Sikkerhet
Dokumentvalidering
- Skann alle dokumenter for skadelig programvare
- Valider dokumentformat og struktur
- Se etter mistenkelige innholdsmønstre
- Begrens dokumenttyper tillatt
Innholdsfiltrering
- Fjern PII før innbygging
- Filtrer
- Blokker kjente ondsinnede mønstre
- Implementer tillatelses-/blokkeringslister
Tilgangskontroller
- Sett kostnadsvarsler
- Implementer RBAC for inntak
- Revisjonsspor for alle opplastinger
- Sett nye dokumenter i karantene
2. Gjenopprettingsfasesikkerhet
Spørringssanering
- Valider og rens brukerforespørsler
- Oppdag injeksjonsforsøk
- Begrens søkekompleksitet
- Frekvensbegrensning
RAG-systemer har en grunnleggende sikkerhet som er hentet inn i konteksten, men RAG-systemer har en grunnleggende sikkerhet. er implisitt klarert - selv om begge skriver inn samme ledetekst. Dette skaper en betydelig angrepsoverflate som tradisjonell sikkerhet ikke adresserer.
- Implementer omrangeringssikkerhet
- Krysreferanse med pålitelige kilder
- Oppdag unormale gjenfinningsmønstre
- Begrens antall dokumenter
Multi-Tenancy Isolation
- Separate vektornavnerom
- Strenge leietakergrenser
- Forebygging av spørringer på tvers av leietakere
- Kryptering per leietaker
3. Generation Phase Security
Utdatavalidering
- Valider LLM-utganger
- Sjekk for injisert innhold
- Faktasjekk mot kilder
- Innholdsfiltrering
Kontekstverifisering
- Bekrefte autentisitet av hentet innhold
- Oppdag manipulasjonsforsøk
- Flagg uvanlige kontekstmønstre
- Logg all kontekstbruk
Human-in-the-Loop
- Gjennomgå sensitive utdata
- Godkjenn høyrisikohandlinger
- Manuell overstyringsevne
- Eskaleringsbaner
4. Datasikkerhet
Kryptering
- Kryptervektorer ved hviletid
- || actions
- Beste praksis for nøkkeladministrasjon
- Vurder homomorf kryptering
Vector DB Security
- Sterk autentisering
- Nettverksisolering
- Vanlige sikkerhetsrevisjoner
- Patch-administrasjon
Personvern
- Dataminimering
- PII-deteksjon og fjerning
- Retensjonspolicyer
- Rett til slettestøtte
Testmetodikk
RAG-sikkerhetstestdata Sjekkliste
- Cross-Modal prompt-injeksjon
- Hentingsmanipulasjonstester
- Innbygging av inversjonsforsøk
- Isolasjonstester på tvers av leietakere
- PII-lekkasjetester
- Kontekstoverflyttester
- Rangering av manipulasjonstester
- Omgåelsestester for autentisering
- API-injeksjonstester
- Denial of service-tester
- Dataeksfiltreringstester
- Compliance revisjon
Testverktøy
Guardrails Opplæring
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
}
```