Formjacking ist ein Angriff, bei dem Kriminelle bösartiges JavaScript in Bestell- oder Anmeldeformulare einer Website einschleusen, um Kartendaten und andere Eingaben direkt beim Tippen abzugreifen.
Wie Formjacking funktioniert
Zuerst bringen die Angreifer ihren Code auf die Zielseite – entweder, indem sie die Website selbst hacken, oft eine verwundbare E-Commerce-Plattform wie Magento, oder indem sie ein Skript eines Drittanbieters kompromittieren, das die Seite lädt, etwa für Analytics, ein Chat-Widget oder ein Zahlungs-Plug-in. Das eingeschleuste JavaScript überwacht Formularfelder oder den Absende-Button, kopiert Kartennummern, Ablaufdaten, CVV-Codes und Adressen und schickt sie an einen Server der Angreifer, oft auf einer Domain, die wie ein legitimer Analytics-Dienst aussieht. Der Kauf wird normal abgeschlossen, sodass weder Kunde noch Shop etwas bemerken. Die gestohlenen Daten landen auf Carding-Marktplätzen.
Die Gruppen hinter solchen Angriffen werden zusammenfassend als Magecart bezeichnet, nach ihrem frühen Fokus auf Magento-Shops.
Warum Formjacking gefährlich ist
- British Airways (2018) – ein manipuliertes Skript auf Website und App erfasste Zahlungsdaten Hunderttausender Kunden; die britische Datenschutzbehörde verhängte später ein Bußgeld von 20 Millionen Pfund.
- Ticketmaster (2018) – Daten wurden über einen kompromittierten Kundenservice-Chatbot eines Drittanbieters gestohlen, ein typischer Supply-Chain-Angriff.
- Newegg (2018) – Kartendaten wurden rund einen Monat lang auf der Checkout-Seite abgegriffen.
Wie man sich vor Formjacking schützt
- Eine strikte Content Security Policy einsetzen, die festlegt, woher Skripte geladen werden und wohin sie Daten senden dürfen.
- Skripte von Drittanbietern mit Subresource-Integrity-Hashes (SRI) absichern und ihre Zahl auf Zahlungsseiten minimieren.
- Checkout-Seiten auf Skriptänderungen überwachen; PCI DSS 4.0 verlangt ein Inventar und Integritätsprüfungen für Skripte auf Zahlungsseiten.
- E-Commerce-Plattformen und Plug-ins patchen und Admin-Konten mit MFA schützen.