Eenheid 5 / 11

Logging, audittrail en bewijsbaarheid

Winst:

  • Mogelijkheid om een minimaal audit trail-schema te ontwerpen dat voldoende is om de gebeurtenis te reconstrueren
  • Mogelijkheid om te voorkomen dat het logboek een bron van lekkage is door de prompt/reactie te maskeren
  • Mogelijkheid om verifieerbare logbestanden op te stellen met correlatie-identiteit, onveranderlijkheid en bewaartermijn

In een AI-systeem zal op een dag zeker de vraag gesteld worden: “Waarom is deze beslissing op deze manier genomen, wat is er die dag precies gebeurd?” Deze vraag kan worden gesteld door een klant, een accountant, een toezichthouder of een rechtbank. Uw antwoord zal een verifieerbaar audittraject zijn of 'we weten het niet'. Dit laatste is onaanvaardbaar in een bedrijfsomgeving. In dit onderdeel leren we wat specifiek voor AI wel en niet moet worden geregistreerd, hoe we een audittrail kunnen opzetten en hoe we logbestanden in evenwicht kunnen houden met beveiliging en privacy.

Waarom is loggen anders in AI?

In klassieke software wordt vastgelegd "wie wat heeft gedaan". In AI worden hieraan drie nieuwe dimensies toegevoegd: welk model/versie werd gebruikt, welke prompt werd verzonden en welke reactie werd geproduceerd. Wanneer er zich een fout of klacht voordoet, kun je zonder deze drie het incident niet reconstrueren. Maar juist deze prompt/reactie kan PII bevatten, zoals we in hoofdstuk 2 zagen – wat betekent dat het logbestand zelf een bron van lekken kan worden. Dit is de kunst van het evenwicht.

Let op: loggen is niet "alles loggen". Te veel loggen creëert een privacyrisico, en te weinig loggen zorgt voor een gebrek aan bewijs. Het doel is om voldoende PII over te houden om de gebeurtenis te reconstrueren door deze te maskeren.

Wat moet worden gelogd? Audit Trail-schema

Een solide AI-audittraject omvat minimaal:

  • Wie: Gebruikers-ID en rol (of service-ID).
  • Wanneer: tijdstempel (alleen toevoegen indien mogelijk).
  • Wat: Gewenste actie en opgeroepen hulpmiddelen.
  • Welk model: Modelnaam en versie (bijv. claude-opus-4-8), kritische parameters zoals temperatuur.
  • Invoer/uitvoersamenvatting: een gemaskeerde versie of een samenvatting/hash van het verzoek en het antwoord.
  • Beslissing: werd het automatisch verwerkt, ging het naar een mens, werd het goedgekeurd of afgewezen?
  • Resultaat: Is de bewerking succesvol of foutief, welke bron wordt beïnvloed?

Stap voor stap: een audittrail opzetten

  1. Stel een doel. Wie zal deze logboeken lezen en waarom? (Reactie op incidenten, compliance-audits, foutopsporing.) Het doel bepaalt wat u bewaart.
  2. PII-beleid afdwingen. Masker de prompt/reactie vóór het inloggen (eenheid 2).
  3. Zorg voor onveranderlijkheid. Laat kritieke logboeken alleen worden toegevoegd; Niemand zou in staat moeten zijn het verleden stilletjes uit te wissen.
  4. Bewaartermijn definiëren. Bepaal de duur op basis van het evenwicht tussen wettelijke vereisten en vertrouwelijkheid; Automatisch verwijderen wanneer de tijd verstrijkt.
  5. Beperk de toegang. Toegang tot logbestanden moet ook worden beveiligd met RBAC; Het lezen van logbestanden moet ook worden geregistreerd.
  6. Correlatie-ID (trace-ID) toevoegen. Verbind alle stappen van een aanvraag (invoer, tooloproep, verificatie, uitvoer) met één identiteit.

Vier kopieerbare sjablonen

Auditlogboekschema (JSON):

{ "trace_id": "...", "time": "JJJJ-MM-DDTuu:mm:ssZ", "user": "...", "role": "...", "model": "claude-opus-4-8", "parameters": { "temperatuur": 0 }, "request_summary": "<masked>", "response_summary": "<masked>", "tools": ["tool_a", "tool_b"], "decision": "auto|human_approval", "approval": "approved|rejected|none", "result": "success|error", "affected_resource": "..."}

Log PII-controleprompt:

Bekijk de logvoorbeelden hieronder. Zijn de verplichte velden voor de audit trail (wie, wanneer, model, beslissing, resultaat) ingevuld? Is er ook onbewerkte PII gelekt? Rapporteer voor elke rij als: "niet genoeg / ontbrekende ruimte: ... /PII-lek: ..." <logs>{{ voorbeelden }}</logs>

Prompt voor opnieuw opbouwen van gebeurtenis:

De volgende auditrecords behoren tot één trace_id. Verander de gebeurtenis in een verhaal in chronologische volgorde: wat wilde de gebruiker, wat deed het model, welke validaties liepen, hoe werd de beslissing genomen, wat was de uitkomst? Markeer ontbrekende of inconsistente stappen.<records>{{ trace_registers }}</records>

Beslisregel bewaarbeleid:

Bepaal per logtype: - Is er een wettelijke bewaarplicht? (minimumperiode, indien van toepassing) - Bevat het PII? (indien opgenomen, verkort de duur, beperk de toegang) - Bewijs van een beveiligingsincident? (winkel kan niet worden gewijzigd) Resultaat: "N dagen opslaan + alleen mi toevoegen + toegangsniveau".

Zwakke prompt/sterke prompt

slechte aanpak

Sterke aanpak

Helemaal niet inloggen ("niet nodig")

Het registreren van de minimale set om de gebeurtenis te reconstrueren

Onbewerkte prompt/antwoord registreren zoals het is

Gemaskeerde samenvatting + registratie van trace-ID's

Bewaar logboeken onbeperkt

Bewaartermijn met balans juridisch + privacy

Iedereen kan logs verwijderen

Essentiële logboeken kunnen alleen worden toegevoegd en de toegang wordt gecontroleerd

Drie mini-hoesjes

Geval 1 – Trace ID reduceerde het onderzoek van een dag tot 15 minuten. "Mijn aanvraag is ten onrechte afgewezen", zei een klant tegen de kredietbeoordelingsassistent van een bank. Dankzij de correlatie-ID reconstrueerde het team de input, werknemersverificaties en beslissingen van die applicatie in 15 minuten; toonde aan dat de fout werd veroorzaakt door een onjuiste drempelwaarde in een regelvalidatie en loste dit op.

Geval 2: Tijdens de audit werd buitensporige houtkap ontdekt. Een e-commercebedrijf schreef alle aanwijzingen/antwoorden naar onbewerkte logboeken voor foutopsporing. Tijdens de jaarlijkse audit is gebleken dat deze logs klantadressen en telefoonnummers bevatten en 2 jaar bewaard zijn gebleven. De bevinding werd afgesloten door over te schakelen naar een maskering + bewaartermijn van 90 dagen; De audit trail-functie bleef behouden.

Geval 3 – Logboek dat alleen wordt toegevoegd, bracht intern misbruik aan het licht. Een medewerker bij een provider probeerde logbestanden te verwijderen om een ​​foutieve batch die hij had gemaakt te verbergen. Omdat de logs alleen kunnen worden toegevoegd en pogingen tot het lezen/verwijderen van logs worden geregistreerd, was de poging onmiddellijk zichtbaar; Het incident resulteerde in disciplinaire en procesmatige correcties.

Tip: Wijs aan elke aanvraag een correlatie-ID (trace-ID) toe en doorloop deze door alle stappen. Wanneer er zich een probleem voordoet, is het kunnen verzamelen van ‘alles over dat verzoek’ met één enkele vraag de grootste versneller van de respons op incidenten.

Veel voorkomende fouten

  • Helemaal niet loggen, of zo weinig loggen dat je de gebeurtenis niet kunt reconstrueren.
  • Het onbewerkte verzoek/antwoord loggen zonder masker en het logbestand omzetten in een bron van lekkage.
  • Modelnaam/versie en beslissing (automatisch/menselijk) worden niet geregistreerd.
  • Het voor onbepaalde tijd opslaan van logs verhoogt het privacyrisico.
  • Het achterlaten van kritische logs onder voorbehoud; Logboektoegang wordt niet geregistreerd.
  • Het niet kunnen verbinden van de stappen omdat er geen correlatie-ID (trace-ID) wordt gebruikt.

Samengevat

  • AI-logboekregistratie voegt drie dimensies toe aan ‘wie wat heeft gedaan’: welk model/versie, welke prompt, welke reactie.
  • Het doel is om de PII minimaal genoeg te houden om de gebeurtenis te reconstrueren door deze te maskeren – niet meer en niet minder.
  • Het audittraject moet de velden wie/wanneer/wat/welk model/beslissing/resultaat bevatten.
  • Kritieke logboeken mogen alleen worden toegevoegd, de toegang moet worden beperkt en de toegang tot het logboek moet ook worden vastgelegd.
  • Correlatie-ID (trace-ID) verbindt alle stappen van een verzoek en versnelt het onderzoek naar incidenten.

Applicatie taak

Selecteer een verzoek uit uw eigen AI-stroom en schrijf daarvoor de ideale audittrail met het bovenstaande JSON-schema. Voer vervolgens twee tests uit: (1) Kun jij het verhaal van begin tot eind vertellen met alleen deze opname? (2) Is er onbewerkte PII in het dossier? Als er een veld ontbreekt, voeg het dan toe. Als er PII is, maskeer het dan. Stel ten slotte een bewaarperiode en toegangsniveau in.

controlelijst

  • [ ] Audittrail omvat de velden wie/wanneer/wat/patroon/beslissing/resultaat.
  • [ ] De prompt/reactie wordt gemaskeerd vóór logs (geen PII).
  • [ ] Aan elk verzoek wordt een correlatie-ID (trace-ID) toegewezen.
  • [ ] Essentiële logboeken kunnen alleen worden toegevoegd en de toegang wordt gecontroleerd.
  • [ ] De bewaartermijn wordt bepaald door het wettelijke + vertrouwelijkheidssaldo en wordt aan het einde van de periode verwijderd.
  • [ ] Met logboeken kan ik een gebeurtenis in minder dan 30 minuten reconstrueren.