Beveiliging van RAG-retrieval
Beveiliging van RAG-retrievalpijplijnen vanuit het embeddingperspectief: hoe retrieval kan worden gemanipuleerd via vergiftigde chunks, het misbruiken van chunking-grenzen en re-rankingaanvallen.
RAG-systemen (retrieval-augmented generation) halen relevante context uit een kennisbank op om de antwoorden van een taalmodel te onderbouwen met feitelijke informatie. De retrievalpijplijn — het proces van het vinden en selecteren van welke informatiechunks het taalmodel bereiken — is een kritiek aanvalsoppervlak. Een aanvaller die kan manipuleren wat het model ophaalt, bepaalt in feite wat het model over een onderwerp weet, zonder rechtstreeks prompts te hoeven injecteren.
De RAG-retrievalpijplijn
Een typische RAG-retrievalpijplijn kent meerdere fasen, elk met beveiligingsimplicaties:
User Query → Query Embedding → Vector Search → Re-ranking → Context Assembly → LLM
↑ ↑ ↑
Vector Database Scoring Model Prompt Template
(poisoned chunks) (manipulated (injection
scores) surface)
Fase 1: Documentinname en chunking
Voordat retrieval kan plaatsvinden, moeten documenten in chunks worden opgesplitst en geëmbed. De beveiligingskeuzes in deze fase bepalen welke informatie het systeem binnenkomt en hoe deze wordt georganiseerd:
- Chunkgrootte beïnvloedt hoeveel context elk opgehaald resultaat biedt
- Chunkoverlap beïnvloedt of gevoelige informatie zich over meerdere chunks uitstrekt
- Metadatakoppeling bepaalt welke labels en toegangscontrole-informatie elke chunk vergezellen
- Bronvalidatie bepaalt of alleen geautoriseerde documenten worden ingenomen
Fase 2: Query-embedding
De query van de gebruiker wordt geëmbed met hetzelfde model dat de documentchunks heeft geëmbed. Deze fase is relatief eenvoudig, maar kan worden gemanipuleerd als de aanvaller de query vóór het embedden kan wijzigen (bijvoorbeeld via prompt injection in een gesprek met meerdere beurten).
Fase 3: Vector search
De query-embedding wordt vergeleken met alle opgeslagen chunk-embeddings om de meest vergelijkbare resultaten te vinden. Hier komen injectieaanvallen op vectordatabases en adversarial embeddings tot effect.
Fase 4: Re-ranking
Veel RAG-systemen passen een re-ranker in een tweede fase toe (een cross-encodermodel) die elke opgehaalde chunk scoort ten opzichte van de oorspronkelijke query. Re-ranking kan worden aangevallen door chunks te maken die hoog scoren onder zowel de embedding-gelijkenismetriek als het re-rankingmodel.
Fase 5: Contextassemblage
De hoogst gerangschikte chunks worden samengevoegd tot een context die in de prompt van het taalmodel wordt opgenomen. Het assemblageproces bepaalt de volgorde en opmaak van de chunks, en beide beïnvloeden hoe het model de informatie interpreteert.
Samenvatting van het aanvalsoppervlak
| Fase | Aanval | Impact |
|---|---|---|
| Inname | Brondocumenten vergiftigen | Kwaadaardige inhoud komt de kennisbank binnen |
| Chunking | Chunkgrenzen misbruiken | Gevoelige informatie verspreid over chunks omzeilt filters |
| Vector search | Adversarial embeddings, embedding-vergiftiging | Inhoud van de aanvaller scoort hoog voor doelquery's |
| Re-ranking | Cross-encodermanipulatie | Inhoud van de aanvaller overleeft de re-ranking |
| Contextassemblage | Injectie via chunkinhoud | Prompt injection-payloads geleverd via de opgehaalde context |
Kernconcepten
Retrieval versus injectie
Retrievalmanipulatie en prompt injection zijn complementaire aanvallen die zich op verschillende fasen van de RAG-pijplijn richten:
- Retrievalmanipulatie bepaalt welke informatie het model bereikt door similarity search te manipuleren
- Prompt injection bepaalt hoe het model informatie verwerkt door instructies in de opgehaalde inhoud te injecteren
De meest effectieve RAG-aanvallen combineren beide: retrievalmanipulatie zorgt ervoor dat de kwaadaardige chunk wordt opgehaald, en prompt injection binnen de chunk instrueert het model om de aanwijzingen van de aanvaller op te volgen.
Het probleem van het vertrouwensmodel
RAG-systemen vertrouwen impliciet op opgehaalde inhoud. De retrievalpijplijn selecteert chunks op basis van relevantie (gelijkenis met de query), maar relevantie is geen indicator voor betrouwbaarheid. Een vergiftigde chunk die zeer relevant is voor de query is op het retrievalniveau niet te onderscheiden van een legitieme chunk.
Dit creëert een fundamentele spanning: hoe nauwkeuriger het retrievalsysteem relevante inhoud vindt, hoe effectiever het vergiftigde inhoud ophaalt die voor relevantie is geoptimaliseerd.
Inhoud van deze subsectie
Deze subsectie behandelt twee primaire aanvalscategorieën:
- Retrievalmanipulatie — Technieken om te manipuleren welke chunks worden opgehaald, waaronder chunks vergiftigen zodat ze hoger scoren, chunking-grenzen misbruiken, injectie tussen documenten, en re-rankingaanvallen
- Aanvallen op bronvermelding en attributie — Technieken om te manipuleren hoe het model informatie toeschrijft, waaronder bronvervalsing, verwarring over citaten en referentiemanipulatie
Gerelateerde onderwerpen
- Retrievalmanipulatie — Gedetailleerde retrievalaanvalstechnieken
- Aanvallen op bronvermelding en attributie — Manipulatie van bron en citaten
- RAG-, data- en trainingsaanvallen — Bredere dekking van RAG-aanvallen
- Injectie in vectordatabases — Injectie op databaseniveau