Wie der Schutz wirkt
Der Schutz arbeitet auf zwei Ebenen, die sich ergänzen.
Die Sitzungsebene allein reicht nicht aus. Ein automatisierter Angriff holt sich einfach eine neue Sitzung und zählt von vorn. Erst die IP-Ebene setzt dem eine Grenze, weil sie über Sitzungsgrenzen hinweg zählt.
Gesperrt wird immer nur die einzelne Zahlungsart, nie der Bestellvorgang. Wer versehentlich mehrfach eine falsche Kartennummer eingegeben hat, kann seine Bestellung weiterhin abschließen, nur eben beispielsweise per Rechnung oder Vorkasse. Das ist der Grund, warum die Hinweismeldungen im Template den Käufer ausdrücklich auf die anderen Zahlungsarten hinweisen sollten.
Zusätzlich lässt sich ab einer bestimmten Anzahl von Fehlversuchen ein CAPTCHA erzwingen. Das ist die mildere Stufe: Der Käufer wird nicht ausgesperrt, muss aber nachweisen, dass er keine Maschine ist.
Schritt 1: Den Schutz in der global.config einrichten
Der Schutz wird im Abschnitt <PaymentBruteForceProtection> der global.config eingerichtet, nicht in der shop.config.
Referenz: Zahlungsarten und ihre Codes
Die Sperrstufen schreiben
Beide Sperrlisten haben dasselbe Format. Jede Stufe steht in einem eigenen Klammerpaar, davor die Zahl der Fehlversuche, dahinter die Sperrzeit in Sekunden.BlockTimesPerIP-ObservationWindowInMinutes, das auf 2880 Minuten begrenzt ist.
Das Beobachtungsfenster
BlockTimesPerIP-ObservationWindowInMinutes legt fest, wie weit der Shop beim Zählen der Fehlversuche einer IP-Adresse zurückschaut. Bei 60 zählen nur die Fehlversuche der letzten Stunde.
Ein kurzes Fenster verzeiht schnell und trifft geteilte Anschlüsse seltener. Ein langes Fenster erkennt auch langsame, über Stunden verteilte Angriffe. Fangen Sie eher mit einer Stunde an und verlängern Sie erst, wenn Sie einen verteilten Angriff tatsächlich beobachten.
Das CAPTCHA
ForceCaptchaAfterXAttempts legt fest, ab wie vielen Fehlversuchen der Käufer ein CAPTCHA lösen muss. UseCaptcha bestimmt den Dienst.
CaptchaErrorHandling = fail-open bestimmt, was passiert, wenn der CAPTCHA-Dienst selbst nicht erreichbar ist. Mit fail-open lässt der Shop den Käufer in diesem Fall durch. Das hält Ihren Shop bestellbar, wenn ein externer Dienst ausfällt, öffnet aber genau in diesem Moment die Tür. Ohne diesen Wert wird ein nicht prüfbares CAPTCHA als nicht bestanden gewertet.
Schritt 2: Die Hinweismeldungen ins Template einbauen
Ergänzen Sie das Template der Bestellübersichtsseite, üblicherweisews_place_order.htm, um die folgenden Meldungen. Sie gehören außerhalb des Formulars der Bestellübersicht.
PBP-Tags beziehen sich immer auf die gerade gewählte Zahlungsart. ~WS-Payment~ in den Meldungen benennt deshalb genau die Zahlungsart, um die es geht. Ein zweiter Block für eine andere Zahlungsart ist nicht nötig.
Schritt 3: Den Schutz testen
Sie können eine fehlgeschlagene Zahlung simulieren, ohne eine echte Zahlung auszulösen. Hängen Sie dazu an einen beliebigen Shop-Aufruf die beiden URL-Parametertest=on und order-failed=on an.
Was der Schutz nicht leistet
Der Schutz zählt Fehlversuche, er bewertet sie nicht. Er unterscheidet nicht zwischen einem Angreifer und einem Käufer, der seine Karte dreimal falsch abgetippt hat. Setzen Sie die Schwellen deshalb nicht zu niedrig an. Drei bis fünf Fehlversuche bis zum CAPTCHA und deutlich mehr bis zur ersten Sperre sind ein brauchbarer Anfang. Ein verteilter Angriff über viele verschiedene IP-Adressen läuft an der IP-Ebene vorbei. Der Schutz erschwert automatisierte Angriffe erheblich, ersetzt aber nicht die Betrugserkennung Ihres Zahlungsdienstleisters.Verwandte Themen
- Wegweiser: Sicherheitshinweis bei Online-Zahlungsarten
- Wegweiser: Kreditkarte
- Wegweiser: Bestellübersicht, für das Template
ws_place_order.htm
