7 Punkte von GN⁺ 2024-04-28 | 1 Kommentare | Auf WhatsApp teilen
  • Mit AWS Lambda und Headless Chrome allein ließen sich zwar pro Woche Millionen von Google-SERPs sammeln, doch bei stark geschützten Websites stößt eine cloudbasierte Bot-Architektur schnell an ihre Grenzen
  • Durch erneute Lambda-Aufrufe und die Nutzung mehrerer Regionen konnte man bei 16 Regionen etwa 16 * 250 = 4000 öffentliche IPs gleichzeitig verwenden; für weniger streng geschützte Ziele reichte das aus
  • Anti-Bot-Anbieter wie DataDome, Akamai und Imperva verfolgen Unstimmigkeiten in Browser-Konfigurationen, Automatisierungsspuren und Fingerprint-Informationen; die eigentliche Schwierigkeit liegt weniger in der Erkennung selbst als darin, die False-Positive-Rate niedrig zu halten
  • Als weniger leicht erkennbare Architektur wird statt Docker oder Cloud-Servern der Einsatz echter Android-Geräte und mobiler IPs vorgeschlagen; 4G-/5G-/LTE-IPs werden in Großstädten von vielen legitimen Nutzern geteilt und sind daher schwer zu sperren
  • Eine echte Gerätefarm bedeutet jedoch Gerätekauf, angemietete Flächen in verschiedenen Städten, Wartung vor Ort und Hardwareausfälle; auch Android-Emulatoren bergen weiterhin das Risiko der Emulationserkennung

Massen-Scraping-Architektur mit AWS Lambda

  • Beim Betrieb eines früheren Scraping-Dienstes wurden pro Woche bis zu mehrere Millionen Google-SERPs gesammelt, ohne Proxy-Anbieter wie Brightdata, Packetstream oder Oxylabs zu nutzen
    • Man hielt es für schwierig, anderen Kunden zu vertrauen, die dieselbe Proxy-Bandbreite teilen
    • Nicht-DoS-Scraping öffentlicher Informationen sei in Ordnung, aber man zog eine klare Grenze zu Webangriffen wie Ad Fraud, Social-Media-Spam, automatischer SQL Injection und XSS
    • Auch die Kosten von Proxy-Diensten waren ein Faktor
  • Die tatsächliche Umsetzung war eine Funktion, die Headless Chrome in AWS Lambda packte und mit puppeteer-extra sowie chrome-aws-lambda den Browser 300 Sekunden lang ausführte
  • Da Google für die eigene Suchmaschine keine besonders starke Bot-Abwehr betreibt und hauptsächlich IP-basierte Rate Limits einsetzt, wäre es für Google-SERPs allein möglicherweise sogar mit curl gegangen
  • Bei Lambda erhielt man nach drei Funktionsaufrufen eine neue öffentliche IP; bei 1000 gleichzeitigen Funktionsaufrufen kam man laut Aussage auf etwa 250 öffentliche IPs
    • Mit 16 Regionen ergab sich die Rechnung, dass gleichzeitig etwa 4000 öffentliche IPs nutzbar waren
    • Es waren zwar geteilte Rechenzentrums-IPs, aber sie reichten aus, um pro Woche mehrere Millionen Google-SERPs zu sammeln
  • Auch Google Cloud Platform wurde ausprobiert, doch Google blockierte Traffic aus der eigenen Cloud-Infrastruktur stärker als AWS-Traffic
  • Diese Erfahrung bezieht sich auf 2019 und 2020; die Lage kann sich seitdem geändert haben

Warum Cloud-Bots blockiert werden

Ökonomische Strukturen, die leicht erkannt werden

  • Bot-Entwickler, die Scraping in großem Maßstab betreiben wollen, packen Browser häufig in Docker-Container und orchestrieren sie mit Docker Swarm oder Kubernetes
  • Solche Bots werden oft bei Cloud-Anbietern wie Hetzner, AWS oder DigitalOcean gehostet
  • Diese Architektur unterscheidet sich stark von der Umgebung menschlicher Nutzer
    • Es ist nicht natürlich, dass ein normaler Nutzer Instagram in einem Docker-Container auf einem Hetzner-VPS durchsucht
  • Als Regeln für erfolgreiches Scraping werden zwei Punkte genannt
    • Die zweitwichtigste Regel: Nicht über die Browser-Konfiguration lügen
    • Die wichtigste Regel: Nur dann über die Browser-Konfiguration lügen, wenn man dabei nicht erwischt wird

Echte Android-Gerätefarm

  • Da es schwierig ist, obfuskierte Anti-Bot-Fingerprinting-Bibliotheken per Reverse Engineering zu analysieren, wird der Ansatz vorgeschlagen, echte Geräte für Scraping zu verwenden
  • Die angenommene Architektur besteht darin, 500 günstige Android-Geräte zu kaufen und sie zur Fingerprint-Diversität aus etwa fünf Herstellern zu mischen
    • Günstige Android-Geräte beginnen bei 58 US-Dollar pro Stück
    • Beim Kauf von 100 Geräten auf einmal seien große Rabatte möglich
  • Jedes Gerät bekommt einen günstigen Datentarif und wird mit DeviceFarmer/stf gesteuert
  • Die Idee ist, jeweils 100 Geräte in fünf großen Städten wie London, Paris, Boston, Frankfurt und Los Angeles zu platzieren und dafür günstige Lagerflächen in der Nähe von Mobilfunkantennen zu mieten
  • Auf den Geräten wird ein schlankes Android Go installiert, unnötige Komponenten werden entfernt, danach werden sie an die Stromversorgung angeschlossen
  • Wenn man alle fünf Minuten den Flugmodus ein- und wieder ausschaltet, erhält man über 4G Carrier Grade NAT eine neue IP
  • Mobile IP-Adressen werden in Großstädten von bis zu Hunderttausenden legitimen Nutzern geteilt und sind daher praktisch schwer zu sperren
    • Als Beispiel wird angenommen, dass Instagram nicht 200.000 Menschen in LA blockieren würde, nur wegen einiger Spam-Nutzer
    • Zitiert wird ein Ofcom-Dokument, dem zufolge das Blockieren einer IPv4-Adresse in einem CGN die gesamte Teilnehmerbasis beeinträchtigen kann
  • Bei IPv6 sei der Adressraum so groß, dass die meisten Anti-Bot-Anbieter IPv6-Adressen kaum oder gar keine IP-Reputation zuweisen

Erkennungspunkte und Betriebsaufwand einer echten Gerätearchitektur

  • Wenn echte Geräte den ganzen Tag auf dem Boden liegen, bleibt der Zustand ohne Rotation oder Bewegung bestehen; daher müssten die JavaScript-Events deviceorientation und devicemotion auf Kernel-Ebene gespooft werden
    • Websites können ohne Berechtigungsanfrage auf Rotations- und Beschleunigungsdaten von Android zugreifen
  • Abgesehen von diesem Problem sei nicht klar, wie ein Bot-Erkennungssystem eine solche Architektur blockieren könnte
  • Der Betriebsaufwand ist nicht gering
    • Es müssen 500 Android-Geräte gekauft werden
    • In großen Städten muss Lagerfläche gemietet werden, was Kosten verursacht
    • In fünf Städten werden Personen benötigt, die Probleme in der Gerätefarm beheben
    • Man muss mit Hardware umgehen, und es können laufend Probleme auftreten
  • Eine solche Architektur wird zu einem großen Projekt; die Wartung kann mehrere Tausend Dollar kosten

Android-Emulatoren als Alternative

  • Statt echter Android-Geräte seien Android-Emulatoren vermutlich die bessere Wahl
  • Die Kosten lassen sich senken, aber Anti-Bot-Anbieter können eine Emulationsumgebung erkennen
  • Es gibt mehrere mögliche Erkennungsmethoden
    • Browserbasierte Red Pills können offenlegen, dass der Browser in einer Emulationsumgebung läuft
    • Mit browserbasiertem Port-Scanning lassen sich Ports oder Dienste wie adb finden, die nur auf emulierten Android-Geräten laufen
    • Google kann für das gesamte Mobilgerät eine Werbe-ID setzen; fehlt diese ID oder ist sie immer gleich, kann das ein Verdachtssignal sein
    • Mit Social Media Login Detection lässt sich prüfen, ob ein Gmail- oder YouTube-Konto angemeldet ist; auf Android kann das Fehlen eines Google-Logins verdächtig sein
    • Darüber hinaus kann es viele weitere Techniken zur Erkennung emulierter Android-Geräte geben
  • Android-Emulatoren sind wahrscheinlich unvollständig, und diese Unvollständigkeit kann über die umfangreichen JavaScript-APIs mobiler Browser sichtbar werden
  • Dennoch wird der Emulationsansatz bevorzugt; vorgeschlagen wird eine Konfiguration mit einigen leistungsstarken Servern, an die 4G-Dongles angeschlossen sind
  • proxidize.com bietet 4G-Mobile-Proxys an, doch Proxys sind als solche erkennbar; daher würde man 4G-Dongles lieber direkt mit Android-Emulatoren verwenden
  • Die finale Architektur besteht aus regionalen Scraping-Stationen
    • An einem geografischen Standort wird ein leistungsstarker Scraping-Server mit 50 angeschlossenen 4G-Dongles eingerichtet
    • Auf jedem Server laufen 50 bis 100 emulierte Android-Geräte
    • Solche Stationen werden in fünf großen Städten platziert
    • Ein einfacher Command-and-Control-Server orchestriert die fünf Scraping-Stationen

1 Kommentare

 
GN⁺ 2024-04-28
Hacker-News-Meinungen
  • Als Anwalt, der im Bereich Web Scraping arbeitet, muss ich bei solchen Threads immer schmunzeln. Fast jedes Unternehmen, das wir heute als Monopolisten im Tech-Bereich sehen, oder dessen Tochtergesellschaften haben beim Aufbau ihres Geschäfts Scraping genutzt, und heute verbieten genau diese Unternehmen Startups und Wettbewerbern das Scraping ihrer Daten.
    In den meisten Fällen sind diese Daten in einem rechtlich anerkennbaren Sinn nicht einmal wirklich „ihre“ Daten. Deshalb sind weder die Ethik des Web Scrapings noch die damit verbundenen Rechtsfragen so einfach. Ein Beitrag, den ich letzten Herbst dazu geschrieben habe, stieß auch hier auf Interesse: https://news.ycombinator.com/item?id=37264676
    • Bei Facebook und Identitätsdaten ist es ähnlich. Wenn ich mich richtig erinnere, ist Facebook anfangs gewachsen, indem es Google-Kontakte nutzte, geht aber aggressiv dagegen vor, wenn jemand Social-Graph-Daten von Facebook langfristig speichert und außerhalb seines eigenen umzäunten Bereichs nutzt.
      Am Ende hindern sie andere also daran, genau die Methoden zu nutzen, die sie selbst für ihr Wachstum verwendet haben.
    • Die Ethik des Web Scrapings wirkt eher ziemlich einfach. „Du kannst auf meine HTTP-Anfrage antworten, wie du willst, und ich kann diese Antwort interpretieren, wie ich will“ reicht im Grunde aus.
      Seit es menschliche Kommunikation gibt, funktionieren Gespräche doch immer so, oder? Die rechtlichen Fragen wirken dagegen wie ein Gewebe, das man gestrickt hat, um etablierte Unternehmen mit der Drohung staatlicher Gewalt zu schützen; nicht besonders neu, armselig, aber vorhersehbar. Im weiteren Sinn ist auch der Versuch, das als Frage des geistigen Eigentums zu verpacken und mit dem Schutz von Künstlern und Urhebern zu verknüpfen, logisch sehr holprig und lässt einen die Stirn runzeln.
  • Ich war früher professioneller Web Scraper und verfolge die Entwicklung der Branche immer noch. Heutzutage verdient man nicht damit Geld, Web Scraping selbst zu betreiben, sondern damit, Dienstleistungen an Web Scraper zu verkaufen.
    Es gibt viele Web-Scraping-SaaS-Angebote und zugehörige Services, dazu Dutzende Anbieter von Residential Proxies. Die meisten Anti-Bot-Mechanismen entwickeln sich so schnell weiter, dass man selbst innerhalb klassischer Software-Engineering-Rollen ein ziemlich ordentliches Einkommen erzielen kann, wenn man sich ausschließlich auf die Umgehung von Anti-Bot-Technik spezialisiert. Wegen dieses Tempos ist es stabiler, bei einem Web-Scraping-Unternehmen zu arbeiten, als Web Scraping zum eigenen Beruf zu machen. Scraper werden projektweise bezahlt und sind langfristig unsicher; fortgeschrittenes Scraping erfordert operative Investitionen wie Residential Proxies und Servermiete, und niedrigpreisige Aufträge sind sehr schlecht bezahlt. Dass Brightdata eine Web-Scraping-Konferenz veranstaltet, zeigt schon, wie profitabel der Verkauf von Scraping-Services im großen Stil ist.
    • Ich habe lange gedacht, dass Residential Proxies für Scraping oder den Betrieb großer Bot-Netzwerke unverzichtbar sind, habe sie aber nie selbst genutzt und kann daher nicht bestätigen, wie sie im realen Maßstab eingesetzt werden.
      Ich frage mich, ob dafür häufig schlecht abgesicherte IoT-Geräte oder mit Malware infizierte Consumer-Hardware verwendet werden. Eine Zusammenarbeit mit ISPs, um an Residential IPs zu kommen, erscheint mir weder profitabel noch praktikabel; bei Residential-Proxy-Diensten scheint es daher nur ziemlich verdeckte Methoden zu geben.
    • Falls es eine Konferenz gibt, die Scraping im Allgemeinen am nächsten kommt, würde ich mich über Empfehlungen freuen. Soweit ich weiß, gibt es kaum dedizierte Scraping-Konferenzen oder starke Communities, und ich möchte lernen und besser werden.
    • Ich schreibe seit Jahren Scraper auf Upwork, bin aber projektbasierte Arbeit leid und würde gern in einem Scraping-SaaS arbeiten oder selbst eines starten. Ich wäre für Ratschläge dankbar.
    • Anfangs wusste ich nicht, dass das so einfach ist, und habe den Code als Open Source veröffentlicht. GitHub habe ich gemieden, weil ich dachte, dass Firmen wie Akamai schnell DMCA-Anfragen schicken würden, und habe es stattdessen unter Ausnutzung unterschiedlicher Zuständigkeiten auf Gitee, so etwas wie dem chinesischen GitHub, hochgeladen.
      Ich hatte keinen Hintergrund in diesem Bereich, aber wenn man zusammenfügte, womit die Unternehmen prahlten, war es nicht schwer, und es gab auch den praktischen Zweck, Sportwetten zu automatisieren. Auch mein eigentlicher Job lag ziemlich nah daran, und es half mir, Ende 20 schnell Programmieren zu lernen. Fast sofort bekam ich jedoch eine Flut von Anfragen von chinesischen Sneaker-Bot-Betreibern und von Leuten mit eigenartigem Englisch, das offenbar nicht ihre Muttersprache war. Ich nahm den Code nicht wegen rechtlicher Drohungen offline, sondern weil ich keine Kundenbetreuung machen oder für andere arbeiten wollte; die meisten Anfragen liefen auf „Wenn du die Arbeit machst, teilen wir den Gewinn“ hinaus, und es war schwer zu glauben, dass irgendjemand solche Angebote annimmt. Das Internet vergisst nicht, also könnten noch Teile des Codes im Umlauf sein, der Cyberfed-Akamai 0.8 bis 2.3 nachahmte. Wenn Code, den ich innerhalb von drei Jahren nach dem Programmierenlernen Mitte 20 hochgeladen hatte, funktionierte, sollten sich Cybersecurity-Firmen schämen, die für solche Produkte viel Geld verlangen. Ich hatte seit der 10. Klasse keine Mathematik mehr, und wegen ADHS konnte ich weder Videos noch Texte lange ansehen; ich habe nur von GitHub und ähnlichen Diensten abgeschrieben, bis es funktionierte. In dieser Branche werden vermutlich viele Schlangenöl-Lösungen verkauft.
    • Mich würde interessieren, wie du die Entwicklung der Branche weiter verfolgst.
  • Bei diesem Thema bin ich zwiegespalten. Anti-Bot-Technik wird in der Sicherheitsforschung zunehmend zu einem großen Schmerzpunkt, und da ich in diesem Bereich arbeite, muss ich mit solchen Systemen umgehen.
    Threat Actors nutzen Dienste wie Cloudflare, um den Zugriff auf bösartige Payloads zu blockieren. Für Kunden, die Brand Impersonation oder Credential Phishing finden und erkennen wollen, ist das ein großes Problem, aber Cloudflare hilft überhaupt nicht und kümmert sich schlicht nicht darum.
    • Zustimmung. Seit Threat Actors kostenlose Cloudflare-Konten erstellen und Phishing-Sites auf Domains, die erst zwei Stunden alt sind, hinter einem Schutzschild verstecken können, das von einem 20-Milliarden-Dollar-Unternehmen gestützt wird, ist es viel zu einfach geworden, Erkennung zu umgehen.
      Interessanterweise sieht man hinter Akamai kaum Phishing. Da wir ebenfalls in diesem Bereich arbeiten, haben wir ein Interesse daran, solche Bedrohungen auch künftig erkennen zu können.
    • Am Ende werden wir zur Lösung dieses Problems wohl bei irgendeiner Form von Micropayment-Mechanismus landen.
  • Die Begriffe „Außenseiter“ und „normale Menschen“ sind seltsam. Der Grund, warum man so etwas macht, ist, dass es viel interessanter und unterhaltsamer ist, als zum zwanzigsten Mal eine langweilige React-Website für ein Unternehmen zu bauen.
    Es macht Spaß, weil man reale Probleme lösen und neue Wege finden muss, etwas zu tun. Bei Exploit-Entwicklung ist es genauso. Solche Leute sind keine Außenseiter, sondern normale Menschen, die tun, wofür sie Leidenschaft haben. Die Denkweise „Menschen, die etwas tun, das ich nicht mag, sind Außenseiter“ ist wirklich völlig seltsam.
    • Der ganze Absatz ist ein Witz. Deshalb steht am Ende ein kleines Zwinkern.
  • Anti-Bot-Technik wirkt auch wie eine Sicherheitsbedrohung und eine Privacy-Bedrohung, weil sie bei der Nutzung virtueller Maschinen den Zugriff auf Websites blockiert, Portscans durchführt oder verschiedene Formen von Fingerprinting betreibt.
    • Ein Ansatz mit algorithmischen Aufgaben, bei denen neue Besucher CPU-Rechenarbeit leisten müssen, ist besser.
      Der Ablauf ist klar, es gibt keine Privacy-Risiken oder seltsamen Tricks, und wenn er fehlschlägt, dann wenigstens so, dass ein Mensch es sehen und melden kann. Das ist besser, als wenn es wie ein unbekannter Fehler aussieht.
  • Wurde damals schon diskutiert: Scrape like the big boys - https://news.ycombinator.com/item?id=29117022 - November 2021, 189 Kommentare
  • „Jede Website kann ohne Berechtigungsanfrage auf Rotations- und Geschwindigkeitsdaten von Android zugreifen“? Das ist wirklich absurd.
  • Interessant. Ich baue gerade ein Projekt, das Scraping mit niedriger Frequenz braucht.
    Ich habe darüber nachgedacht, wie ich Ablehnungen handhaben soll; ein günstiges einzelnes Android-Gerät könnte diese Lücke vielleicht schließen.