Zum Inhalt springen
Luiz Hogrefe

AnyAudit

Forschungsdemonstrator für Audit-Nachweise in Software des KI-Zeitalters

Forschungsdemonstrator

Was muss ein System aufzeichnen, und wie, damit jemand, der es nicht gebaut hat, sein Verhalten nachträglich prüfen kann?

Überblick

AnyAudit löst die Schicht für Audit-Nachweise aus AnyDPP als wiederverwendbare Bibliothek heraus. Es gibt einen Trace-Kontext durch Anfragen weiter, schreibt versionierte Audit-Ereignisse, die nur einen Hash ihrer Nutzdaten speichern, und hängt sie an eine SHA-256-Hash-Kette an, die sich von Anfang bis Ende prüfen lässt.

Es nutzt bewusst eine Hash-Kette und keine Blockchain: Ziel ist, Manipulationen innerhalb eines Systems erkennbar zu machen, nicht Konsens zwischen einander fremden Parteien.

Eine Kette, die Manipulation zeigt

Eine Kette, die Manipulation zeigt
  1. Ereignis 1review.acceptedTrace: 7f3a-19c2Nutzdaten-Hash: f5e10178vorheriger: 00000000
  2. Ereignis 2attribute.updatedTrace: 7f3a-19c2Nutzdaten-Hash: 64f2c5a3vorheriger: f5e10178
  3. Ereignis 3passport.composedTrace: 7f3a-19c2Nutzdaten-Hash: e298dad5vorheriger: 64f2c5a3
  4. Ereignis 4credential.issuedTrace: 7f3a-19c2Nutzdaten-Hash: 77c82a49vorheriger: e298dad5

Kette prüfen: Kette intakt

Wird ein Ereignis verändert, schlägt die Prüfung ab dieser Stelle fehl.

Textbeschreibung des Diagramms

Vier Audit-Ereignisse in einer Reihe, jedes mit seiner Trace-Kennung, dem Hash seiner Nutzdaten und dem Hash des vorherigen Eintrags. Wird das zweite Ereignis verändert, passt sein Hash nicht mehr zu dem, woran sich der dritte Eintrag gebunden hat, und die Prüfung meldet den Bruch.

Bausteine

  • Trace-Kontext

    Eine Kennung, die durch jede Anfrage, jeden Job und jeden Dienst weitergegeben wird, die an einer Operation beteiligt sind.

  • Audit-Ereignis

    Ein versioniertes Ereignisschema, das einen Hash der Nutzdaten speichert, nicht die Nutzdaten selbst.

  • Hash-Kette

    Jeder Eintrag bindet sich an den vorherigen, sodass ein geänderter oder entfernter Eintrag jedes folgende Glied bricht.

  • Kettenprüfung

    Eine Funktion, die die Kette durchläuft und meldet, wo sie bricht.

  • Decorator und Middleware

    Wege, bestehenden Code um Auditierung zu ergänzen, ohne ihn neu zu schreiben.

Was ein Auditor erhält

  1. 1

    Eine prüfende Person nimmt in einem Pass-Workflow einen Wert an.

  2. 2

    Die Anfrage trägt eine Trace-Kennung durch die API und den Hintergrundjob.

  3. 3

    Ein Audit-Ereignis hält fest, wer was unter welcher Version getan hat, mit einem Hash der Nutzdaten.

  4. 4

    Monate später prüft ein Auditor die Kette und verfolgt die Spur vom Eingang bis zur Veröffentlichung.

Abgrenzung

  • AnyAuditAnyTraceForschungsprototyp · unveröffentlicht

    AnyTrace zeichnet die Provenienz von Dingen in der Welt auf. AnyAudit zeichnet das Verhalten der Software auf.

    AnyTrace
  • AnyAuditAnyVerifyForschungsprototyp · unveröffentlicht

    AnyVerify beurteilt, ob Nachweise eine Aussage stützen. AnyAudit urteilt nicht; es führt eine Aufzeichnung, die sich prüfen lässt.

    AnyVerify
  • AnyAuditAnyValidForschungsprototyp · unveröffentlicht

    AnyValid fragt eine externe maßgebliche Stelle. AnyAudit fragt niemanden; es belegt, dass sich die eigene Aufzeichnung nicht verändert hat.

    AnyValid

Stand

Forschungsdemonstrator

Umgesetzt als Forschungsdemonstrator, vorgestellt unter anyaudit.eu, mit der Bibliothek im Repository von AnyLAI.

Grenzen

  • Manipulationen werden erkennbar, nicht verhindert: Eine Kette zeigt, dass sich etwas geändert hat, sie hält es nicht auf.
  • Nicht außerhalb des Systems verankert, das sie schreibt.
  • Eine Audit-Aufzeichnung ist ein Nachweis für ein Audit, kein Auditergebnis.

Zurück zu Projekte