it-swarm.com.de

Bot-Erkennung über Browser-Fingerabdruck

Ich habe kürzlich festgestellt, dass einige Unternehmen damit begonnen haben, Bot- und Scraping-Schutzdienste anzubieten, die auf der Idee des Browser-Fingerabdrucks basieren, um sie zu erkennen, und dann den spezifischen Fingerabdruck daran hindern, auf die Site zuzugreifen (anstatt die IP zu blockieren).

Hier einige Beispiele:

Es gibt Unterschiede zwischen ihnen, aber anscheinend verwenden alle diese Unternehmen Javascript, um detaillierte browserspezifische Felder wie Plugins, Schriftarten, Bildschirmgröße und Auflösung abzurufen, sie mit den aus den HTTP-Headern erhaltenen Informationen zu kombinieren und diese Daten zur Klassifizierung des Clients zu verwenden als Bot/Mensch.

Meine Frage ist dann: Ist dieser Ansatz robust genug? Wie schwer wäre es für einen Angreifer, alle Datenfelder zu fälschen, die der Javascript-Client abruft (Plugins, Schriftarten, Betriebssysteme usw.)? Welches Schutzmaß bietet dieser Ansatz - nur gegen nicht sehr hoch entwickelte Bots, oder ist es wirklich so schwer zu überwinden?

13
WeaselFox

Ich habe ähnliche Dienste gesehen, die als Proxy fungieren und alle Ihre Webseiten in einem wirklich verschleierten Javascript codieren, so dass ein echter Browser keine Probleme beim Surfen auf dieser Site haben würde, während es wirklich schwierig, wenn nicht unmöglich wäre (was wäre, wenn das JS wäre) zufällig und bei jeder Anforderung unterschiedlich), damit ein herkömmlicher Schaber dasselbe tut.

Das Problem ist, dass es wirklich einfach ist, all diese Ansätze zu umgehen, indem Sie einen echten Browser ausführen und keine Zeit damit verschwenden, einen Scraper zu erstellen.

Schauen Sie sich Selenium WebDriver an, mit dem Sie eine Verbindung zu einem echten Browser herstellen und programmgesteuert steuern können. Keine dieser Lösungen erkennt dies, da es sich um einen sauberen Firefox (oder Chrome oder einen der anderen) handelt unterstützte Browser) Installation nach außen.

Anstatt Ihre Zeit damit zu verschwenden, die Bots zu blockieren, fragen Sie sich, warum Sie sie blockieren möchten. Wenn sie Ihren Webserver überlasten, implementieren Sie IP-basierte Ratenbeschränkungen. Wenn sie Spam senden, implementieren Sie einige Captchas, andernfalls lassen Sie sie Sie schaden dir nicht.

7
user42178

Dieses Verfahren ist wahrscheinlich hilfreich, um eine große Anzahl von Bots zu identifizieren und zu blockieren. Personen, die Ihre Daten stehlen möchten, werden diese jedoch so weit wie möglich anpassen und randomisieren, um eine Erkennung zu vermeiden. Dann Nein. Dieser Ansatz ist nicht der effektivste gegen die anspruchsvolleren Schaber.

Ich habe gesehen, wie Schaber ihre HTTP-Anforderungen mehrmals täglich vollständig geändert haben. Diese Unternehmen investieren Geld, um ihre Aktivitäten durchzuführen, und sie werden versuchen, einen Weg zu finden, um diese statischen Entdeckungen zu vermeiden.

Die einzige Möglichkeit, diesen Datenverkehr zu blockieren, besteht darin, Blockierungsregeln manuell hinzuzufügen oder einen großen Algorithmus zu entwickeln, der andere Verhaltensweisen ausarbeitet, z. B.: Zeitunterschiede zwischen Anforderungen, Parameterreihenfolgen, gemeinsam genutzten Sitzungs-IDs usw.

Wenn Sie die Marketing-Kopie von den Links lesen, ist die Art von "Bot", von der Sie sprechen, überhaupt kein typischer "Browser", sondern oft nur ein einfaches Skript oder sogar das ehrwürdige wget.

Wenn dies der Fall ist, ist es trivial festzustellen, ob ein Skript navigiert oder ob es sich um einen vollwertigen Browser handelt. Wenn Sie jedoch daran interessiert sind, diese Bot-Blocker zu besiegen, ist es, wie Sie vermuten, auch trivial, dem Server gefälschte Daten bereitzustellen, damit diese wie ein gültiger Browser aussehen.

Zum Beispiel habe ich einen Python-basierten Web-Scraper erstellt, der dem Server eine vorkonfigurierte UA liefert (in meinem Fall als Skript ankündigt). Was die anderen Daten (installierte Schriftarten) betrifft, bin ich zuversichtlich, dass, wenn ein Browser so konfiguriert werden kann, dass er mit den Daten reagiert, auch ein "Bot" dies kann.

3
schroeder

Wie bereits alle geantwortet haben, ist es nicht möglich, Bots allein über Browser-Fingerabdrücke zu erkennen.

ShieldSquare, ein Unternehmen zur Erkennung von Bots, das wir die meiste Zeit mit Bots verbringen, würde ich sagen, dass die Erkennung von Bots möglich ist. Zusammen mit dem Fingerabdruck des JS-Geräts werden einige weitere Dinge in Betracht gezogen:

  • Benutzerverhalten [Sie können analysieren, was der Benutzer auf der Website tut, ob der Benutzer das Muster "Breite zuerst" oder "Tiefe zuerst" ausführt. Wie viele Minuten verbringt der Benutzer auf der Website, wie viele Seiten hat der Benutzer besucht?]

  • IP-Reputation [Durch Betrachten des IP-Verlaufs kann keine Anzahl von IP-Besuchen oder Mustern sowie Netzwerkforensik für die empfangene Anforderung durchgeführt werden, um festzustellen, ob die Anforderung von Tor-/Proxy-IPs stammt.]

  • Browser-Validierung

Tatsächlich können alle diese Berechnungen in 7 ms durchgeführt werden.

2
Raviraj Hegde