Bot-Erkennung ohne CAPTCHAs: was wirklich funktioniert
Warum das Rätsel keine Verteidigung mehr ist, welche Signale an seine Stelle getreten sind und wie ein ehrliches Setup unsichtbarer Erkennung in der Praxis aussieht.
Das Rätsel hörte auf zu wirken, bevor man aufhörte, es einzusetzen
Ein CAPTCHA ist ein Test, der unterstellt, dass seine Lösung für eine Maschine teuer und für einen Menschen billig ist. Beide Hälften dieser Annahme sind gefallen.
Für Maschinen ist Lösen heute billig. Kommerzielle Solver-Dienste nehmen ein Rätsel per API entgegen und liefern das Token zurück, abgerechnet je tausend — und wer es auf Ihre Website abgesehen hat, hat diesen Posten längst im Budget. Maschinelles Sehen bewältigt die meisten Bildraster ganz ohne menschliche Hilfe.
Und für Menschen ist Lösen nicht mehr billig. Die Raster wurden genau deshalb schwerer, weil die Maschinen besser wurden — die Kosten landeten also bei Ihren Kundinnen und Kunden statt beim Angreifer. Bei einem Checkout ist diese Kostenstelle in abgebrochenen Bestellungen messbar.
Damit ist das Rätsel heute eine Steuer auf echte Nutzer, die ein entschlossener Bot für den Bruchteil eines Cents umgeht. Das ist das gesamte Argument dafür, sich woanders umzusehen.
Was an seine Stelle tritt: Signale statt Tests
Unsichtbare Erkennung verlangt von Besuchern keinen Nachweis mehr, sondern liest, was die Sitzung ohnehin verrät. Drei Schichten tragen den Großteil des Signals.
Verhalten. Wie die Sitzung mit der Seite interagiert — die Form der Zeigerbewegung, das Timing zwischen Ereignissen, wie der Fokus durch ein Formular wandert. Automatisierung erzeugt Verteilungen, die sich von menschlichen unterscheiden, und sie unterscheidet sich am stärksten dort, wo sie sich am meisten Mühe gibt, menschlich zu wirken.
Transport. Der TLS-Handshake und die HTTP/2-Settings beschreiben den Client-Stack. Ein JA3- oder JA3N-Fingerabdruck sagt Ihnen, welche Bibliothek die Verbindung aufgebaut hat, und ein Headless-Browser auf einem echten TLS-Stack meldet immer noch eine Kombination, die ein echtes Chrome unter Windows nicht erzeugt. Das ist deutlich schwerer zu fälschen als ein User-Agent-String, weil es bedeutet, den Krypto-Stack eines echten Clients nachzubilden, statt einen Header zu ändern.
Reputation. Was diese Adresse vorher getan hat — auf Ihrer Website und optional auf fremden. Eine Adresse wird nicht nur an der Sitzung gemessen, die gerade vor Ihnen liegt.
Keine Schicht genügt allein. Verhaltenssignale sind dünn bei einer Sitzung, die landet und sofort abschickt; Transport-Fingerabdrücke teilen sich alle, die dieselbe Bibliothek nutzen, auch die legitimen; Reputation ist beim ersten Auftauchen einer Adresse leer. Das Verdict entsteht aus der Kombination.
Die Fehlermodi, die man kennen sollte
Jede ehrliche Beschreibung unsichtbarer Erkennung nennt auch, wo sie danebenliegt — denn diese Fehler sind leiser als die eines CAPTCHAs und daher leichter zu übersehen.
- Datenschutzbewusste echte Nutzer wirken automatisiert. Wer über ein abgeschottetes Browser-Setup und ein VPN kommt, erzeugt dünne Verhaltenssignale und einen ungewöhnlichen Fingerabdruck. Dafür gibt es Ihre Allow-Liste, und die muss tatsächlich gepflegt werden.
- Geteilte Ausgangsadressen. Firmen-NAT, Mobilfunk-CGNAT und VPN-Ausgänge bringen Tausende unbeteiligter Menschen hinter eine Adresse. Reputation auf solchen Adressen muss anders gewichtet werden, sonst sperren Sie ein Unternehmen aus, weil eine Person in dessen Netz einen Scraper laufen ließ.
- Gute Bots, die schlecht aussehen. Der Webhook-Retry Ihres Zahlungsdienstleisters, Ihr Uptime-Monitor, die Integration eines Partners — alle automatisiert, alle notwendig. Sie gehören auf die Allow-Liste, bevor die Durchsetzung angeht, nicht nachdem jemand einen Ausfall meldet.
- Das erste Auftauchen. Eine brandneue Adresse hat keine Historie. Genau dafür gibt es eine geteilte Sperrliste — und deshalb ist ein System, das nur Reputation und keine Sitzungsanalyse macht, am ersten Tag schwach.
- Stilles Abdriften. Ein kaputtes CAPTCHA ist laut. Ein Detektor, der ein neues Bot-Muster still durchzulassen begonnen hat, sieht aus wie eine ruhige Woche. Beobachten Sie die Sperrrate im Verhältnis zum Traffic, nicht nur die Uptime im Dashboard.
Wie ein belastbares Setup aussieht
Geordnet danach, wie stark jeder Schritt das Ergebnis bestimmt.
Beginnen Sie im Beobachtungsmodus. Lassen Sie die Erkennung mit ausgeschalteter Durchsetzung lange genug laufen, um einen vollen Wochenzyklus zu sehen, inklusive Ihrer ruhigsten Nacht und Ihrer stärksten Aktion. Sie suchen nach Verdicts, die dem widersprechen, was Sie bereits sicher wissen.
Füllen Sie die Allow-Liste, bevor Sie durchsetzen, nicht danach. Zahlungs-Webhooks, Monitoring, Partner-Integrationen, Ihre eigenen Büro-Netze, die Crawler, von denen Sie indexiert werden wollen. Das ist der Schritt, den man überspringt und dann um drei Uhr nachts entdeckt.
Setzen Sie am Gateway durch, nicht in der Seite. Eine in JavaScript angewandte Entscheidung ist eine Entscheidung, die ein Angreifer überspringen kann. Durchsetzung gehört dorthin, wo der Request ausgeliefert wird.
Bei der Plattform fail open, bei Ihren eigenen Regeln fail closed. Ist der Verdict-Dienst nicht erreichbar, soll Traffic fließen — ein Ausfall, der Ihre Website mitnimmt, ist schlimmer als ein Bot, der durchkommt. Ihre eigene Deny-Liste ist etwas anderes: Sie ist Ihre ausdrückliche Anweisung und sollte überleben.
Halten Sie Verdicts erklärbar. Wenn jemand eine Sperre bestreitet, müssen Sie sehen, welche Signale sie erzeugt haben. Ein System, das nur eine Zahl zurückgibt, lässt Sie einer Kundin gegenüber sprachlos zurück.
Wo Karma steht
Karma ist dieses Design als Produkt: ein asynchrones Snippet, Verhaltens- und Transportsignale über TLS an einen Collector, ein Verdict gegen Ihre eigene mandantenbezogene Reputationsbasis und — falls Sie es aktivieren — eine geteilte Sperrliste aus dem, was andere Mandanten gesehen haben.
Die Durchsetzung passiert an Ihrem Gateway, und Entscheidungen werden lokal zwischengespeichert, sodass ein Ausfall des Collectors Ihre Website nicht mitnehmen kann. Ihre Allow- und Deny-Listen stehen immer über dem Verdict der Plattform.
Der kostenlose Detect-Tarif ist der Beobachtungsmodus: dauerhaft 25.000 Verdicts pro Monat, ohne Karte und ohne Durchsetzung. Das ist genau das oben beschriebene Setup, und es ist der richtige Anfang, unabhängig davon, wofür Sie sich am Ende entscheiden.