# ADR 0014 — Audit-Log-Strategie ## Status Accepted ## Kurz erklärt Audit-Logs dokumentieren wichtige Änderungen und Aktionen. Sie beantworten: ```text Wer hat wann was geändert? ``` ## Kontext Das Architekturreview hat bemängelt, dass „nicht manipulierbare Logs“ gefordert wurden, aber kein Mechanismus definiert war. ## Entscheidung V1 verwendet ein append-only Audit-Log. Append-only bedeutet: ```text Einträge werden nur hinzugefügt, aber nicht geändert oder gelöscht. ``` ## V1-Mindestmechanismus Audit-Logs werden gespeichert mit: - tenant_id - actor_id - actor_type - action - object_type - object_id - old_values - new_values - created_at - request_id - ip_address - user_agent ## Integrität V1 bereitet eine Hash-Chain vor. Hash-Chain bedeutet: ```text Jeder Logeintrag enthält einen Prüfwert und verweist rechnerisch auf den vorherigen Eintrag. ``` Dadurch werden nachträgliche Manipulationen besser erkennbar. ## Trennung Es gibt unterschiedliche Logarten: - App-Logs - Security-Logs - Audit-Logs Audit-Logs sind keine normalen Debug-Logs. ## Kritische Aktionen Immer auditieren: - Login/Logout - fehlgeschlagene Logins - Rechteänderungen - Kundendatenänderungen - Vertragsänderungen - Zahlungsstatusänderungen - Importvorgänge - Secret-Änderungen - Modulaktivierungen - API-Token-Erstellung ## Nicht-Ziel V1 garantiert noch keine vollständige externe WORM-Archivierung. ## Später möglich - Export in externes Audit-Sink - WORM-Speicher - signierte Logs - tägliche Hash-Summen - revisionssichere Langzeitablage ## Verwandte ADRs - ADR 0011 — GoBD-Verantwortlichkeit - ADR 0010 — Secrets-Management - ADR 0021 — DSGVO-Löschung und Retention