Skript-Integrität — Magecart- & Skimming-Watch
Eingeschleuster Schadcode in fremden Skripten ist die typische Signatur von Web-Skimming (Magecart): Ein Drittanbieter-Skript wird unbemerkt verändert und liest fortan Zahlungsdaten direkt aus dem Checkout aus. XICTRAQ lernt beim Scan den SHA-256-Hash jedes externen Skripts als Baseline; ein Cron prüft diese Hashes laufend und alarmiert, sobald sich ein Skript unbemerkt ändert. Zusätzlich meldet der Scan einer Checkout-Seite neue externe Formular-Ziele — ein klassisches Zeichen für abfließende Zahlungsdaten. Verfügbar ab dem Business-Plan.
# Überwachte Skripte auf einen Blick
Im Skript-Integritäts-Panel einer Website sehen Sie jede gelernte Baseline: die Skript-URL, den ausliefernden Host, einen Kurz-Hash (SHA-256), die Dateigröße in Bytes und ob aktuell ein offener Drift-Alert besteht. Formular-Ziele auf Checkout-Pfaden erscheinen als eigener Eintrag mit dem Kontext „form_action“.
# So funktioniert die Überwachung
Hash-Baseline beim Scan
Bei jedem Scan liest XICTRAQ das geladene HTML, findet jedes externe Dritt-Skript (gleiche Hosts wie die Seite selbst und XICTRAQ-eigene Skripte werden ausgenommen) und lädt dessen Inhalt serverseitig nach, um den SHA-256-Hash zu bilden (`results.html.sri.script_hashes` mit URL, Host, Bytes und SHA-256). Pro Skript wird dieser Hash als Baseline gelernt — der Soll-Zustand: solange das Skript exakt diesen Hash liefert, gilt es als unverändert. Pro Scan werden bis zu 12 externe Skripte abgerufen (Latenz-Deckel); jeder Abruf liest maximal 512 KB.
Baseline nur für eigene, verifizierte Websites
Eine Baseline wird ausschließlich fortgeschrieben, wenn der Scan zu einer Website in Ihrem Konto gehört, die als verifiziert markiert ist. Schnellchecks fremder URLs erzeugen keine Baseline — das verhindert, dass die Überwachung mit Skripten von Seiten Dritter zugemüllt wird. Ein einmal gelernter Baseline-Hash wird nie automatisch überschrieben; nur ein bewusstes „Bestätigen“ schreibt ihn fort. So verschluckt der Watcher auch keinen Skimmer, der dauerhaft im Skript verbleibt.
Drift-Cron prüft laufend
Alle zehn Minuten ruft ein Cron-Job die überwachten Skripte erneut ab (bis zu 150 Skripte pro Lauf, älteste Prüfung zuerst) und bildet den SHA-256-Hash neu. Weicht der Hash von der gelernten Baseline ab, ist das ein „Drift“ — die typische Signatur eines unbemerkt ausgetauschten Skripts (Web-Skimming). Der Felder-Vertrag zeigt pro Eintrag `drift_count`, den Kurz-Hash `sha256_short`, `first_seen_at`, `last_seen_at` und `last_hash_at`, sodass Sie nachvollziehen können, wann sich zuletzt etwas geändert hat.
Alert über Ihre Kanäle — nur einmal
Wird ein Drift erkannt, löst XICTRAQ einen Sicherheits-Alert über alle aktivierten Kanäle aus (E-Mail, Slack, Teams, Discord, Telegram, Webhook, Browser-Push — konfigurierbar unter Einstellungen → Benachrichtigungen). Ein Drift wird pro Eintrag nur EINMAL alarmiert (Feld `alerted=true`), bis Sie ihn bestätigen — kein Dauerfeuer bei jedem Cron-Lauf. Die Schwere richtet sich nach dem Fund: eine Skript-Hash-Änderung kommt als „warning“, ein neues externes Formular-Ziel auf einem Checkout-Pfad als „critical“ herein.
Auch ein verschwundenes Skript wird gemeldet
Ist ein überwachtes Skript beim Cron-Lauf nicht mehr erreichbar (kein 2xx-Status, leerer Body), meldet XICTRAQ das einmalig als Warnung mit dem zurückgegebenen Statuscode. Ein verschwundenes oder ausgetauschtes Skript ist genauso verdächtig wie eine reine Inhaltsänderung — auch das wird pro Eintrag nur einmal alarmiert.
Sofort-Prüfung auf Knopfdruck
Sie müssen nicht auf den nächsten Cron-Lauf warten: Die Sofort-Prüfung holt die Skripte einer Website (bis zu 60) umgehend erneut ab und vergleicht die Hashes — praktisch direkt nach einem geplanten Deployment, um zu sehen, ob die Baseline noch passt oder bestätigt werden muss.
Bestätigen = neue Baseline, Verwerfen = Überwachung beenden
Haben Sie das Skript bewusst aktualisiert (z. B. ein legitimes Deployment), bestätigen Sie den Drift mit „Bestätigen“ (acknowledge): Der aktuelle Hash wird als neue Baseline übernommen und der Alert geschlossen. Mit „Verwerfen“ (dismiss) beenden Sie die Überwachung dieses Eintrags ganz — sinnvoll bei Skripten, die Sie nicht länger beobachten möchten.
# Checkout- & Formular-Integrität
Skimming zielt fast immer auf den Bezahlvorgang. Deshalb beobachtet XICTRAQ nicht nur die Skript-Hashes, sondern auch, wohin Formulare ihre Daten senden — speziell auf Checkout-Pfaden.
Neue externe Formular-Ziele
Der Scan erfasst die Ziel-Hosts aller Formulare (`results.html.sri.form_action_hosts`) sowie ob ein Checkout-Pfad erkannt wurde (`results.html.sri.checkout_path`). Taucht plötzlich ein neuer, fremder Host als Formular-Ziel auf — also ein Ziel, an das Eingaben gesendet werden, das vorher nicht da war —, ist das ein klassisches Zeichen für abfließende Zahlungsdaten. Solche Einträge erscheinen mit dem Kontext „form_action“ und lösen denselben Drift-Alert aus. Erfasst werden Formular-Ziele beim Scan der jeweiligen Seite; der Cron ruft nur die bekannten Skripte erneut ab und liest die Seite selbst nicht neu ein. Scannen Sie Ihre Checkout-Seite darum nach jeder Änderung am Bezahlvorgang.
# So sieht ein Drift-Alert aus
Hallo Demo-Team,
der SHA-256-Hash des folgenden Skripts auf www.beispiel-shop.invalid weicht von der gelernten Baseline ab:
War das ein geplantes Deployment, bestätigen Sie die Änderung als neue Baseline. Andernfalls prüfen Sie das Skript umgehend auf eingeschleusten Code.
# Verhältnis zu CSP-Reports & SRI
Skript-Integrität ist eine eigenständige Überwachungsschicht und ergänzt zwei verwandte Härtungsmaßnahmen, die im Scan- und Security-Modul leben. Die drei greifen ineinander, lösen das Problem aber an unterschiedlichen Stellen.
Subresource Integrity (SRI) — Prävention im Browser
SRI hinterlegt im HTML einen Hash (sha384-…) pro Skript; ändert der Anbieter den Inhalt, blockiert der Browser das Laden automatisch. Das ist Prävention auf Ihrer Seite. Der Security-Tab des Scans listet fehlende SRI-Absicherungen mit Domain auf. Skript-Integrität ergänzt das um Detektion: Sie merkt, wenn sich ein Skript ändert — auch dort, wo SRI (noch) nicht gesetzt ist.
CSP-Reports — was der Browser meldet
Eine Content-Security-Policy mit report-uri lässt Browser melden, wenn eine Ressource gegen die Policy verstößt (z. B. ein Skript von einem nicht erlaubten Host). XICTRAQ sammelt diese Meldungen pro Website. Das zeigt Verstöße aus echten Besucher-Browsern; Skript-Integrität dagegen prüft serverseitig den Inhalt erlaubter Skripte. Beide zusammen decken sowohl unerlaubte Quellen als auch heimliche Inhaltsänderungen ab.