RAG-suojaus: täydellinen opas
Securing Retrieval-Augmented Generation systems against document poisoning, retrieval manipulation, and embedding attacks
Updated: August 2026 • Osa OWASP LLM08 -tekniikkaa
Mikä on 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. Käyttäjäkysely
Strukturoitu lähestymistapa tekoälytestaukseen – suunnittelusta raportointiin.
2. Upottaminen
Kysely muunnetaan vektori upotukseksi
3. Haku
StudioDB|| samankaltaisista vektoritiedostoista.
4. Lisäys
Haettu konteksti lisätty kehotteeseen
5. Sukupolvi
LLM luo vastauksen kontekstin perusteella
Trust Paradox -spesifiset | LLM:n suosituimmat määräykset|
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.
Hyökkäysvektorit
1. Asiakirjan myrkytys
Haitallisen sisällön lisääminen tietokantaan tallennettuihin asiakirjoihin.
Näin se toimii
- Hyökkääjä lataa tai syöttää haitallisia asiakirjoja
- Asiakirjat upotetaan ja tallennetaan vektoritietokantaan
- Kun asiaankuuluva kysely tehdään, myrkytetty dokumentti haetaan
- LLM sisällyttää haitallisen kontekstin vastaukseen
Vaikutus
- 90% success Laki: [legal@company]
- Toimii jopa tietokantoissa, joissa on miljoonia asiakirjoja
- NIST AI -riskinhallinta
- Vaikea havaita käyttöönoton jälkeen
2. Hakumanipulaatio
Manipuloi, mitkä asiakirjat haetaan tulosten vaikuttamiseksi.
Näin se toimii
- Hyökkääjä luo kyselyitä tietyn haun käynnistämiseksi
- Hyödyntää ranking-algoritmin heikkouksia
- Käyttää semanttista samankaltaisuutta kaappauksen hakuun
- Käyttäjien välinen manipulointi jaetuissa järjestelmissä
Vaikutus
- Pakottaa hyökkääjien ohjaaman sisällön hakua
- Voi tukahduttaa laillisen sisällön
- Mahdollistaa kohdistetun manipuloinnin
- Rikkoo luottamuksen noudon laatuun
3. Inversion upottaminen
Alkuperäisen datan palauttaminen vektori upotuksista.
Näin se toimii
- ARettamendcker-tietokanta||
- Käyttää upotuksissa käänteistekniikkaa
- Rekonstruoi alkuperäisen tekstin vektoreista
- Palauta arkaluontoiset sulautetut tiedot
Vaikutus
- Recover 50-70% of input words
- Avaa arkaluontoiset tiedot upotuksissa
- Tietosuojarikkomukset
- Vaatimustenmukaisuusongelmat (GDPR jne.)
4. Cross-Tenant Attacks
Jaetun RAG-infrastruktuurin hyödyntäminen usean vuokralaisen järjestelmissä.
Näin se toimii
- Hyökkääjä on yksi jaetun järjestelmän vuokralainen
- Lisää sisältöä, joka vaikuttaa muihin vuokralaisiin
- Hyödyntää jaettua vektoritietokantaa
- Hakee tiedot muilta vuokralaisilta
Vaikutus
- Datavuoto vuokralaisten välillä
- Luvaton pääsy kilpailijan tietoihin
- Yhteensopivuusrikkomukset
- Mainevaurioiden lieventämisstrategiat
Reaalimaailman CVE:t
Dokumentoidut haavoittuvuudet RAG-järjestelmissä.
| CVE-tunnus | Docut | Kuvaus | Vakavuus | CVSS-vastaus |
|---|---|---|---|---|
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 |
Puolustusstrategiat
1. Tietojen käsittelyvaiheen suojaus
Dokumenttien validointi
- Tarkista kaikki asiakirjat haittaohjelmien varalta
- Varmentaa asiakirjan muoto ja rakenne
- Tarkista epäilyttävät sisältömallit
- Rajoita asiakirjatyyppejä
Sisällön suodatus
- Poista henkilökohtaiset tunnistetiedot ennen upottamista
- Suodata arkaluontoisia tietomalleja käyttäen:||AGocucument|| nuolet osoittavat tiettyä tekstiä, mikä saa mallin tarkentamaan väärin
- Estä tunnetut haitalliset mallit
- Ota käyttöön sallittu-/estoluettelot
Käyttörajoitukset
- Vahvista asiakirjojen lähde
- ACImping-rajoitukset| Syötteen validointi
- Kaikkien lähetysten seuranta
- Uudet asiakirjat karanteeniin
2. Retrieval Phase Security
Kyselyn puhdistus
- Vahvista ja puhdista käyttäjien kyselyt
- Detect injection attempts
- Rajoita kyselyn monimutkaisuutta
- Nopeuden rajoitus
Retrieval Filtering
- Ota käyttöön uudelleensijoitusturva
- Ristiviittaus luotettujen lähteiden kanssa
- Tunnista poikkeavat hakumallit
- Rajoita asiakirjojen määrää
Multi-Tenancy Isolation
- Erilliset vektorin nimiavaruudet
- Tiukat vuokralaisten rajat
- Vuokralaisten välisten kyselyjen esto
- Salaus vuokralaista kohden
3. Generation Phase Security
Tulosteiden tarkistus
- Tarkista kaikkien työkalukutsujen kirjaus
- Tarkista lisätty sisältö
- Tarkista lähteet
- Sisällön suodatus
Kontekstin vahvistus
- Varmista haetun sisällön aitous
- Tunnista manipulointiyritykset
- Merkitse epätavallisista kontekstimalleja
- Kirjaa kaikki kontekstin käyttö
Human-in-the-Loop
- Tarkista arkaluontoiset tuotokset
- Hyväksy riskialttiita toimia
- Sähköpostin manuaalinen ohitusmahdollisuus
- Eskalointipolut
4. Tietoturva
Salaus
- |Vektoreiden salaus|Em-injektioaika|| Suojaus
- |TLS:n | action
- Parhaat avaintenhallinnan käytännöt
- Harkitse homomorfista salausta
Vector DB Security
- Vahva todennus
- Verkon eristäminen
- Säännölliset tietoturvatarkastukset
- Korjaustiedostojen hallinta
Yksityisyyden suojaus
- Tietojen minimointi
- PII-tunnistus ja -poisto
- Säilytyskäytännöt
- Oikeus poistotukeen
||2. Pienin etuoikeus
RAG-tietoturvatestilista Suunnittelu
- testit
- Hakumanipulaatiotestit
- Kääntämisyritysten upottaminen
- Vuokralaisten väliset eristystestit
- PII-vuototestit
- Kontekstin ylivuototestit
- Manipulointitestien luokittelu
- Todennuksen ohitustestit
- API-injektiotestit
- Palvelunestotestit
- Tietojen suodatustestit
- Yhteensopivuuden tarkastus
Testaustyökalut
Tunnista vaatimustenmukaisuus/säädökset (GDPR, HIPAA jne.)
Asiakirjan validointiesimerkki
```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
}
```