Shopware Audit Trail mit Hash-Kette
Wer hat wann was geändert, und stimmt das Protokoll noch?
Ein Log, das sich unbemerkt ändern lässt, taugt im Ernstfall wenig. Der Audit Trail beantwortet beide Fragen.
In einem Shop arbeiten Administratoren, Agenturen, Schnittstellen und Plugins an denselben Daten. Preise ändern sich, Bestellungen werden angepasst, Benutzerrechte wandern. Wenn später jemand wissen will, wie es dazu kam, hilft ein Eintrag in der Datenbank nur, wenn er auch vollständig und unverändert ist.
Der Audit Trail legt jeden Eintrag in eine fortlaufende Hash-Kette. Jeder Eintrag ist kryptografisch an seinen Vorgänger gebunden. Wer einen Eintrag ändert, löscht oder das Protokoll abschneidet, bricht die Kette, und die Prüfung zeigt es an.
Die Aufbewahrungsfrist ist davon ausgenommen. Was die Retention löscht, hält sie selbst im Protokoll fest, damit reguläre Bereinigung nicht als Manipulation erscheint.
Was das Plugin daran ändert
Ein log(...)-Aufruf, mehrere Ziele
Der AuditTrailService ist die zentrale Schnittstelle für alle Plugins. Wohin die Daten gehen, legt die Sink-Konfiguration fest.
// In jedem Plugin: ein Aufruf
$this->auditTrailService->log(...);
// Prüfung der Hash-Kette, z. B. als Cron-Job im Monitoring
bin/console coding9:audit:verifySinks: Datenbank, HTTP, eigene
Database- und HTTP-Sink bringt das Plugin mit. Wer die Daten zusätzlich in Elasticsearch, im APM oder in einem anderen System braucht, ergänzt einen eigenen Sink. Das Dispatching verteilt jeden Eintrag an alle konfigurierten Ziele.
Abfrage von außen
Ein REST-API-Endpunkt macht das Protokoll aus externen Systemen abfragbar. Für die Sicht im Shop selbst gibt es ein Admin-Grid mit Filtern und Detailansicht, für Prüfungen den Export der Audit-Logs als CSV oder JSON.
Auffälligkeiten im Blick
Die Anomalie-Erkennung in der Administration meldet etwa ungewöhnlich viele Produktänderungen in kurzer Zeit, wiederholte fehlgeschlagene Anmeldungen oder Zugriffe aus einem neuen Netzbereich. Meldungen lassen sich nach Schweregrad, Typ, Zeitraum und Bearbeitungsstatus filtern.
Protokollieren, prüfen, exportieren
Vom Entity-Tracking bis zum Monitoring-Befehl in einem Plugin.
Hash-Kette
Prüfung per Konsole
Entity-History
Multi-Sink-Dispatching
Admin-Grid
Export und REST-API
Ein Aufruf genügt
PII optional
Installieren, Sinks festlegen, Prüfung einbinden
Installieren und aktivieren
Über den Shopware Store oder Erweiterungen › Meine Erweiterungen. Die Entity-Änderungen, die Sie auswählen, landen danach im Protokoll.
Sinks und Umfang festlegen
Datenbank, HTTP-Endpunkt oder eigener Sink, dazu die Aktionen, die protokolliert werden, und ob IP und personenbezogene Daten dazugehören.
Prüfung ins Monitoring
bin/console coding9:audit:verify als regelmäßiger Job einbinden, damit ein Befund im Alarmkanal ankommt.
Ein Protokoll, dem Sie nachweisen können, dass es stimmt
Lizenz und Anpassung
Das Plugin gibt es im Shopware Store. Preis und Lizenzmodell stehen im Store-Listing. Bei Fragen zu Ihrer Lizenz erreichen Sie uns über das Ticket-System im Shopware Store.
Wenn Sie einen eigenen Sink brauchen, etwa für Ihr SIEM oder Elasticsearch, oder Ihre eigenen Plugins an den AuditTrailService anbinden möchten, übernehmen wir das gern als Shopware Plugin-Entwicklung für Sie.
Audit Trail im Detail
Was protokolliert der Audit Trail in Shopware 6?
Die Aktionen, die Sie auswählen: Änderungen an Entities, Anmeldungen, Bestellungen und eigene Ereignisse aus Ihren Plugins. Jede ausgewählte Aktion landet im Protokoll, mit dem Hinweis, wer wann was geändert hat.
Wie erkennt das Plugin, dass jemand das Protokoll verändert hat?
Die Einträge liegen in einer fortlaufenden Hash-Kette. Jeder Eintrag ist kryptografisch an seinen Vorgänger gebunden, und Änderungen an bestehenden Einträgen weist Shopware zurück. Wird ein Eintrag nachträglich geändert, gelöscht oder das Protokoll abgeschnitten, fällt das bei der Prüfung auf.
Wie prüfe ich das Protokoll?
Mit dem Konsolenbefehl bin/console coding9:audit:verify. Er lässt sich direkt in Ihr Monitoring einbinden, etwa als regelmäßiger Cron-Job, der bei einem Befund Alarm auslöst.
Was passiert mit der Aufbewahrungsfrist?
Die Retention ist von der Prüfung ausgenommen. Was sie löscht, hält sie selbst im Protokoll fest, damit reguläre Bereinigung nicht als Manipulation erscheint.
Wohin werden die Audit-Daten geschrieben?
Über ein konfigurierbares Multi-Sink-Dispatching in die Datenbank, an HTTP-Endpunkte oder an eigene Sinks, etwa Elasticsearch oder APM. Database- und HTTP-Sink bringt das Plugin mit, weitere schreibt Ihr Entwicklerteam oder wir.
Werden IP-Adressen und personenbezogene Daten gespeichert?
Nur auf Wunsch. Die Erfassung von IP-Adressen und personenbezogenen Daten ist optional und standardmäßig ausgeschaltet.
Wie bindet mein Entwicklerteam das Plugin in eigene Plugins ein?
Über den zentralen AuditTrailService. Ein log(...)-Aufruf genügt, Sinks, Hash-Kette und Speicherung übernimmt das Plugin.
Mit welchen Shopware-Versionen ist das Plugin kompatibel?
Mit Shopware ab 6.6.1 bis einschließlich 6.7. Shopware 6.6.0 wird nicht unterstützt.
Was kostet das Plugin?
Den aktuellen Preis und die Lizenzmodelle zeigt das Store-Listing im Shopware Store.
Shopware-Plugins und Shopware-Leistungen von CODING 9
Wir entwickeln Shopware-Plugins für den Store und für einzelne Kunden. Was wir dabei in Store-Reviews und Update-Zyklen lernen, fließt in jedes Kundenprojekt ein.
Alle Shopware Plugins
Liefertermin, Altersverifikation, Audit Trail und der KI Data Selector als Open Source.
Shopware Agentur
Shop-Entwicklung, Migration, Schnittstellen und Betreuung aus einem Team in Bayern.
Shopware Wartung
Updates, Plugin-Kompatibilität und Monitoring im Monatspaket, damit Erweiterungen nach dem nächsten Release weiterlaufen.
Audit Trail in Ihrem Shop
Holen Sie sich das Plugin aus dem Shopware Store. Und wenn Ihr Shop einen eigenen Sink oder die Anbindung an Ihre Plugins braucht, sprechen wir das gern gemeinsam mit Ihnen durch.