Kartendiebstahl im Checkout: Formjacking und Magecart
Der Shop funktioniert. Bestellungen kommen herein, die Bank zahlt aus, nichts sieht falsch aus. Und seit Wochen oder Monaten sammelt jemand anderes die Kartendaten Ihrer Kunden.
Was es ist
Formjacking ist der Diebstahl dessen, was ein Kunde in ein Zahlungsformular eingibt. Magecart ist der Name für die Gruppen, die das seit Mitte der 2010er-Jahre bei Onlineshops tun, zuerst bei Magento und dann auf jeder Plattform.
Der Angriff macht den Shop nicht kaputt, denn ein kaputter Shop wird repariert. Er ändert eine Kleinigkeit im Zahlungsweg und lässt alles andere in Ruhe.
Die vier Wege
1. Die Zahlungsadresse wird geändert
Ihr Shop schickt den Kunden zur Zahlungsseite der Bank. Der Angreifer ändert diese Adresse auf eine eigene Seite, die gleich aussieht, oft auf einer Domain, die sich nur um einen Buchstaben von der echten unterscheidet. Der Kunde gibt dort die Karte ein und wird dann zur echten Bankseite weitergeleitet, wo die Zahlung normal abgeschlossen wird. Der Kunde glaubt, er habe sie zweimal eingegeben. Sie sehen eine bezahlte Bestellung.
2. Code wird in die Checkout-Seite eingefügt
Wenige Zeilen werden in eine Checkout-Datei oder ein Template Ihres Shops eingefügt. Sie kopieren alles, was in die Kartenfelder getippt wird, und senden es woandershin, während das Formular wie gewohnt weiterarbeitet.
3. Die Zahlungseinstellungen werden geändert
In den Dateien ändert sich nichts. Der Angreifer ändert die Adresse des Zahlungsgateways oder die Händlerdaten in der Datenbank des Shops, über den Adminbereich oder direkt.
4. Das Skript eines Dritten wird geändert
Ihr Checkout lädt ein Skript eines anderen Unternehmens, etwa ein Chat- oder Statistikwerkzeug. Dieses Unternehmen wird gehackt und das Skript wird auf dessen Server verändert. In Ihrem Shop hat sich nichts geändert.
Zwei Fälle, die öffentlich wurden
- British Airways, 2018. Code, der in die Zahlungsseite der Fluggesellschaft eingefügt wurde, sammelte Kartendaten von Kunden. 2020 verhängte die britische Datenschutzbehörde ein Bußgeld von 20 Millionen Pfund.
- Ticketmaster UK, 2018. Der Code kam über ein Chat-Werkzeug eines Dritten auf der Zahlungsseite. 2020 verhängte dieselbe Behörde ein Bußgeld von 1,25 Millionen Pfund.
Große Unternehmen kommen in die Nachrichten. Dieselbe Methode wird jeden Tag bei kleinen Shops angewendet, wo niemand hinsieht.
Warum gewöhnliche Werkzeuge es übersehen
- Der Virenschutz sucht bekannten Schadcode. Eine geänderte Webadresse ist kein Virus.
- Die Firewall blockiert verdächtigen Verkehr. Ist der Angreifer mit einem gestohlenen Passwort drin, sieht die Änderung wie normale Arbeit aus.
- Der externe Scan, auch der vierteljährliche PCI-Scan, betrachtet den Server von außen. Von außen sieht der Shop gut aus.
- Sie sehen Bestellungen, die bezahlt werden.
Wie Shops es meist erfahren
- Die Bank oder der Kartenabwickler teilt ihnen mit, dass Karten, die in ihrem Shop benutzt wurden, später für Betrug verwendet wurden.
- Kunden schreiben, dass sie zweimal nach ihrer Karte gefragt wurden oder Abbuchungen sehen, die sie nicht kennen.
- Sie erfahren es gar nicht.
Bis dahin ist die Änderung meist schon lange aktiv. Es folgen eine Untersuchung, eine mögliche Sperre der Kartenzahlungen und die Frage, ob Kunden und Datenschutzbehörde informiert werden müssen.
Was HachiGuard jeweils tut
Wird bei der nächsten Prüfung erkannt. Die saubere Datei wird automatisch zurückgesetzt und Sie werden informiert.
Wird erkannt: Jede Änderung an einer Checkout-Datei wird gemeldet, und bekannte Diebstahlmuster lösen eine kritische Warnung aus. Automatisch wiederhergestellt wird, wenn die Änderung ein unbekanntes Ziel hinzufügt.
Wird erkannt und als kritisch gemeldet, wenn eine unbekannte Adresse auftaucht. Einstellungen werden nicht automatisch zurückgeändert.
Teilweise abgedeckt. Unsere Außenprüfung bemerkt eine neue Domain eines Dritten auf Ihren öffentlichen Seiten. Eine Änderung in einem bereits vorhandenen Skript, auf dem Server des Dritten, wird nicht erkannt.
Was Sie sonst noch tun sollten
- Halten Sie die Plattform und ihre Erweiterungen aktuell.
- Geben Sie jedem Administrator ein eigenes Konto mit starkem Passwort und zweistufiger Anmeldung, wo die Plattform sie anbietet. Entfernen Sie Konten, die niemand nutzt.
- Schicken Sie den Kunden, wo es geht, zur Zahlungsseite der Bank selbst, statt die Karte in Ihrem Shop entgegenzunehmen.
- Laden Sie im Checkout so wenige Skripte Dritter wie möglich.