Loganalyse van AI-systemen
Loggingarchitectuur van AI-systemen voor forensisch onderzoek: inferentielogs, prompt- en completion-logs, tool call-traces, embedding-querylogs en vereisten voor logginginfrastructuur.
Loganalyse van AI-systemen
AI-systeemlogs zijn fundamenteel anders dan traditionele applicatielogs. Terwijl een webserverlog URL's, statuscodes en tijdstempels registreert, moet een AI-systeemlog de volledige semantische inhoud van invoer en uitvoer vastleggen -- omdat de "exploit" leeft in de natuurlijke taal, niet in de verzoekmetadata. Deze pagina behandelt de loggingarchitectuur die vereist is voor AI-forensics en introduceert de analysetechnieken die in de subsecties worden uitgewerkt.
AI-loggingarchitectuur
Een forensisch bruikbare AI-loggingarchitectuur legt data vast op vier lagen, die elk verschillende bewijstypen produceren.
De vier loglagen
| Laag | Wat het vastlegt | Forensische waarde | Voorbeeldsystemen |
|---|---|---|---|
| Inferentielogs | Metadata van modelverzoek/-respons, latentie, tokenaantallen, parameters | Afwijkende patronen detecteren, tijdlijnreconstructie | vLLM, TGI, Triton-metrieken, logs van cloudproviders |
| Prompt-/completion-logs | Volledige tekst van systeemprompts, gebruikersberichten en modelresponses | Analyse van aanvalspayloads, impactbeoordeling | Logging op applicatieniveau, promptmanagementplatforms |
| Tool call-logs | Agent-toolaanroepen, parameters, resultaten en autorisatiecontext | Ongeautoriseerde acties detecteren, laterale beweging traceren | LangChain-callbacks, logs van agent-frameworks |
| Embedding-/retrieval-logs | Vectorqueries, similariteitsscores, opgehaalde document-ID's en inhoud | RAG-manipulatie detecteren, reikwijdte van data-blootstelling identificeren | Querylogs van vectordatabase, logs van retrieval-pijplijn |
Diagram van de loggingarchitectuur
Een typisch AI-systeem heeft loggingmogelijkheden op meerdere punten in de verzoekflow:
User Request
│
├─→ [API Gateway Log] ─── authentication, rate limits, IP
│
├─→ [Application Log] ─── session context, user identity
│
├─→ [Prompt Assembly Log] ─── system prompt + user input + RAG context
│
├─→ [Safety Classifier Log] ─── input classification, scores
│
├─→ [Inference Log] ─── model version, parameters, latency, tokens
│
├─→ [Output Classifier Log] ─── output classification, scores
│
├─→ [Tool Call Log] ─── tool name, parameters, results
│
└─→ [Completion Log] ─── final response delivered to user
Elk punt legt verschillend bewijs vast. Een forensisch complete architectuur logt op al deze punten.
Inferentielogs
Inferentielogs worden geproduceerd door de model serving-laag en bevatten de metadata van elke modelaanroep.
Belangrijke velden
| Veld | Beschrijving | Forensisch gebruik |
|---|---|---|
request_id | Unieke identificatie voor het inferentieverzoek | Correleren over loglagen heen |
timestamp | Tijd van verzoek en respons | Tijdlijnreconstructie |
model_id | Exacte modelversie die het verzoek bedient | Bepalen welk model actief was tijdens het incident |
input_tokens | Aantal invoertokens | Ongebruikelijk grote invoer detecteren (stuffing-aanvallen) |
output_tokens | Aantal uitvoertokens | Ongebruikelijk grote uitvoer detecteren (data-exfiltratie) |
latency_ms | Tijd van verzoek tot eerste/laatste token | Afwijkende verwerking detecteren (adversariële invoer kan latentiepieken veroorzaken) |
temperature | Gebruikte sampling-temperature | Reproduceerbaarheidsverwachtingen bepalen |
top_p / top_k | Samplingparameters | Kenmerken van de outputdistributie beoordelen |
finish_reason | Waarom generatie stopte (lengte, stoptoken, contentfilter) | Interventies van contentfilters detecteren |
status_code | Succes of fout | Mislukte verzoeken identificeren die op aanvalspogingen kunnen wijzen |
Zie Inferentielog-analyse voor gedetailleerde analysetechnieken.
Prompt- en completion-logs
Prompt- en completion-logs leggen de daadwerkelijke inhoud vast die tussen gebruikers en het model wordt uitgewisseld. Dit zijn de meest forensisch waardevolle en de meest gevoelige logs in het systeem.
Inhoudsstructuur
Een complete prompt-/completion-logregel moet vastleggen:
{
"request_id": "req_abc123",
"timestamp": "2026-03-15T14:32:07Z",
"session_id": "sess_xyz789",
"user_id": "user_42",
"messages": [
{
"role": "system",
"content": "[full system prompt text]",
"hash": "sha256:a1b2c3..."
},
{
"role": "user",
"content": "[full user message]"
},
{
"role": "assistant",
"content": "[full model response]"
}
],
"completion_tokens": 847,
"prompt_tokens": 1203,
"model": "model-name-v2.1",
"safety_scores": {
"input": { "category": "safe", "score": 0.02 },
"output": { "category": "safe", "score": 0.05 }
}
}Privacy- en compliance-overwegingen
Het loggen van volledige prompt- en completion-inhoud creëert aanzienlijke privacyverplichtingen:
| Aandachtspunt | Mitigatie | Afweging |
|---|---|---|
| PII in gebruikersinvoer | PII-detectie- en redactiepijplijn vóór opslag | Geredigeerde inhoud kan forensische waarde verliezen |
| Regulatoire compliance | Dataretentiebeleid, toegangscontroles, encryptie at rest | Voegt infrastructuurcomplexiteit toe |
| Opslagkosten | Gelaagde opslag met hot/warm/cold-lagen; retentielimieten | Oudere data is mogelijk niet beschikbaar voor onderzoek |
| Toegangscontrole | Rolgebaseerde toegang; audit logging van logtoegang | Voegt operationele overhead toe |
| Toestemming van gebruiker | Duidelijke gebruiksvoorwaarden met betrekking tot logging | Juridische review vereist |
Zie Prompt-log-forensics voor onderzoekstechnieken.
Tool call-logs
In agentic AI-systemen roept het model externe tools aan -- zoekmachines, databases, API's, code-executors, bestandssystemen. Tool call-logs zijn cruciaal voor het bepalen welke acties in de echte wereld het model tijdens een incident ondernam.
Belangrijke velden
| Veld | Beschrijving | Forensisch gebruik |
|---|---|---|
tool_name | Welke tool werd aangeroepen | Ongeautoriseerd toolgebruik identificeren |
parameters | Argumenten doorgegeven aan de tool | Parametermanipulatie of pogingen tot data-exfiltratie detecteren |
result | Tooloutput teruggegeven aan het model | Bepalen welke informatie het model ontving |
authorization | Of de aanroep was geautoriseerd | Omzeiling van permissies identificeren |
execution_time | Hoe lang de toolaanroep duurde | Afwijkende uitvoeringspatronen detecteren |
parent_request_id | Het inferentieverzoek dat de aanroep triggerde | Toolaanroepen correleren met prompts |
Zie Tool call-forensics voor onderzoekstechnieken.
Embedding- en retrieval-logs
RAG-systemen genereren querylogs wanneer ze vectordatabases doorzoeken op relevante documenten. Deze logs onthullen tot welke informatie het model toegang had en welke data mogelijk is blootgesteld.
Belangrijke velden
| Veld | Beschrijving | Forensisch gebruik |
|---|---|---|
query_embedding | De vectorrepresentatie van de query | Adversariële embedding-manipulatie detecteren |
query_text | De tekst die werd ingebed voor retrieval | Begrijpen waar het model naar zocht |
retrieved_doc_ids | ID's van teruggegeven documenten | Bepalen welke data in de context van het model zat |
similarity_scores | Relevantiescores voor elk resultaat | Afwijkende retrieval detecteren (documenten met lage relevantie die worden teruggegeven) |
collection | Welke documentcollectie werd opgevraagd | Cross-tenant retrieval in multi-tenant-systemen identificeren |
filters_applied | Eventuele gebruikte metadatafilters | Bepalen of toegangscontroles werden afgedwongen |
Logginggaten om op te letten
Veelvoorkomende logginggaten die forensisch onderzoek verhinderen:
| Gat | Impact | Herstel |
|---|---|---|
| Geen inhoudslogging | Kan niet bepalen wat werd gevraagd of beantwoord | Implementeer prompt-/completion-logging met privacycontroles |
| Geen systeemprompt-versionering | Kan niet bepalen welke instructies het model volgde | Versiebeheer voor alle systeemprompts met tijdstempels |
| Geen tool call-logging | Kan niet bepalen welke acties het model ondernam | Voeg loggingcallbacks toe aan agent-frameworks |
| Geen scores van safety-classifiers | Kan niet bepalen of veiligheidssystemen het incident detecteerden | Log classifier-outputs zelfs voor "veilige" classificaties |
| Geen RAG-retrieval-logging | Kan niet bepalen welke data het model benaderde | Log vectordatabase-queries met resultaten |
| Korte retentieperioden | Bewijs kan worden verwijderd voordat het onderzoek begint | Implementeer minimaal 90 dagen retentie voor AI-logs |
| Geen correlatie-ID's | Kan logs niet over lagen heen koppelen | Propageer een request-ID door alle logginglagen |
Logopslag en -retentie
| Logtype | Aanbevolen retentie | Opslaglaag | Toegangscontrole |
|---|---|---|---|
| Inferentiemetadata | 1 jaar | Warm (geïndexeerd, opvraagbaar) | Engineering + Security |
| Prompt-/completion-inhoud | 90 dagen hot, 1 jaar cold | Hot → Cold-migratie | Alleen Security + Legal |
| Tool call-logs | 1 jaar | Warm | Engineering + Security |
| Embedding-/retrieval-logs | 90 dagen | Warm | Engineering + Security |
| Safety-classifier-logs | 1 jaar | Warm | Security |
Sectieoverzicht
| Subsectie | Focus | Beantwoorde kernvragen |
|---|---|---|
| Inferentielog-analyse | Anomalieën detecteren in inferentiemetadata | Zijn er ongebruikelijke patronen in tokenaantallen, latentie of verzoekvolume? |
| Prompt-log-forensics | Onderzoek van prompt- en completion-inhoud | Welke aanval werd gebruikt? Hoe reageerde het model? Wat was de aanvalsketen? |
| Tool call-forensics | Onderzoek van agent-toolgebruik | Ondernam het model ongeautoriseerde acties? Werd data geëxfiltreerd via tools? |
Gerelateerde onderwerpen
- Bewijsbewaring -- logs bewaren als forensisch bewijs
- Triageprocedures -- initiële logreview tijdens triage
- Recon & Tradecraft -- begrijpen waar aanvallers naar zoeken in AI-systemen
Referenties
- "NIST SP 800-92: Guide to Computer Security Log Management" - NIST (2006) - Log management principles adapted for AI systems
- "OpenTelemetry Semantic Conventions for GenAI" - OpenTelemetry (2025) - Standardized logging conventions for generative AI
- "OWASP Logging Guide" - OWASP Foundation (2025) - Security logging best practices
Welk logginggat verhindert AI-incidentonderzoek het meest kritiek?