Hallo zusammen,
es ist schön, wie sich diese Kommunikation zwischenzeitlich entwickelt hat. Wir von zitro
Hosting möchten Euch an auch an unseren Erkenntnissen teilhaben lassen, da wir bei uns zwischenzeitlich schon das Botnetz auf ca. 200.000 IP-Adressen identifizieren konnten. Bilder und Skripte werden übrigens von dem Botnetz nicht geladen - wir vermuten aktuell, dass es das Botnetz auf die Artikelbeschreibungen und die Preise abgesehen hat
Zusammenfassend die Best-Practices für Eure Shops, die hier in den Posts einzeln schon erwähnt wurden, aber man sollte den Schutz gesamtheitlich aufbauen:
1.) Wie am Anfang von
@css-umsetzung schon erwähnt, benötigt Ihr die IP-Tables-Filters. Die Regeln von
@css-umsetzung oder
@Stephs182 sind für den Anfang gut und werden auch funktionieren, allerdings muss der failregex angepasst werden, da er den Suchstring auch im Request sucht und sich nicht auf den User Agent beschränkt. Wenn ein
Shop eine Artikel-URL benutzt, wo ein Teil von den Suchstrings vorkommt, dann werden auch legitime Requests geblockt. Daher besser:
Code:
failregex = ^<HOST> -.*"(GET|POST|HEAD).*HTTP\/\d+\.\d+" .* ".*" ".*(?:%(badbots)s|%(badbotscustom)s).*"$
Für die, die nicht so tief in der Materie stecken: zum Testen der Suchstrings lassen sich gut Online-Regex-Tester verwenden oder per Terminal über fail2ban-client.
Wir werden nächste Woche hier mal eine vollständige Liste der Suchstrings für die Bad-Bots publizieren. Wir nutzen aktuell eine Liste von ca. 250 Strings.
Zu der Frage nach den Suchzeiträumen von
@JTL_Fan : Wenn ihr keine chinesischen Kunden habt, nehmt für beides: 604800
Leider wechselt das Botnetz für jeden Request die IP-Adresse, sobald ein Request durch fail2ban ins Leere läuft. Durch fail2ban und den wechselnden IP-Adressen geht die Last nicht zwangsweise zurück, sondern kann sogar noch stark zunehmen (das haben wir bei einigen Kunden beobachten können), was dann zu Punkt 2 führt:
2.)
Zusätzlich zu fail2ban benötigt man auch den Schutz über die htaccess (es reicht der Schutz von
@akBenutzer - wer es ganz schick haben möchte, leitet auf eine Webseite um, wo der "Kunde" über die Sperrung seiner IP-Adresse informiert wird).
Wie hier schon einmal kurz in dem Post von
@lj-shadow erwähnt, blockiert fail2ban erst ab dem zweiten Request, da es die IP-Adresse erst aus den Apache-Logs extrahieren muss. D.h. der erste Request wird bei einem reinen fail2ban-Schutz immer abgearbeitet, was den htaccess-Schutz für den ersten Request notwendig macht.
Theoretisch reicht ein purer htaccess-Schutz (oder PHP basierten Schutz) für alle, die bspw. keinen fail2ban zur Verfügung haben, aber dann wird jeder Request an den Webserver weitergegeben und im Falle eines PHP-Skriptes wird der PHP-Interpreter noch belastet. Dies ist unperformanter als im Vergleich zu iptables: iptables vergleicht die Adressen über einen binären Suchbaum und benötigt egal wie viele IP-Adressen man in der Liste hat nur max. 32 bitweise Vergleiche, um zu entscheiden, ob eine Adresse blockiert werden soll.
3.) Bitte
never ever:
Bei der Lösung des Problems kann ich helfen. Ich biete einen Service an, der Bad Bots erkennt und automatisch über sperrt, z.B. über die Cloudflare-Firewall.
Routet bitte nicht Euren Traffic über andere Dienstleister aus dem Ausland oder andere Anbieter im Inland. Denkt bitte an die DSGVO und wie Ihr Eure Kunden darüber informieren möchtet, dass der Verkehr gerade einmal ins Ausland und zurück geschickt wird. Fragt lieber Euren Hoster nach solchen Lösungen. Hoster haben i.d.R. auch ein großes Interesse daran Euch maßgeschneiderte Lösungen anzubieten. Dort bekommt Ihr dann alles aus einer Hand und die Sicherheit der Kundendaten ist über deren Auftragsdatenverarbeitungsvertrag geregelt. Wenn es bei einem Hoster nicht klappt, gibt es genügend andere...
4.) Zusätzlich blockieren wir eine Liste von bekannten bösartigen IP-Adressen aus verschiedenen Quellen, was mich zum nächsten Punkt bringt:
Wir beabsichtigen nächste Woche einen Dienst bereitzustellen, wo Ihr die aktuell ca. 200.000 und stetig steigenden IP-Adressen aus dem Botnetz über eine RESTful-API kostenfrei laden könnt, um Euren fail2ban-filter zu trainieren. Eine Anbindung an fail2ban werden wir hier auch posten. Wenn Ihr Eure gefundenen IP-Adressen automatisch über fail2ban über unseren Dienst mit den anderen betroffenen teilen wollt, dann könnt Ihr über eine
PM an mich einen Accesstoken erhalten. Accesstoken und Schnittstelle kommen dann vrstl. Ende der kommenden Woche. Um die Datenschutzfrage vorweg zu nehmen: Wir haben mit dem Datenschutzbeauftragten des Land NRW abgeklärt, dass in Anwendungen zum Schutz von IT-Systemen, die IP-Adressen so lange aufbewahrt werden dürfen, wie diese zum Schutz der Systeme benötigt werden.
So far, seid wachsam
Tom