Ein Interessent fragte uns neulich, ob wir eine Blacklist von Abusern hätten. Sein Shop war von einem Bot aus dem Verkehr gezogen worden, immer dieselbe IP, und hinterher stand sie angeblich auf irgendeiner Liste. Die Frage ist berechtigt. Die Antwort war unbequemer, als wir dachten.
Wir haben Reputationslisten eingebaut. Und dann nachgemessen, was sie tatsächlich leisten.
Die Messung
24 Stunden Verkehr über unsere Edge-Flotte. Jede Quelle, die in dieser Zeit mit 403, 421 oder 429 abgewiesen wurde, mindestens fünfmal, abzüglich unserer eigenen Netze, der Monitoring-Prober und der bekannten Suchmaschinen-Crawler. Ergebnis: die tatsächlich angreifenden Quellen.
Diese haben wir gegen die gebräuchlichen Listen gehalten. Nicht geschätzt, nicht aus Datenblättern abgeschrieben, sondern IP für IP geprüft.
Gut ein Drittel davon fanden wir in öffentlichen Reputationsquellen wieder. Die übrigen zwei Drittel standen in keiner davon. Auch der lauteste Angreifer des Tages, eine einzige Adresse mit einer Dauerflut von Requests, gehörte dazu.
Warum das zu erwarten war
Die Listen tun genau das, wofür sie gemacht sind. Sie sagen nur etwas anderes, als man beim Wort „Blacklist“ erwartet.
Die eine Sorte beschreibt ganze Netze: Adressbereiche, die komplett kriminell kontrolliert oder gehijackt sind. Das ist über Monate stabil und praktisch fehlerfrei, deshalb darf man darauf hart blocken. Es sagt aber nichts über den Mietserver, den jemand heute für zwanzig Euro gebucht hat.
Die andere Sorte beschreibt beobachtetes Verhalten: wer in den letzten 48 Stunden bei jemand anderem aufgefallen ist. Näher dran, aber die Adressen rotieren, sitzen hinter NAT, und was dort steht, hat jemand anderes gesehen, nicht Sie.
Jeder Listenanbieter sieht nur durch sein eigenes Sensornetz, seine eigenen Honeypots. Die Listen decken deshalb nicht dasselbe ab, und in Summe nicht das vollständige Fehlverhalten, das wir auf unseren eigenen Edges sehen.
Warum wir jede Reputationsliste nachfiltern
Beim ersten Abgleich fielen uns hunderte Adressen auf, die man auf keinen Fall blocken darf: der Großteil ein einzelner SEO-Crawler, dazu einzelne von großen Suchmaschinen. Das ist nachvollziehbar: wer fail2ban laufen lässt und einen Crawler in sein Rate-Limit rennen sieht, meldet ihn.
Deshalb übernehmen wir keine Liste, wie sie kommt: ein Abgleich gegen die bekannten Crawler-Netze, unsere eigenen Adressen und die Monitoring-Prober entfernt solche Einträge, bevor eine Liste überhaupt auf einen Edge gelangt. Das ist keine Kleinigkeit, sondern der Unterschied zwischen Schutz und Sichtbarkeitsverlust.
Was wir daraus gebaut haben
Zwei getrennte Stufen, weil die Quellen Verschiedenes behaupten.
Ganze, durchgehend bösartige Netze blocken wir hart. 403, saubere Fehlerseite, fertig.
Beobachtetes Verhalten darf Reibung erzeugen, nicht mehr: eine Proof-of-Work-Challenge. Ein Browser rechnet zwei Sekunden und merkt nichts. Ein Scraper ohne JavaScript-Engine kommt nicht weiter. Rotierende Adressen hinter NAT hart zu blocken wäre fahrlässig, irgendwann sitzt dort ein echter Kunde.
Und darunter läuft weiter, was schon immer lief: Rate-Limits pro IP und pro Pfad, TLS-Fingerprinting, WAF. Wer die Challenge löst, bekommt keinen Freifahrtschein.
Die zwei Drittel
Bleibt der größere Teil. Diese Quellen, die keine Liste kennt, waren fast ausnahmslos gemietete Rechner, von großen Public-Cloud-Anbietern bis zu kleineren Hostern. Und genau von dort sehen wir die meisten Angriffe: kurz gebucht, einmal benutzt, wieder weg. Kein Botnetz, keine Vorgeschichte, keine Reputation, genau die Klasse aus der Eingangsfrage. Zum Zeitpunkt des Angriffs für jede Fremdliste unsichtbar.
Sichtbar sind sie nur für den, bei dem sie gerade zuschlagen. Und da liegt der Punkt: Wir betreiben die Edges für alle unsere Kunden. Wer bei einem von ihnen dreschen lässt, tut das in aller Regel kurz darauf beim nächsten, mit demselben Werkzeug, demselben TLS-Fingerprint, denselben Pfadmustern.
Daraus bauen wir gerade eine eigene Liste. Nicht aus Statuscodes: wer stumpf zählt, wer 403 kassiert, sperrt als Erstes sein eigenes Monitoring und die Suchmaschinen; das haben wir in denselben Daten gesehen. Sondern aus Signalen, die Absicht zeigen: Challenges, die dutzendfach abgeholt und nie beantwortet werden. Fremde Hostnamen auf unserer Anycast-Adresse. Anfragen nach /wp-login.php auf Diensten ohne WordPress. Derselbe Fingerprint bei mehreren Kunden im selben Zeitfenster.
Das ist der eine Datensatz, den kein Anbieter kaufen kann und den kein Feed liefert. Er entsteht nur, wenn man genug Verkehr selbst sieht.
Und weil genau diese gemieteten Ressourcen kurzlebig sind, heute gebucht, in ein paar Tagen wieder frei, bekommt jeder Eintrag bei uns ein Verfallsdatum. Bleibt eine Adresse ruhig, fällt sie von selbst wieder aus der Liste. So blockieren wir nicht den nächsten, der zufällig dieselbe IP mietet.
Was das für Sie heißt
Wenn Ihnen jemand Schutz über Blacklists verkauft, fragen Sie nach der Abdeckung, gemessen an Ihrem Verkehr, nicht an der Größe der Liste. Ein Feed mit zehntausenden Adressen klingt beeindruckend und erwischt trotzdem nur jeden sechsten Angreifer.
Reputationslisten sind die billige erste Schicht. Sie kosten fast nichts und räumen Scanner- und Brute-Force-Rauschen weg. Erst unsere Nachfilterung sorgt dafür, dass sie sauber laufen und nicht die Crawler oder das eigene Monitoring mitreißen. Aber sie sind nicht die Antwort auf den Bot, der Ihre Datenbank lahmlegt. Die Antwort darauf ist, sein Verhalten zu erkennen, und dafür muss man es sehen.