In der heutigen digitalen Welt ist der Schutz von Webseiten vor automatisierten Zugriffen durch Bots immer wichtiger geworden. Eine prominente Lösung im Bereich Web Application Firewall (WAF) und Bot-Schutz ist Datadome, das mit seinem Captcha-System und vielfältigen Erkennungsmethoden auch hochkomplexe Angriffe abwehren soll. Datadome verspricht dabei nicht nur die Unterscheidung zwischen Mensch und Bot, sondern vor allem die Einschätzung der Absicht hinter jeder Anfrage, was die Erkennungsrate gegenüber klassischen statischen Systemen erhöhen soll. Beim Surfen oder Scraping geschützter Seiten stößt man häufig auf eine blockierende Seite mit dem Hinweis, JavaScript zu aktivieren und Werbeblocker zu deaktivieren. Diese Sperre markiert die Anfrage automatisch als verdächtig, meist aufgrund abweichenden Verhaltens gegenüber einem regulären Browser oder einer IP-Adresse, die zuvor auffällig geworden ist.
Das darunterliegende System konstruiert dann einen Captcha-basierten Challenge-Mechanismus, der in einem iframe geladen und dynamisch ausgeführt wird. Das Captcha selbst hat sich im Lauf der Jahre weiterentwickelt. Ursprünglich setzte Datadome auf reCAPTCHA, später kam eine Geetest-Integration hinzu, die per Schieberegler oder Audio-Challenge Menschen von Bots unterscheiden sollte. Die Audio-Option litt jedoch an geringer Vertrauenswürdigkeit, da damit generierte Cookies tendenziell einen niedrigen Vertrauenswert erhielten. Aktuell verwendet Datadome eine Kombination aus anspruchsvollen interaktiven Herausforderungen und einer Reihe von signifikanten Verhaltenssignalen, die während der Interaktion mit der Webseite gesammelt und analysiert werden.
Ein zentraler Bestandteil ist dabei der sogenannte ddCaptchaEncodedPayload. Dabei handelt es sich um ein verschlüsseltes Paket, das zahlreiche Signale enthält, welche das Nutzerverhalten detailliert beschreiben. Die Verschlüsselung erfolgt auf Basis eines mehrstufigen Prozesses, der mit einem Pseudozufallszahlengenerator (PRNG) arbeitet, der durch verschiedene Parameter initialisiert wird. Darüber hinaus werden die Daten mehrfach mit XOR-Bits kombiniert und anschließend in einem modifizierten Base64-ähnlichen Verfahren kodiert, was die Entschlüsselung ohne genaue Kenntnis dieser Algorithmen stark erschwert. Dank offener Analysen lassen sich diese Schritte jedoch nachvollziehen und teilweise automatisieren.
Auf den ersten Blick erscheint der JavaScript-Code, der im Challenge-iframe ausgeführt wird, massiv obfuskiert und komplex. Insbesondere eine besondere Art der Verschleierung von Schleifen und Switch-Anweisungen fällt auf. Statt gewöhnlicher Fallunterscheidungen basiert das System auf einer zweidimensionalen Lookup-Tabelle, die die Programmsteuerung kodiert. Diese Technik erzeugt zwar den Anschein großer Komplexität, ist aber bei näherer Betrachtung relativ leicht umkehrbar. Entwickler können durch das Nachbilden der Lookup-Tabelle im eigenen Kontrollumfeld die verschleierten Fälle zurück in lesbare Zahlenwerte übersetzen und damit die Logik schnell entschlüsseln.
Ein weiteres interessantes Merkmal ist, dass Datadome trotz hoher Finanzierungsrunden bislang keine vollständig dynamische Generierung des JavaScript-Codes pro Session implementiert hat. Stattdessen erfolgt eine tägliche Rotation der Challenge-Skripte, was das Erstellen dauerhafter Lösungen zwar erschwert, aber weit von der dynamischen Script-Generierung großer Konkurrenzprodukte entfernt ist. Dieses statische Tagesmodul macht das Archivieren und spätere Vergleichen der Skripte möglich, um signifikante Änderungen und neue Signalnamen zu identifizieren. Für zusätzliche Sicherheit wurde vor einiger Zeit eine dynamische Schlüsselbenennung für die Signalschlüssel eingeführt, die täglich neu generierte sechsstellige Zeichenketten verwendet. Diese Maßnahme setzt viele externe Lösungen außer Gefecht und zwingt sie entweder zum ständigen Aktualisieren oder zur Nutzung ressourcenintensiver Browser-basierten Ansätze.
Letztere leiden oft unter langsamen Antwortzeiten und hoher Komplexität. Neben den herkömmlichen Captchas nutzt Datadome inzwischen auch eine Form von Proof-of-Work mittels einer in WebAssembly (WASM) implementierten State Machine, die minimal Rechenleistung vom Browser abverlangt. Diese State Machine, geschrieben in Rust und in einem obfuskierten Lookup-Tabellen-Mechanismus verwandt, zwingt den Client zu aufwendigen Bitoperationen und Berechnungen. Diese „CPU-Steuer“ soll vor allem automatisierte Headless-Browser erschweren, ist jedoch problemlos reversibel und kann eigenständig ausgeführt werden. Weitere Abwehrmechanismen umfassen dynamische Hash-Challenges, bei denen verschiedene Browser-Details mittels mathematisch komplexer, aber letztlich deterministischer Bit- und XOR-Operationen in eine Prüfsumme überführt werden.
Diese mathematischen Manipulationen sind zwar umfangreich, lassen sich jedoch durch simple Skripte nachstellen und somit umgehen. Ein zentraler Punkt der Bot-Prüfung sind die Bewegungen des Nutzers auf der Seite während des Captcha-Vorgangs. Datadome erfassen und analysieren zwei Bewegungslisten: eine von Seiteneingabe bis zum Klick auf den Schieberegler (_initialCoordsList) und eine mit den tatsächlichen Schiebebewegungen (_coordsList). Aus diesen Bewegungen werden verschiedene Metriken wie Krümmung, Länge, Geradeheit und andere berechnet, die zusammengenommen ein komplexes Muster ergeben. Dieses Muster wird genutzt, um automatisierte Eingaben zu erkennen und auszuschließen.
Die strengen Prüfungen machen das Nachahmen menschlicher Bewegungen mit einfachen Skripten nahezu unmöglich. Für Entwickler gibt es Tools zur Visualisierung dieser Bewegungen, die helfen, eigene Muster an das menschliche Verhalten anzupassen. Die Kenntnis dieser technischen Details und die Analyse von Obfuskation, Verschlüsselung, Ablauf und Signalen ermöglichen es spezialisierten Entwicklern, die Datadome-Schutzmechanismen mit Requests-basierten Lösungen zu umgehen. Browser-basierte Ansätze sind zwar möglich, aber aufwändig, ressourcenfressend und erfordern ständige Wartung und Anpassung bei Updates. Im praktischen Prozess bedeutet dies, dass aus der initialen gesperrten Seite die Challenge-URL ermittelt wird und diese anschließend geladen wird.
Aus der Challenge-Seite werden dann die nötigen Signale extrahiert und, nachdem das Captcha gelöst und die Bewegungsprofile emuliert wurden, in einem verschlüsselten Payload zum Server geschickt. Nach erfolgreichem Abschluss erhält der Client einen gültigen Cookie, der den Schutzmechanismus für folgende Anfragen umgeht. Zusammenfassend lässt sich sagen, dass Datadome mit einem intelligenten Mix aus Captcha-Varianten, Verhaltensanalyse, verschlüsselten Signalen, Proof-of-Work und dynamisch rotierenden Scripts einen ziemlich komplexen Schutz vor Bots bietet. Dennoch sind die zahlreichen technischen Schwachstellen in der Implementierung, beispielsweise die mangelnde Script-Dynamik oder fehlende Integritätsprüfungen, Türöffner für spezialisierte Umgehungsmethoden. Der Markt verlangt aufgrund der starken Durchdringung von Datadome nach zuverlässigen Bypass-Lösungen, die auch ohne vollautomatische Browser funktionieren.
Hier positionieren sich Services und APIs, die das Know-how bündeln und Nutzer entlasten. Sie bieten eine einfache Schnittstelle, um die Herausforderung transparent zu lösen und laufend aktuell zu halten. Betreiber von Webseiten sollten sich dennoch bewusst sein, dass keine Lösung absolut sicher ist. Eine kontinuierliche Analyse des Bot-Verhaltens und das Anpassen der Schutzmechanismen sind essenziell. Analog gilt für Entwickler und Sicherheitsforscher, dass das Verständnis der zugrunde liegenden Techniken unerlässlich ist, um robuste Gegenmaßnahmen zu kreieren.
Die Auseinandersetzung mit Datadome zeigt exemplarisch, wie anspruchsvoll moderne Bot-Abwehrsysteme sind und wie eng technische Raffinesse und Umgehungsstrategien zusammenhängen. Für alle, die sich im Bereich Webscraping, IT-Sicherheit oder E-Commerce bewegen, ist das Wissen um solche Schutzmechanismen und deren Grenzen heute von enormer Bedeutung.