Enhet 5 / 11

Loggning, revisionsspår och bevisbarhet

Vinster:

  • Förmåga att utforma ett minimischema för revisionsspår som är tillräckligt för att rekonstruera händelsen
  • Möjlighet att förhindra att loggen är en källa till läckage genom att maskera uppmaningen/svaret
  • Förmåga att upprätta verifierbara loggar med korrelationsidentitet, oföränderlighet och lagringstid

I ett AI-system kommer säkert frågan en dag att ställas: "Varför togs det här beslutet på det här sättet, vad exakt hände den dagen?" Denna fråga kan ställas av en kund, en revisor, en tillsynsmyndighet eller en domstol. Ditt svar kommer antingen att vara ett verifierbart revisionsspår eller "vi vet inte." Det senare är oacceptabelt i en företagsmiljö. I den här enheten kommer vi att lära oss vad som bör och inte bör loggas specifikt för AI, hur man upprättar ett revisionsspår och hur man håller loggar i balans med säkerhet och integritet.

Varför är loggning annorlunda i AI?

I klassisk programvara loggas "vem gjorde vad". I AI läggs tre nya dimensioner till: vilken modell/version som användes, vilken prompt som skickades och vilket svar som producerades. När ett fel eller klagomål inträffar kan du inte rekonstruera händelsen utan dessa tre. Men just denna uppmaning/svar kan innehålla PII, som vi såg i enhet 2 — vilket betyder att själva loggen kan bli en källa till läckor. Det här är balansens konst.

Varning: Loggning är inte "logga allt". För mycket loggning skapar en integritetsrisk, och för lite loggning skapar brist på bevis. Målet är att behålla tillräckligt med PII för att rekonstruera händelsen genom att maskera den.

Vad ska loggas? Revisionsspårschema

En solid AI-revisionsspår inkluderar åtminstone:

  • Vem: Användar-ID och roll (eller tjänst-ID).
  • När: Tidsstämpel (bifoga endast om möjligt).
  • Vad: Önskad åtgärd och tillkallade verktyg.
  • Vilken modell: Modellnamn och version (t.ex. claude-opus-4-8), kritiska parametrar som temperatur.
  • Input/output sammanfattning: En maskerad version eller en sammanfattning/hash av begäran och svaret.
  • Beslut: Bearbetades det automatiskt, gick det till en människa, godkändes eller avvisades det?
  • Resultat: Har operationen lyckats eller fel, vilken resurs påverkas?

Steg för steg: Upprätta ett revisionsspår

  1. Sätt ett mål. Vem kommer att läsa dessa loggar och varför? (Reaktion på incidenter, granskning av efterlevnad, felsökning.) Syftet avgör vad du behåller.
  2. Genomför PII-policy. Maskera uppmaningen/svaret före loggning (enhet 2).
  3. Ge oföränderlighet. Låt kritiska loggar endast läggas till; Ingen ska kunna radera det förflutna tyst.
  4. Definiera lagringsperiod. Bestäm varaktigheten enligt balansen mellan lagkrav och konfidentialitet; Radera automatiskt när tiden går ut.
  5. Begränsa åtkomst. Tillgång till stockar bör också skyddas med RBAC; Loggläsning bör också loggas.
  6. Lägg till korrelations-ID (spår-ID). Koppla alla steg i en begäran (ingång, verktygsanrop, verifiering, utgång) med en enda identitet.

Fyra kopieringsbara mallar

Granskningsloggschema (JSON):

{ "trace_id": "...", "time": "ÅÅÅÅ-MM-DDThh:mm:ssZ", "user": "...", "role": "...", "model": "claude-opus-4-8", "parameters": { "temperatur": 0 }, "request_summary">: "",<response_masked>masked> "tools": ["tool_a", "tool_b"], "decision": "auto|human_aproval", "approval": "godkänd|avvisad|ingen", "result": "framgång|fel", "affected_resource": "..."}

Logga PII-kontrollprompt:

Kolla in loggexemplen nedan. Är fälten som krävs för revisionsspåret (vem, när, modell, beslut, resultat) ifyllda? Har även rå PII läckt ut? För varje rad, rapportera som: "inte tillräckligt / saknas utrymme: ... /PII-läcka: ..." <logs>{{ exempel }}</logs>

Uppmaning om återuppbyggnad av händelse:

Följande granskningsposter tillhör ett enda trace_id. Förvandla händelsen till en berättelse i kronologisk ordning: vad ville användaren, vad gjorde modellen, vilka valideringar kördes, hur togs beslutet, vad blev resultatet? Flagga saknade eller inkonsekventa steg.<records>{{ trace_registers }}</records>

Beslutsregel för lagringspolicy:

Bestäm för varje loggtyp: - Finns det en laglig lagringsskyldighet? (minsta period om någon)- Innehåller den PII? (om inkluderat, förkorta varaktigheten, begränsa åtkomsten) - Bevis på säkerhetsincident? (butiken kan inte ändras)Resultat: "butik N dagar + append-only mi + åtkomstnivå".

Svag prompt / Stark prompt

dåligt tillvägagångssätt

Starkt förhållningssätt

Loggar inte alls ("behöver inte")

Loggar minimiuppsättningen för att rekonstruera händelsen

Loggar rå prompt/svar som det är

Maskerad sammanfattning + spårnings-ID-loggning

Lagra loggar obegränsat

Lagringsperiod med balans mellan juridiskt + integritet

Vem som helst kan ta bort loggar

Kritiska loggar är endast tilläggskontrollerade, åtkomstkontrollerade

Tre minifodral

Fall 1 — Trace ID minskade en dags utredning till 15 minuter. "Min ansökan avslogs orättvist", sa en kund till en banks assistent för förhandsbedömning av krediter. Tack vare korrelations-ID:t rekonstruerade teamet den applikationens indata, anställdas verifieringar och beslut på 15 minuter; visade att felet orsakades av en felaktig tröskel i en regelvalidering och fixade det.

Fall 2 – Överdriven loggning upptäcktes vid revisionen. Ett e-handelsföretag skrev alla uppmaningar/svar till råloggar för felsökning. Vid den årliga revisionen sågs att dessa loggar innehöll kundadresser och telefonnummer och bevarades i 2 år. Fyndet avslutades genom att byta till en maskering + 90-dagars retention policy; Revisionsspårfunktionen bevarades.

Fall 3 – Bifogad logg avslöjade internt övergrepp. En anställd på en leverantör försökte ta bort loggar för att dölja en felaktig batch han gjorde. Eftersom loggarna endast är tilläggsförsök och loggläsnings-/raderingsförsök registreras, var försöket omedelbart synligt; Händelsen resulterade i disciplinära och processuella korrigeringar.

Tips: Tilldela ett korrelations-ID (spårnings-ID) till varje begäran och genomför det genom alla steg. När ett problem uppstår är att kunna samla in "allt om den begäran" med en enda fråga den största acceleratorn för incidentrespons.

Vanliga misstag

  • Loggar inte alls, eller loggar så lite att du inte kan rekonstruera händelsen.
  • Logga den råa begäran/svaret utan mask och förvandla loggen till en källa till läckage.
  • Loggar inte modellnamn/version och beslut (automatiskt/mänskligt).
  • Att lagra loggar under en obegränsad tidsperiod ökar integritetsrisken.
  • Lämna kritiska loggar med reservation för ändringar; Loggar inte åtkomst till logg.
  • Att inte kunna koppla ihop stegen eftersom det inte använder ett korrelations-ID (spår-ID).

Sammanfattningsvis

  • AI-loggning lägger till tre dimensioner till "vem gjorde vad": vilken modell/version, vilken prompt, vilket svar.
  • Målet är att hålla PII tillräckligt minimal för att rekonstruera händelsen genom att maskera den – varken mer eller mindre.
  • Revisionsspåret bör inkludera vem/när/vad/vilken modell/beslut/resultatfält.
  • Kritiska loggar bör endast läggas till, åtkomsten bör begränsas och loggåtkomsten bör också loggas.
  • Korrelations-ID (spår-ID) kopplar samman alla steg i en begäran och påskyndar incidentutredningen.

Applikationsuppgift

Välj en begäran från ditt eget AI-flöde och skriv det perfekta revisionsspåret för det med JSON-schemat ovan. Gör sedan två tester: (1) Kan du berätta historien från början till slut med bara den här inspelningen? (2) Finns det rå PII i posten? Om det saknas fält, lägg till det, om det finns PII, maskera det. Slutligen, ställ in en lagringsperiod och åtkomstnivå.

checklista

  • [ ] Revisionsspår inkluderar vem/när/vad/mönster/beslut/resultatfält.
  • [ ] Uppmaningen/svaret är maskerat före loggar (ingen PII).
  • [ ] Ett korrelations-ID (spår-ID) tilldelas varje begäran.
  • [ ] Kritiska loggar är endast tilläggs- och åtkomstkontrollerade.
  • [ ] Lagringsperioden definieras av saldot för legal + konfidentialitet och raderas i slutet av perioden.
  • [ ] Med loggar kan jag rekonstruera en händelse på mindre än 30 minuter.