AI-systeemarchitectuur voor redteamers
Hoe AI-systemen in productie worden uitgerold — model-API, prompt templates, orkestratie, tools, geheugen en guardrails — met een analyse van het aanvalsoppervlak op elke laag.
Verder dan het model: AI-systemen in productie
Als je AI-redteaming doet, val je vrijwel nooit een kaal model aan. AI-systemen in productie zijn gelaagde architecturen met meerdere componenten, en elk component introduceert zijn eigen aanvalsoppervlak. Deze architectuur begrijpen is stap één van elke opdracht.
Een typisch AI-systeem in productie bevat:
┌─────────────────────────────────────────────────┐
│ User Interface │
├─────────────────────────────────────────────────┤
│ Input Guardrails │
├─────────────────────────────────────────────────┤
│ Orchestration Layer │
│ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ Prompt │ │ Memory │ │ Tool/API │ │
│ │ Template │ │ Store │ │ Connectors │ │
│ └──────────┘ └──────────┘ └──────────────┘ │
├─────────────────────────────────────────────────┤
│ Model API │
├─────────────────────────────────────────────────┤
│ Output Guardrails │
├─────────────────────────────────────────────────┤
│ User Interface │
└─────────────────────────────────────────────────┘
Componenten ontleed
1. Model-API
Het LLM zelf, benaderd via een API (OpenAI, Anthropic, lokale uitrol, enzovoort).
| Aspect | Details |
|---|---|
| Wat het doet | Genereert tekst op basis van de promptinvoer |
| Vertrouwensniveau | Hoog — wordt behandeld als het "brein" van het systeem |
| Aanvalsoppervlak | Prompt injection, jailbreaken, parametermanipulatie |
| Belangrijkste parameters | model, temperature, max_tokens, system prompt |
Zie Anatomie van een LLM API-call voor een diepere duik.
2. Prompt template
De system prompt en het template dat het gedrag van het model vormgeeft voor het specifieke gebruiksscenario.
SYSTEM_PROMPT = """You are a customer support agent for Acme Corp.
Rules:
- Only answer questions about Acme products
- Never reveal internal pricing formulas
- Always be polite and professional
- If unsure, escalate to a human agent
Context: {retrieved_context}
"""| Aspect | Details |
|---|---|
| Wat het doet | Bepaalt de rol, de beperkingen en de beschikbare context van het model |
| Vertrouwensniveau | Onder controle van de ontwikkelaar, moet als vertrouwelijk worden behandeld |
| Aanvalsoppervlak | Extractie van de system prompt, instructies overschrijven, template-injectie |
3. Orkestratielaag
De applicatielogica die de coördinatie verzorgt tussen het model, de tools, het geheugen en de gebruikersinterface. Frameworks zoals LangChain, LlamaIndex en zelfgeschreven code.
| Aspect | Details |
|---|---|
| Wat het doet | Routeert verzoeken, beheert de gespreksflow, handelt tool-calls af |
| Vertrouwensniveau | Applicatiecode — verschilt per implementatiekwaliteit |
| Aanvalsoppervlak | Logicabugs, gebrekkige invoervalidatie, statemanipulatie |
4. Tool-connectors
Externe tools en API's die het model kan aanroepen — databases, websearch, code-uitvoering, bestandssystemen, externe API's.
| Aspect | Details |
|---|---|
| Wat het doet | Breidt de mogelijkheden van het model uit met acties in de echte wereld |
| Vertrouwensniveau | HOOG RISICO — tools kunnen neveneffecten hebben (data wegschrijven, e-mails versturen, code uitvoeren) |
| Aanvalsoppervlak | Manipulatie van tool-aanroepen, parameterinjectie, privilege-escalatie |
5. Geheugen / state
Gespreksgeschiedenis, gebruikersvoorkeuren, sessiestate en langetermijngeheugen.
| Aspect | Details |
|---|---|
| Wat het doet | Houdt de context vast over interacties heen |
| Vertrouwensniveau | Bevat eerdere modeluitvoer en gebruikersdata — gemengd vertrouwen |
| Aanvalsoppervlak | Geheugenvergiftiging, contextmanipulatie, aanvallen over sessies heen |
6. Guardrails
Invoer- en uitvoerfilters die veiligheids- en bedrijfsregels afdwingen.
| Type | Plaatsing | Technieken |
|---|---|---|
| Invoer-guardrails | Vóór het model | Content-classifiers, trefwoordfilters, detectors voor prompt injection |
| Uitvoer-guardrails | Na het model | Toxiciteitsfilters, PII-redactie, formaatvalidatie |
| Structurele guardrails | Orkestratie | Rate limiting, limieten op uitvoerlengte, validatie van tool-calls |
Vertrouwensgrenzen
Een vertrouwensgrens bestaat overal waar data zich tussen componenten met verschillende vertrouwensniveaus beweegt:
| Grens | Van → Naar | Belangrijkste risico |
|---|---|---|
| Gebruiker → Systeem | Onvertrouwd → Vertrouwd | Prompt injection |
| RAG-retrieval → Prompt | Semi-vertrouwd → Vertrouwd | Indirecte injectie |
| Model → Tool-call | Door model gegenereerd → Uitgevoerd | Willekeurige tool-aanroep |
| Tool-resultaat → Model | Externe data → Vertrouwde context | Resultaatinjectie |
| Geheugen → Prompt | Opgeslagen data → Actieve context | Persistente injectie |
Snel naslagwerk: aanvalsoppervlak per laag
| Laag | Belangrijkste aanvallen | Impact |
|---|---|---|
| User interface | Invoer construeren, encodingtrucs | Laag — wordt door downstream-lagen gefilterd |
| Invoer-guardrails | Filterbypass, ontwijking | Gemiddeld — geeft toegang tot het model |
| Prompt template | Extractie van de system prompt, overschrijven | Gemiddeld — verandert het gedrag van het model |
| Orkestratie | Logica misbruiken, statemanipulatie | Hoog — kan de control flow veranderen |
| Model-API | Jailbreaken, prompt injection | Hoog — bepaalt de gegenereerde uitvoer |
| Tool-connectors | Parameterinjectie, ongeautoriseerde aanroepen | Kritiek — neveneffecten in de echte wereld |
| Geheugen | Vergiftiging, injectie over sessies heen | Hoog — persistente compromittering |
| Uitvoer-guardrails | Uitvoermanipulatie, encodingbypass | Gemiddeld — ontwijkt veiligheidsfilters |
Verwante onderwerpen
- Anatomie van een LLM API-call — een diepere duik in de laag van de modelinterface
- Agentarchitecturen en tool use-patronen — orkestratiepatronen en tool use
- Veelvoorkomende AI-deploymentpatronen — hoe deze componenten voor verschillende gebruiksscenario's worden geconfigureerd
- Lab: het aanvalsoppervlak van een AI-systeem in kaart brengen — praktische oefening
Referenties
- "OWASP Top 10 for LLM Applications" - OWASP (2025) - Industriestandaard voor de classificatie van beveiligingsrisico's in LLM-applicaties, waaronder onveilig plugin-ontwerp en buitensporige agency
- "Not What You've Signed Up For: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection" - Greshake et al. (2023) - Onderzoek dat aantoont hoe vertrouwensgrenzen in AI-systemen via indirecte injectie kunnen worden misbruikt
- "Architectural Risk Analysis of Large Language Models" - Trail of Bits (2024) - Systematische analyse van aanvalsoppervlakken binnen architecturen van AI-systemen in productie
- "The Dual LLM Pattern for Building AI Assistants That Can Resist Prompt Injection" - Simon Willison (2023) - Praktisch architectuurpatroon voor het scheiden van vertrouwde en onvertrouwde contexten in AI-systemen
Welk component in een AI-systeem in productie heeft doorgaans het aanvalsoppervlak met de grootste impact?