Cybersecurity

Browser sind kompliziert, und das ist dein Vorteil

Wie du einen Bot am Verhalten erkennst

Wie du einen Bot am Verhalten erkennst

Ein Angreifer kann fast alles fälschen. Den Browser, den er vorgibt zu sein. Die Sprache, die er angeblich spricht. Die Seite, von der er angeblich kam. Eine Sache kann er nur schwer fälschen: sich wie ein echter Browser zu verhalten. Und genau das ist dein Vorteil.

Ein moderner Browser ist ein kompliziertes Stück Software. Er lädt nicht einfach eine Seite. Er lädt die Seite, dann das Stylesheet, dann die Skripte, die Bilder, die Schriften, alles in einer bestimmten, typischen Choreografie. Ein Skript, das nur schnell an ein Ziel will, macht das nicht. Und dieser Unterschied ist lesbar.

Was ein echter Browser tut

Wenn ein Mensch deine Seite besucht, löst er eine ganze Kaskade aus. Zuerst kommt die HTML-Seite. Dann holt der Browser alles nach, was darin verlinkt ist. Das CSS für die Gestaltung, das JavaScript für die Funktion, die Bilder, die Schriftarten.

Das Interessante ist die Reihenfolge im Logfile. Sie sieht manchmal aus, als liefe die Zeit rückwärts. Die kleine Grafik erscheint vor der Seite, die sie eingebettet hat. Das ist kein Fehler. Die dynamische Seite braucht länger zum Berechnen, also sind die statischen Dateien schneller fertig und stehen früher im Log. Dieses Durcheinander ist normal, und es ist schwer zu fälschen, weil es aus dem Zusammenspiel vieler Teile entsteht.

Was ein Bot tut

Ein Bot will ans Ziel. Er lädt die eine Seite, die ihn interessiert, und sonst nichts. Kein CSS, keine Bilder, kein JavaScript. Warum auch, er will ja nichts ansehen, er will etwas tun. Und er ist schnell. Oft zu schnell für einen Menschen.

Aus jahrelanger Beobachtung lässt sich das in Zahlen fassen. Die folgende Tabelle stammt aus 2017 und taugt bis heute als Denkbild, auch wenn die genauen Werte sich verschoben haben.

MerkmalMenschHackerBot
Zeit bis zur abgeschickten Anmeldung4 Min 15 Sek35 Sek1 Sek
geladene eingebettete Inhalte50200
Seitenaufrufe vorher521

Zwei Dinge fallen auf. Der Bot lädt nichts nach und ist irrsinnig schnell. Und der Hacker liegt dazwischen. Er ist schneller und zielgerichteter als ein Kunde, aber gründlicher als ein dummer Bot. Diese mittlere Signatur ist ein eigener Wert. Wer nur nach „ganz schnell, nichts geladen“ filtert, sieht den menschlichen Angreifer nicht.

Die Grenzfälle gehören dazu

Damit das Modell ehrlich bleibt, muss man seine Ausnahmen kennen.

Ein Entwickler oder Power-User kennt deine Seite auswendig und bewegt sich fast so schnell wie ein Bot. Ein Bot lässt sich absichtlich langsam machen, um wie ein Mensch zu wirken. Und ein Besucher mit Werbeblocker oder abgeschaltetem JavaScript lädt weniger als der Durchschnitt, ganz ohne böse Absicht.

Deshalb gilt hier dasselbe wie bei jedem einzelnen Signal: Das Verhalten ist ein starker Hinweis, aber kein Urteil für sich. Es zählt im Verbund mit allem anderen.

Wofür das praktisch taugt

Ein paar Situationen, in denen dieser Blick sofort hilft.

Kommentar-Spam erkennst du am Tempo. Vier Sekunden zwischen dem Aufruf einer Seite und dem abgeschickten Kommentar. Kein Mensch liest einen Beitrag, tippt eine Antwort und schickt sie in vier Sekunden ab. So einen Kommentar sperrst du nicht blind, du legst ihn einem Moderator vor.

Scraping erkennst du daran, was jemand lädt. Holt sich ein Besucher nur deine Texte oder nur deine Bilder, aber nichts drumherum, dann wird dein Inhalt gerade irgendwo anders gespiegelt.

Und wenn bei einem eingeloggten Nutzer plötzlich die eingebetteten Inhalte fehlen, die vorher immer kamen, dann kann jemand in der Verbindung sitzen und mitlesen.

Was sich seit 2017 verändert hat

Jetzt der ehrliche Teil, denn die Bot-Welt hat sich stark gewandelt.

Die einfache Regel „Bots laden kein CSS und keine Bilder“ trägt nicht mehr allein. Moderne Bots benutzen echte Browser-Engines. Werkzeuge wie Playwright oder ein Chrome im Headless-Modus laden Stylesheets, Bilder und Skripte genau wie ein Mensch. Das Ladeverhalten sieht dann sauber aus. Die alte Signatur greift ins Leere.

Dafür sind neue Signale dazugekommen. Der TLS-Fingerabdruck, den ich im letzten Teil beschrieben habe. Die Art, wie eine Maschine Grafik zeichnet, das sogenannte Canvas- und WebGL-Fingerprinting. Und Verhaltensbiometrie, also die Frage, wie sich Maus, Scrollrad und Tipprhythmus bewegen. Ein Mensch bewegt die Maus nie in einer perfekt geraden Linie. Ein Skript oft schon.

Auch die CAPTCHAs haben sich verändert. 2017 waren das verzerrte Buchstaben in einer Grafik. Heute laufen sie unsichtbar im Hintergrund, reCAPTCHA oder Cloudflare Turnstile bewerten das Verhalten, statt ein Rätsel zu stellen. Die Ironie dabei: Es gibt längst Dienste, die diese Rätsel mit KI schneller lösen als jeder Mensch.

Der rote Faden aber bleibt. Je aufwendiger ein Angreifer einen echten Browser imitieren muss, desto teurer wird sein Angriff. Der Verteidiger gewinnt durch Komplexität. Nur die Ebene hat sich verschoben, vom Ladeverhalten hin zum Fingerabdruck und zur Biometrie.

Und eine neue Frage steht im Raum, größer als alles davor. Was passiert, wenn der Bot kein simples Skript mehr ist, sondern ein Sprachmodell, das sich wirklich wie ein Mensch verhält? Darum geht es in einem eigenen Teil dieser Reihe.

Zum Mitnehmen

Header lassen sich fälschen, Verhalten nur schwer. Ein Bot kann behaupten, ein Browser zu sein, aber er verrät sich daran, wie er sich bewegt, was er lädt und wie schnell er ist.

Das alles nützt dir nur unter einer Bedingung. Du musst es aufzeichnen. Ohne Logs siehst du weder das Tempo noch die fehlenden Bilder noch das Muster. Und genau da haben erstaunlich viele Firmen eine Lücke. Warum „Wir hatten noch nie einen Vorfall“ der gefährlichste Satz in der IT-Sicherheit ist, darum geht es als Nächstes.

Weiterführend in dieser Reihe

Zurück: Warum IP-Adressen sperren dir nichts bringt · Weiter: Wenn der Angreifer ein LLM ist