DE112010002445T9 - Identifizierung von Bots - Google Patents

Identifizierung von Bots Download PDF

Info

Publication number
DE112010002445T9
DE112010002445T9 DE112010002445T DE112010002445T DE112010002445T9 DE 112010002445 T9 DE112010002445 T9 DE 112010002445T9 DE 112010002445 T DE112010002445 T DE 112010002445T DE 112010002445 T DE112010002445 T DE 112010002445T DE 112010002445 T9 DE112010002445 T9 DE 112010002445T9
Authority
DE
Germany
Prior art keywords
prid
originator
client
browser
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE112010002445T
Other languages
English (en)
Other versions
DE112010002445T5 (de
Inventor
Shay Rapaport
Erez Azaria
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FIREBLADE LTD., IL
Original Assignee
SITE BLACK BOX Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SITE BLACK BOX Ltd filed Critical SITE BLACK BOX Ltd
Publication of DE112010002445T5 publication Critical patent/DE112010002445T5/de
Application granted granted Critical
Publication of DE112010002445T9 publication Critical patent/DE112010002445T9/de
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/144Detection or countermeasures against botnets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Verfahren zum Identifizieren, ob ein Web-Klient Browser-Fähigkeiten hat. Eine Urhebermaschine empfängt einen Web-Seitenaufruf vom Web-Klienten. Die Urhebermaschine generiert eine Seitenaufruf-ID (PRID) und ein Script, das, wenn es von einem Web-Klienten mit einem Browser ausgeführt wird, eine PRID regeneriert und das Script in eine Antwort einbettet. Die Urhebermaschine sendet die Antwort zum Web-Klienten zurück, so dass sie der Web-Klient verarbeitet, und wenn der Web-Klient imstande ist, das eingebettete Script auszuführen, dadurch eine PRID regeneriert und die regenerierte PRID zur Urhebermaschine zurücksendet. Die Urhebermaschine vergleicht die zurückgesendete regenerierte PRID mit der generierten PRID, wobei eine Übereinstimmung anzeigt, dass der Web-Klient Browser-Fähigkeiten hat.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft das roboterhafte Internet-Surfen mit Hilfe so genannter Bots und insbesondere das Erfassen eines verdächtigen Verhaltens von Bots und das Unterbinden oder Einschränken eines solchen Verhaltens.
  • Allgemeiner Stand der Technik
  • Bots, auch bekannt als Web-Roboter, Spider oder Webcrawler, sind Software-Anwendungen, die automatisierte Aufgaben auf dem Internet ausführen. Für gewöhnlich führen Bots Aufgaben, die einfach und von sich wiederholender Struktur sind, bei einer viel höheren Rate aus als für einen Menschen möglich wäre. Die größte Nutzung von Bots ist Webcrawling, wobei ein automatisiertes Skript Informationen von Webservern erlangt, analysiert und speichert. Bots werden für viele Zwecke verwendet; vorwiegend für das Durchstöbern, Zuordnen und Indizieren von Daten; das Überwachen des Verhaltens von Sites; zu Werbezwecken; und für kommerzielle oder akademische Forschung. Zusätzlich zu den oben genannten Verwendungszwecken könnten Bots auch implementiert werden, wenn eine Reaktionsgeschwindigkeit, die rascher als jene des Menschen ist, erforderlich ist (zum Beispiel Spiele-Bots und Auktionshausroboter) oder, was weniger häufig der Fall ist, in Situation, in welchen die Nachahmung einer menschlichen Aktivität notwendig ist (zum Beispiel Chat-Bots). Leider gibt es auch heimtückische Bots, wie Spam-Bots, die E-Mail-Adressen von Kontaktformularen oder Gästebuchseiten sammeln; Download-Programme, die Bandbreite durch Herunterladen vollständiger Websites verschlingen; Website-Scraper, die den Inhalt von Websites kopieren und ohne Erlaubnis auf automatisch generierten Brückenseiten (Doorway Pages) wieder verwenden; und Kunden-Crawler, die auf spezifische Websites zurechtgeschnitten sind, um Informationen zu stehlen (für gewöhnlich in Bezug auf Inhaltsseiten, klassifizierte und große Datenbankseiten) oder Spam (für gewöhnlich in Bezug auf Foren, Web-Mail und soziale Netzwerke) und dergleichen.
  • Vom technischen Aspekt können Bots in drei Hauptarten unterteilt werden: Die erste Art sind Bots auf Protokollbasis. Diese Bots generieren kontinuierlich einen Aufruf mit Hilfe eines gewissen Protokolls (wie zum Beispiel HTTP oder FTP) und Empfangen eine Antwort, die für gewöhnlich zur Analyse zu einem Parser gesendet wird. Diese Bots sind einfach und arbeiten für gewöhnlich schnell. Sie geben den Inhalt, den sie empfangen, nicht wieder und haben somit keine Browser-Fähigkeiten. Die zweite Art sind Anwendungs-Bots, die auf Bots auf Protokollbasis beruhen, aber kompliziertere Parsing-Tools haben, die Teile der Antwort wiedergeben und interpretieren (da sie für gewöhnlich JavaScript-Fähigkeiten haben). Die dritte Art sind Browser-Bots, die Browser (wie zum Beispiel Internet Explorer, Firefox usw.) oder Browser-Plattformen (wie zum Beispiel Webkit) sind, die von einem Automation-Script gesteuert werden. Browser-Bots werden eher mechanisch betrieben als von einem menschlichen Benutzer gesteuert.
  • Es wurden viele Versuche unternommen, heimtückische Bots zu identifizieren und herauszufiltern, wie zum Beispiel durch Analyse von Log-Dateien und/oder durch Analyse der Frequenz von HTTP-Aufrufen pro IP oder durch Verwendung eines CAPTCHA. Ein CAPTCHA (”Completely Automated Public Turing test to tell Computers und Humans Apart” – Vollautomatischer Turing-Test zur Unterscheidung von Computern und Menschen) ist eine Art von Fragestellung-Antworttest, der beim Berechnen verwendet wird um sicherzustellen, dass die Antwort nicht von einem Computer generiert wird. Der Prozess beinhaltet für gewöhnlich einen Computer (einen Server), der einen Benutzer auffordert, einen einfachen Test zu vollenden, den der Computer generieren und bewerten kann. Da andere Computer nicht imstande sind, den CAPTCHA zu lösen, wird angenommen, dass jeder Benutzer, der eine korrekte Lösung eingibt, ein Mensch ist. Somit wird er manchmal als umgekehrter Turing-Test beschrieben, da er von einer Maschine verwaltet und an einen Menschen gerichtet ist, im Gegensatz zu einem Turing-Standardtest, der für gewöhnlich von einem Menschen verwaltet und an eine Maschine gerichtet ist. Eine allgemeine Art von CAPTCHA erfordert, dass der Benutzer Buchstaben oder Zahlen aus einem verzerrten Bild eingibt, das auf dem Schirm erscheint.
  • CAPTCHAs sind für Hacker anfällig, sowohl durch komplizierte, maßgeschneiderte OCR-Systeme, die den verzerrten Text erkennen, oder durch einen Relais-Hack (ein Bot zeigt den CAPTCHA einem menschlichen Benutzer, der diesen ausfüllt, so dass der Bot seine Crawling-Aktivität ausführen kann). CAPTCHAs werden für gewöhnlich Benutzern nur beim Ausfüllen eines Formulars dargeboten, um eine Unterbrechung im Fluss der Web-Anwendung zu vermeiden; somit kann jede Aktivität, die vor oder nach dem Ausfüllen des Formulars vorgenommen wird, leicht von einem Bot gesteuert werden. Ein anderer Versuch, Bots zu identifizieren sind Honigtöpfe (Honey Pots) oder Spinnenfallen (Spider Traps), die normalerweise Webseiten sind, die nur über transparente Links zugänglich sind (z. B. weißer Text auf weißem Hintergrund). Solche Honigtöpfe nehmen an, dass jene, die diese verborgenen Seiten durchstöbern, Bots sind. Honigtöpfe sind nur zur Identifizierung generischer Bots, wie E-Mail Erntemaschinen (Harvester), nützlich.
  • Leider können bekannte Bot-Identifizierungsverfahren eine verdächtige Aktivität durch die Benutzer-IP-Ebene oder durch die Sitzungs-ID-Ebene identifizieren. Wenn eine Sitzung blockiert ist, kann der Bot leicht eine andere Sitzung erneut starten (für gewöhnlich durch Löschen einer Cookie-Datei), während, wenn ein IP blockiert ist, legitimierte Benutzer, die versuchen, auf die Site von demselben IP zuzugreifen, ebenso blockiert sind. Ferner neigen diese Verfahren dazu, zu viele falsch-positive (falsche Identifizierung von Bots), oder, wenn sie zu sorgfältig angewendet werden, zu viele falsch-negative Ergebnisse zu liefern.
  • Es besteht somit ein Bedarf an einem effizienteren und zuverlässigeren Verfahren zur Identifizierung von Bots und deren Blockierung mit weniger Unterbrechung für wahre menschliche Benutzer.
  • Kurzdarstellung der Erfindung
  • Dieser Bedarf wird durch ein Verfahren nach Anspruch 1 erfüllt. Andere Merkmale der Erfindung sind in den folgenden Ansprüchen dargelegt.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung ist ein Verfahren vorgesehen, das einen HTTP-Aufruf von einem Klienten mit Browser-Fähigkeiten von jedem anderen Maschinenaufruf oder Software-gesteuerten HTTP-Aufrufen unterscheidet. ”Ein Klient mit Browser-Fähigkeiten” bezeichnet jeden Klienten mit Script-Interpreter oder Laufzeitumgebung und auch mit Fähigkeiten, auf Seiten- und Browser-Objekte zuzugreifen und diese in einem Dokument und einem Dokumentobjektmodell (DOM) wiederzugeben.
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung ist ein Modus zur Überwachung von Aufrufen vorgesehen, während der aufgerufene Inhalt weiterhin vom Web-Server bedient wird. Dieser Modus wird in der Folge hier als ”passiver Modus” bezeichnet. Gemäß dieser Ausführungsform werden die Aufrufe zur Unterscheidung zwischen Aufrufen, die von Klienten mit Browser-Fähigkeiten generiert werden, und anderen Klientenaufrufen überwacht. ”Überwachen” bedeutet das Erfassen und Analysieren eines Verkehrs in nicht intrusiver Form, im Gegensatz zum Blockieren, das im ”aktiven Modus” erfolgt. Der ”passive Modus” ermöglicht optional Entscheidungsfällungsregeln, bevor ein aktiver Schritt vollzogen wird. Solche Entscheidungsfällungsregeln können zum Beispiel und ohne Einschränkung die Behandlung spezifischer Aufrufe von einem Klienten enthalten, der keine Browser-Fähigkeiten hat, die als legitime Klienten klassifiziert sind. Solche legitime Benutzer können zum Beispiel und ohne Einschränkung ein Suchmaschinen-Spider sein. Solche Entscheidungsfällungsregeln können optional und ohne Einschränkung den Benutzer gemäß dem Verdachtsmoment für die Zuordnung einer oder mehrerer Einschränkungen entsprechend dem Verdachtsmoment und anhand der Identität des Urhebers der Aufrufe klassifizieren.
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung ist ein Modus vorgesehen, der Aufrufe begrenzt, die als Nicht-Browser-Aufrufe aus dem Empfang eines Website-Seiteninhalts erfasst werden. Dieser Modus wird in der Folge hier als ”aktiver Modus” bezeichnet. Der aktive Modus filtert jeden HTTP-Seitenaufruf heraus, der nicht von einem Browser generiert wird, indem er den gewünschten Inhalt zu diesem Aufruf nicht bedient.
  • Gemäß anderen Ausführungsformen der Erfindung werden Nicht-Browser-Klienten, die als Protokoll-Bots oder Anwendungs-Bots angesehen werden, durch Generieren einer einzigartigen Seitenaufruf-ID (in der Folge hier ”PRID”) für jeden HTTP-Seitenaufruf eines Klienten erfasst, wobei ein klientenseitiges Script in die Antwort eingebettet wird, das imstande ist, dieselbe PRID nur bei einem Klienten mit Browser-Fähigkeiten zu regenerieren und zurückzusenden. ”Seitenaufruf-ID” bezeichnet eine einzigartige Identifizierung eines Seitenaufrufs, die optional aus einer zufälligen und/oder einzigartigen Kombination von Zahlen und/oder Zeichen/Buchstaben besteht und für jeden Seitenaufruf, der von einem Klient empfangen wird, dynamisch generiert wird. Die Generierung der PRID wird optional vom Web-Server durchgeführt, an den der Aufruf zum Beispiel und ohne Einschränkung über einen Server-seitigen Code (wie PHP, .Net framework-Sprachen, Python und dergleichen) oder ein Server-Filter (wie ISAPI) gesendet wurde. Als Alternative kann ein PRID auch durch einen logischen oder physischen Dritte-Partei-Server oder durch jede logische oder physische Netzwerkmaschine generiert werden, die im Netz des Web-Servers zur Überwachung des eingehenden Verkehrs positioniert ist, wie eine Firewall, eine Web-Anwendungs-Firewall und dergleichen. Die Maschine, in der die PRID generiert wird, wird in der Folge hier als ”die Urhebermaschine” bezeichnet. Der generierte PRID-String wird optional auf der Urhebermaschine gespeichert, optional in einer Sitzungsumfangsvariable. Die Urhebermaschine generiert entweder ein im Voraus generiertes klientenseitiges Script (optional, ohne aber darauf beschränkt zu sein, ein JavaScript), das in der Seite eingebettet ist, die zum Klienten zurückgesendet wird, oder gibt dieses aus. Das klientenseitige Script soll, wenn es von einem Klienten mit Browser-Fähigkeiten interpretiert und ausgeführt wird, auf einem separaten Aufruf (optional HTTP Get/Post, Ajax oder auf einem Cookie, der mit der nächsten Aufruf gesendet wird) diese PRID regenerieren und zur Urhebermaschine zurücksenden. Das Script, das zum Klienten gesendet wird, umfasst optional eine Abfolge von Funktionen oder kleinen ”Sub-Scripten”, die die Abfolge von Zeichen generieren, die insgesamt die PRID bilden. Der klientenseitigen Code, der die PRID bei einem Klient mit Browser-Fähigkeiten regeneriert, wird in der Folge als ”Regenerationsfragestellung” bezeichnet. Der Satz von klientenseitigen Funktionen oder ”Subscripten”, die zur Bildung von PRIDs für die Regenerationsfragestellung verwendet werden, kann optional von Zeit zu Zeit geändert werden, wobei er entweder von einer zweckbestimmten Software generiert wird, die auf der Urhebermaschine liegt, oder von einer Dritte-Partei-Maschine (in der Folge auch als ”Steuerungsmaschine” bezeichnet), die die klientenseitigen Codematrizen zur Urhebermaschine bedient. Wenn der Klient, der die eingebettete Regenerationsfragestellung empfängt, die PRID zur Urhebermaschine zurücksendet, vergleicht die Maschine die PRID, die sie für denselben Seitenaufruf generiert hat, mit der PRID, die vom Klienten zurückgesendet wurde. Falls eine Übereinstimmung festgestellt wird, wird bestimmt, dass der Originalaufruf von einem Klienten mit Browser-Fähigkeiten erfolgte, da nur bei einem solchen Klient der eingebettete Code läuft, die PRID korrekt regeneriert und auf einem separaten Aufruf zurückgesendet wird. Die generierten PRIDs und die zurückgesendeten regenerierten PRIDs können zur Steuerungsmaschine gesendet werden, die diese inspiziert und konstant Übereinstimmungsverhältnisse prüft und auf der Basis konfigurierbarer Übereinstimmungsverhältnisregeln entscheidet, ob ein bestimmter Klient ein Bot ist. Es könnte notwendig sein, Übereinstimmungsverhältnisse einzustellen und zu berechnen, da es möglich ist, dass selbst bei Browser-Klienten gewisse Aufrufe keine regenerierte PRID zurücksenden, wenn zum Beispiel auf den Aufruf rasch ein anderer Aufruf folgt, bevor die klientenseitige Regenerationsfragestellung gelaufen ist.
  • Gemäß einigen Ausführungsformen erzeugt eine Steuerungsmaschine Bänke von Funktionen oder ”Sub-Scripten”, die jeweils, wenn sie auf einem Browser laufen, zur Generierung eines einzigartigen Zeichens oder eines gewissen Strings imstande sind, das bzw. der als Teil einer PRID dienen kann. Die Steuerungsmaschine aktualisiert hin und wieder die Funktionen oder ”Sub-Scripten”-Bank, die sie auf der Urhebermaschine generiert. Nur als Beispiel könnte eine Dienstmaschine eine Bank von zehn verschiedenen klientenseitigen Funktionen (oder ”Sub-Scripten”) generieren, die, wenn sie auf einem Browser laufen, die zehn Zahlen 0–9 liefern. Diese Bank von Funktionen wird auf die Urhebermaschine kopiert (für gewöhnlich ein Web-Server, obwohl eine Netzwerk-Appliance sowohl als Urhebermaschine wie auch als Steuerungsmaschine dienen könnte), die für einen bestimmten Seitenaufruf eine zufällige PRID, wie ”194726”, generieren könnte. Für diese spezifische PRID sammelt die Urhebermaschine aus ihrer Funktionsbank die sechs Funktionen, die die sechs Zahlen 1, 9, 4, 7, 2, 6 generieren, und erzeugt ein einziges Script, das diese alle in einer Abfolge umfasst. Dieses Script generiert den String ”194726”, wenn es auf einem Browser läuft. Dieses Script ist die Regenerationsfragestellung. Die Urhebermaschine bettet die Regenerationsfragestellung in die Antwort ein, die zum Klienten gesendet wird. Die Urhebermaschine speichert den String ”194726” lokal und erwartet, diesen auf einen separaten Aufruf während derselben Benutzersitzung zu erhalten. Die während einer Sitzung empfangenen PRIDs könnten zur Steuerungsmaschine zurück gesendet werden, wo die Übereinstimmungsverhältnisse berechnet werden können und komplizierte Regeln zur Entscheidung angewendet werden können, ob eine gewisse Sitzung von einem Bot generiert wird oder ob ein gewisses IP von einem Bot generierte Sitzungen enthält, und ob eine Maßnahme gegen diesen Bot ergriffen werden soll.
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung besteht das Regenerationsfragestellungsscript sowohl aus kleinen Dokumentteilen (für gewöhnlich und ohne Einschränkung, HTML oder XML) und einem Script, das gewisse Abfragen auf dem Dokumentobjektmodell (DOM) laufen lässt, von dem angenommen wird, dass es auf einem Browser generiert wird, der das Dokument wiedergibt. Die Abfrage kann gewisse Objekte, Attribute und Werte im DOM überprüfen und Zeichen oder Strings zurücksenden, die gemeinsam zur Regeneration der PRID dienen. Auf diese Weise haben Klienten eine Script-Laufzeitumgebung, haben aber keine Dokumentwiedergabefähigkeiten, sind nicht imstande das DOM zu erstellen und senden die Strings zurück, die die PRID umfassen. Für gewöhnlich wird ein Satz kleiner Dokumente auf der Steuerungsmaschine generiert, von welches jedes Dokumentobjekte (wie, aber ohne Einschränkung, Layers, Tabellen, Formatvorlagen – die jeweils IDs, Attribute und Werte aufweisen, die von der Steuerungsmaschine generiert werden) mit Scriptfunktionen aufweist, die jeweils ein bekanntes Zeichen oder einen String liefern, wenn sie auf einem Browser laufen, der das Dokument wiedergegeben hat. Nur zum Beispiel kann ein Dokumentteil ein DIV-Tag sein, das Text, Formate, Tabellen und andere HTML-Elemente mit Attributen und Werten enthält, die durch das Dokument oder das DOM von einem Script gelesen werden können. Da verschiedene Web-Browser-Versionen ferner leicht unterschiedliche DOMs aus demselben Dokument generieren können (zum Beispiel könnten gewisse Objektattribute Großbuchstaben auf einem Browser und Nicht-Großbuchstaben auf einem anderen Browser sein), kann diese Methode zur Identifizierung und Verifizierung der Art und Version des Web-Browsers entsprechend winzigen Unterschieden in der regenerierten und zurückgesendeten PRID dienen.
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung empfängt die Urhebermaschine oder Steuerungsmaschine eine Liste der generierten PRIDs und speichert diese auf einer Datenbank, einer Speichersammlung oder -anordnung oder einem anderen Speichermittel. Für jede PRID speichert die Urhebermaschine oder Steuerungsmaschine auch eine Angabe, ob eine regenerierte PRID auf einen separaten Aufruf an die Urhebermaschine zurückgesendet wurde. Wenn eine bestimmte Benutzersitzung oder eine bestimmte IP-Adresse mehr als eine vorbestimmte Anzahl und/oder ein vorbestimmtes Verhältnis von PRIDs hat, auf die bzw. das keine klientenseitigen PRID-Vorlagen folgen, wird optional vermutet, dass an dieser Sitzung oder dem IP ein Klient ohne Browser-Fähigkeiten beteiligt ist, und daher optional ein Protokoll- oder Anwendungs-Bot angenommen. Menschliche Entscheidung oder Zustandsmaschinenregeln (State Machine Rules) können optional zusätzlich angewendet werden, um eine Entscheidung zu treffen, welche Maßnahmen, wenn überhaupt, gegen diese Sitzung oder dieses IP ergriffen werden sollten.
  • Gemäß einigen Ausführungsformen kann der ”aktive Modus” optional einen Klienten ohne Browser-Fähigkeiten am Empfang eines Inhalts einer Webanwendung einschränken, indem dem Klienten die PRID Regenerationsfragestellung präsentiert wird, bevor der aufgerufene Inhalt bedient wird, im Gegensatz zum ”passiven Modus”, in dem die PRID Regenerationsfragestellung mit dem Inhalt bedient wird. Wenn entschieden wird, Klienten ohne Browser-Fähigkeiten aus einem bestimmten IP oder einer bestimmten Sitzung oder aus spezifischen Abschnitten einer Website herauszufiltern, durchsucht die Urhebermaschine zunächst jeden Aufruf, der von diesem IP oder dieser Sitzung empfangen wurde, auf eine eingebettete PRID (zum Beispiel innerhalb eines Abfrage-Strings, innerhalb eines HTTP-Nachrichtenkopfwertes oder einer anderen Sammlung von Werten, die normalerweise als Teil eines Aufruf gesendet werden). Falls der Aufruf keine PRID hat, sammelt die Urhebermaschine oder der Web-Server alle Aufrufinformationen wie, und ohne Einschränkung, die aufgerufene URL/URI, die HTTP-Nachrichtenkopfwerte und Abfrage-String-Werte, die zum Duplizieren des Aufrufs notwendig sind. Die Urhebermaschine generiert eine PRID und dann als Antwort auf den Aufruf, anstatt den serverseitigen Code laufen zu lassen, der sich bei der aufgerufenen URL befindet, und den aufgerufenen Inhalt für den Klienten freizugeben, gibt die Urhebermaschine eine Seite mit einem klientenseitigen Code frei, der, wenn er von einem Klienten mit Browser-Fähigkeiten interpretiert und korrekt ausgeführt wird, denselben Aufruf, der zuvor mit der eingebetteten regenerierten PRID gesendet wurde (entweder als zusätzlichen HTTP-Nachrichtenkopf oder Abfrage-Stringwert oder mit einer Sammlung von Werten, die für gewöhnlich als Teil einer Aufruf gesendet werden) reproduzieren soll. Diese Antwort dient als Gateway (Zugang), wobei das Vorhandensein von Browser-Fähigkeiten validiert wird, bevor der aufgerufene Inhalt wiedergegeben und bedient wird. Für gewöhnlich, aber ohne Einschränkung, enthält die Gateway-Antwort die PRID Regenerationsfragestellung und ein Formular, das alle HTTP Get/Post-Schlüssel und Werte von den vorangehenden Aufrufen enthält, und ein anderes Feld, in das die PRID eingesetzt wird. Das Format präsentiert sich selbst (über das klientenseitige Script) dem Web-Server und somit wird der Originalaufruf mit einem eingebetteten PRID (als Get- oder Postwert oder als Cookie) dupliziert. Die Gateway-Antwort könnte zusätzliche Funktionen zur Überprüfung der Gültigkeit des Aufrufs und des aufrufenden Klienten haben. Zum Beispiel ein Script, das prüft, ob die Seite an der Spitze der Browser-Dokumentenhierarchie angeordnet ist oder als ein Unterelement (”Kind”) (wie iFrame) und ob die obersten Dokumente zu derselben Site-Domäne gehören. Das Script könnte so eingestellt sein, dass es das Formular nicht vorlegt, wenn sich einige Bedingungen als unzufrieden stellend erweisen, wie wenn das Dokument nicht das oberste Dokument oder verschwommen (nicht fokussiert) ist, und somit eine unbewusste Automatisierung blockiert, wie Cross Site Request Forgery, und nicht von Menschen betriebene Browser und Browser-Objekte.
  • Jeder Aufruf auf diesem spezifischen IP oder der spezifischen Sitzung, der bei der Urhebermaschine mit einer erkannten eingebetteten PRID eintrifft, wird mit dem aufgerufenen Inhalt beantwortet, während wenn es keine PRID gibt oder eine unerkannte, stattdessen die PRID Regenerationsfragestellung bedient wird. ”Erkannte PRID” bezeichnet eine PRID, die von einer Urhebermaschine für einen HTTP-Aufruf generiert wurde, der kürzlich von diesem IP oder dieser Sitzung empfangen wurde.
  • In einigen Szenarien könnte ein Klient eine Aufrufschleife eingeben, wenn er keine vollständigen Browser- und/oder Sitzungsfähigkeiten hat, da er, wenn er eine falsche PRID generiert, ein neues Gateway mit einer neuen PRID erhält und so weiter. Zur Vermeidung dieser Situation könnte optional, wenn ein Aufruf mit einer PRID erhalten wird, die nicht als jene erkannt wird, die zuvor für dieses IP oder diese Sitzung generiert wurde, die nächste generierte PRID ein Flag (optional ein zusätzliches Zeichen) enthalten, das dem Urheberserver signalisiert, keine andere Gateway-Antwort (Regenerationsfragestellung) zu senden, wenn ein anderer folgender Aufruf mit einer nicht erkannten PRID von demselben Klienten erfolgt. Auf eine solche zweite Antwort kann der Web-Server optional mit einer Nachricht antworten, die den Benutzer bittet, Sitzungen/Cookies einzuschalten.
  • Gemäß einigen Ausführungsformen könnte eine Zustandsmaschine-Regelmaschine (State Machine Rule Engine) die verdächtigen Internet-Benutzer bewerten und sofort das Internet-Verhalten solcher Benutzer anhand der Bewertungen beschränken. Solche Zustandsmaschinen können so eingestellt sein, dass sie harmlose Bots erkennen und deren Aktivität ununterbrochen lassen, während verdächtige Benutzer beschränkt werden. Eine solche Beschränkung kann zum Beispiel und ohne Einschränkung durch Vorlegen einer ”Gateway-Fragestellung”, eines CAPTCHA oder sogar durch vollständiges Blockieren schlechter IPs und Sitzungen gemäß den erfassten Parametern und nach den Zustandsmaschinen-Strategieregeln erfolgen. Die Zustandsmaschinenlogik befindet sich optional vom Web-Server getrennt auf einer Steuerungsmaschine.
  • Gemäß einigen Ausführungsformen sieht die vorliegende Erfindung eine Steuerungsmaschine vor, die entsprechend den Zustandsmaschinenregeln oder einem Regelsatz den Web-Server veranlassen kann, gewisse Fragestellungen oder Sanktionen bei gewissen Sitzungen oder gewissen IP-Adressen anzuwenden. Wenn die Steuerungsmaschine die Schlussfolgerung zieht, dass ein gewisses IP oder eine gewisse Sitzung verdächtig ist, sendet sie eine Anweisung, die gewählte Sanktion oder Fragestellung bei einem gewissen IP oder einer gewissen Sitzung anzuwenden (wie, ohne aber darauf beschränkt zu sein, Regenerationsfragestellung, CAPTCHA, vollständiger Block oder Sandbox Modus) zum Web-Server, oder als Alternative zu einer zentralen Speichereinheit, die für alle Anwendungs-Web-Server zugänglich ist (für gewöhnlich: mem-cache), oder zu einer Netzwerk-Appliance. Der Web-Server, die zentrale Speichereinheit oder die Netzwerk-Appliance speichern die Anweisungen, die angeben, welche Sanktionen oder Fragestellungen bei welchen IPs und/oder Sitzungen anzuwenden sind. Wenn ein neuer Aufruf von einem aufgelisteten IP und/oder einer Sitzung bei einem Web-Server erfolgt, durchsucht dieser zuerst seine Sammlung von Anweisungen und wenn eine Anweisung anwendbar ist, antwortet er mit der Sanktion oder Fragestellung, die für dieses IP oder diese Sitzung aufgelistet ist.
  • Falls nicht anders definiert, haben alle technischen und wissenschaftlichen Begriffe, die hierin verwendet werden, dieselbe Bedeutung wie allgemein für einen Durchschnittsfachmann in dem Gebiet bekannt ist, zu dem diese Erfindung gehört. Die hier vorgesehenen Materialien, Verfahren und Beispiele sind nur veranschaulichend und sollen nicht als Einschränkung verstanden werden.
  • Die Implementierung des Verfahrens und Systems der vorliegenden Erfindung beinhaltet die manuelle, automatische oder daraus kombinierte Durchführung oder Vollendung gewisser ausgewählter Aufgaben oder Stufen. Ferner könnten gemäß der tatsächlichen Instrumentierung und Gerätschaft bevorzugter Ausführungsformen des Verfahrens und Systems der vorliegenden Erfindung mehrere ausgewählte Stufen durch Hardware oder durch Software auf jedem Betriebssystem einer beliebigen Firmware oder einer Kombination davon implementiert werden. Zum Beispiel könnten als Hardware ausgewählte Stufen der Erfindung als Chip oder Schaltkreis implementiert sein. Als Software könnten ausgewählte Stufen der Erfindung in Form von mehreren Software-Anweisungen implementiert sein, die von einem Computer mit Hilfe eines geeigneten Betriebssystems ausgeführt werden. In jedem Fall könnten ausgewählte Stufen des Verfahrens und Systems der Erfindung so beschrieben werden, dass sie von einem Datenprozessor wie einer Rechnerplattform zur Ausführung mehrerer Anweisungen durchgeführt werden.
  • Obwohl die vorliegende Erfindung in Bezug auf einen ”Computer” auf einem ”Computernetzwerk” beschrieben ist, sollte festgehalten werden, dass optional jede Vorrichtung, die einen Datenprozessor und/oder die Fähigkeit besitzt, eine oder mehrere Anweisungen auszuführen, als Computer beschrieben werden kann, einschließlich, ohne aber darauf beschränkt zu sein, eines PC (Personal Computer), eines Servers, eines Minicomputers, eines Zellulartelefons, eines Smart-Phones, eines PDA (Personal Data Assistant), eines Pagers, eines TV-Dekodierers, einer Spielkonsole, eines digitalen Musik-Players, einer ATM (Maschine zur Geldbehebung), eines POS-Kreditkartenterminals (Point of Sale), einer elektronischen Kassa. Beliebige zwei oder mehrere solcher Vorrichtungen, die miteinander kommunizieren, und/oder jeder Computer in Kommunikation mit einem anderen Computer könnten optional ein ”Computernetzwerk” bilden.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird hierin nur als Beispiel unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben. Mit besonderer Bezugnahme nun auf die Zeichnungen im Einzelnen wird betont, dass die dargestellten Einzelheiten nur als Beispiel und dem Zweck einer veranschaulichenden Diskussion der bevorzugten Ausführungsformen der vorliegenden Erfindung dienen und angeführt sind, um die vermeintlich nützlichste und leicht verständliche Beschreibung der Prinzipien und Konzepte der Erfindung zu bieten. In dieser Hinsicht wird kein Versuch unternommen, Struktureinzelheiten der Erfindung ausführlicher zu zeigen als für ein grundlegendes Verständnis der Erfindung notwendig ist, wobei die Beschreibung gemeinsam mit den Zeichnungen dem Fachmann offenkundig macht, wie die unterschiedlichen Formen der Erfindung in der Praxis ausgeführt werden könnten.
  • In den Zeichnungen:
  • sind IaIc schematische Zeichnungen von Szenarien, die den Prozess zur Identifizierung eines Klienten zeigen;
  • ist 2 ein beispielhaftes Szenario, das den passiven Modus zeigt;
  • ist 3 ein beispielhaftes Szenario, das den aktiven Modus zeigt;
  • ist 4 eine beispielhafte Struktur eines PRID-Scripts; und
  • ist 5 eine beispielhafte Beschreibung des Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Ausführungsformen der Erfindung
  • Die vorliegende Erfindung betrifft ein Verfahren zum Erfassen von Bots und insbesondere zum Erfassen von Bots auf Anwendungs- und Protokollbasis und zum Begrenzen heimtückischer Bots. Dies erfolgt durch die Identifizierung, ob ein Webseitenaufruf von einem Web-Klienten mit Browser-Fähigkeiten kommt. Die Erfindung betrifft auch Maschinen, die dieses Verfahren ausführen.
  • IaIc sind schematische Zeichnungen von Szenarien, die den Prozess zur Identifizierung von Klienten zeigen. Ia zeigt ein Szenario, in dem der Klient ein Protokoll-Bot ist. In einem solchen Szenario ist der Klient nicht imstande, überhaupt eine PRID zu generieren und somit identifiziert das System diesen Klienten als einen Klienten, der keine Browser-Fähigkeiten hat. In Stufe 1 ruft der Klient eine Seite auf. In Stufe 2 generiert der Web-Server eine PRID nach Empfang des Aufrufs. In Stufe 3 generiert der Server klientenseitige Funktionen, zur Konstruktion der PRID bei Ausführung. Diese Funktionen werden in die Antwort eingebettet und in Stufe 4 zum Klienten zurückgesendet. In Stufe 5 analysiert der Klient die Antwort und da der Klient ein Protokoll-Bot ist, kann der Klient das Java Script nicht ausführen, das in der Antwort eingebettet ist, und wird somit vom Server als ein Klient ohne Browser-Fähigkeiten identifiziert.
  • 1b zeigt ein Szenario, in dem der Klient ein Anwendungs-Bot ist. In einem solchen Szenario ist der Klient nicht imstande, eine korrekte PRID zu generieren. Obwohl der Klient die Java Scripts ausführen kann, ist der Klient nicht imstande, auf die notwendigen Objekte zuzugreifen; daher identifiziert das System diesen Klienten als einen Klienten ohne Browser-Fähigkeiten. In Stufe 1 ruft der Klient eine Seite auf. In Stufe 2 generiert der Web-Server eine PRID nach Empfang des Aufrufs. In Stufe 3 generiert der Server klientenseitige Funktionen zur Konstruktion der PRID bei Ausführung. Diese Funktionen werden in die Antwort eingebettet und in Stufe 4 zum Klienten zurückgesendet. In Stufe 5 analysiert der Klient die Antwort und führt das Java Script aus, da der Klient ein Anwendungs-Bot ist, ist der Klient nicht imstande, auf die notwendigen Objekte zuzugreifen, und generiert somit eine verformte PRID. In Stufe 7 sendet der Klient die generierte PRID zum Server. In Stufe 8 vergleicht der Server die ursprüngliche PRID mit der von einem Klienten gesendeten PRID. Der Server findet keine Übereinstimmung zwischen den zwei PRIDs und somit identifiziert der Server den Klienten als einen Klienten ohne Browser-Fähigkeiten.
  • Ic zeigt ein Szenario, in dem der Klient ein Browser ist. In einem solchen Szenario ist der Klient imstande, eine korrekte PRID zu generieren. Der Klient kann die Java Scripts ausführen und auf die notwendigen Objekte zugreifen; somit identifiziert das System den Klienten als einen Klienten mit Browser-Fähigkeiten. In Stufe 1 ruft der Klient eine Seite auf. In Stufe 2 generiert der Web-Server eine PRID nach Empfang des Aufrufs. In Stufe 3 generiert der Server klientenseitige Funktionen zur Konstruktion der PRID bei Ausführung. Diese Funktionen werden in die Antwort eingebettet und in Stufe 4 zum Klienten zurückgesendet. In Stufe 5 analysiert der Klient die Antwort und führt das Java Script aus. In Stufe 6 generiert der Klient eine korrekte PRID. In Stufe 7 sendet der Klient die generierte PRID zum Server. In Stufe 8 vergleicht der Server die ursprüngliche PRID mit der vom Klienten gesendeten PRID. Der Server findet eine Übereinstimmung zwischen den zwei PRIDs und identifiziert somit den Klienten als einen Klienten mit Browser-Fähigkeiten.
  • 2 ist ein Flussdiagramm hoher Ebene des Prozesses zur Identifizierung von HTTP-Aufrufen von Klienten ohne Browser-Fähigkeiten [passiver Modus].
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung ist ein Modus zur Überwachung von Aufrufen vorgesehen, während der aufgerufene Inhalt weiterhin vom Web-Server bedient wird. Dieser Modus wird in der Folge als ”passiver Modus” bezeichnet. Gemäß dieser Ausführungsform werden die Aufrufe überwacht, um zwischen Aufrufen, die von Klienten mit Browser-Fähigkeiten generiert wurden, und anderen Klientenaufrufen zu unterscheiden. Unter Überwachung wird das Erfassen und Analysieren von Verkehr in einer nicht intrusiven Weise verstanden. Der ”passive Modus” ermöglicht optional die Anwendung von Entscheidungsfällungsregeln bevor ein aktiver Schritt unternommen wird. Solche Entscheidungsfällungsregeln können zum Beispiel und ohne Einschränkung die Bearbeitung spezifischer Aufrufe von einem Klienten ohne Browser-Fähigkeiten, die als legitime Klienten klassifiziert sind, beinhalten. Solche legitime Benutzer können zum Beispiel und ohne Einschränkung ein Suchmaschinen-Spider sein. Solche Entscheidungsfällungsregeln können optional und ohne Einschränkung den Benutzer gemäß dem Verdachtsmoment für die Zuordnung einer oder mehrerer Einschränkungen entsprechend dem Verdachtsmoment und anhand Identität des Urhebers der Aufrufe klassifizieren.
  • Unter Bezugnahme nun auf die Zeichnung gibt in Stufe 1 ein Web-Klient einen Aufruf für eine Seite von einem Browser aus. In Stufe 2 generiert das Modul im Web-Server, der zum Erfassen verdächtiger Bots verantwortlich ist, eine Seitenaufruf-ID, die eine einzigartige Identifizierung des Aufrufs ist. In Stufe 3 wird die Seitenaufruf-ID gemeinsam mit dem aufgerufenen Inhalt vom Web-Server zur Steuerungsmaschine als Seitenaufrufereignis gesendet. In Stufe 4 wird [optional] ein Iframe generiert, das zusätzliche klientenseitige Dateien von der Steuerungsmaschine abfragt, die in der zurückgesendeten Seite eingebettet sind. In dieser klientenseitigen Steuerungsscriptdatei können dynamische Datenerfassungsfunktionen eingebettet sein, um Daten zu sammeln, die später im Prozess in Stufe 9 weitergesendet werden. In Stufe 5 werden Seitenaufruf-ID-Rekonstruktionsfunktionen generiert. Seitenaufruf-ID-Rekonstruktionsfunktionen sind Funktionen, die, wenn sie aufgerufen werden, die Seitenaufruf-ID generieren. In Stufe 6 wird der Code in der Antwort eingebettet und zum Web-Klienten gesendet. In Stufe 7, die nach Empfang einer Antwort vom Web-Server ausgeführt wird, wird die Antwort verarbeitet. In Stufe 8, die nur durchgeführt wird, wenn der Klient Browser-Fähigkeiten hat, wird die Seitenaufruf-ID aus den PRID-Regenerationsfunktionen generiert. In Stufe 9 wird die Seitenaufruf-ID mit einem zusätzlichen Aufruf zum Beispiel und ohne Einschränkung Ajax, HTTP Get oder HTTP Post, zum Web-Server zurückgesendet. Als Alternative kann die PRID direkt zur Steuerungsmaschine und nicht zur Urhebermaschine gesendet werden. In Stufe 13, die ausgeführt wird, wenn die Nachricht, die in Stufe 9 gesendet wurde, beim Web-Server eintrifft, wird eine asynchrone Nachricht mit der regenerierten PRID zur Steuerungsmaschine gesendet um zu berichten, dass die PRID regeneriert und zurückgesendet wurde. In Stufe 14, die durchgeführt wird, wenn die Steuerungsmaschine die Nachricht empfängt, die in Stufe 13 gesendet wurde, wird die regenerierte PRID auf der Steuerungsmaschine gespeichert. Wenn die regenerierte PRID mit der ursprünglich generierten PRID übereinstimmt, wird ein Paar derselben PRIDs auf der Steuerungsmaschine empfangen und gespeichert. In Stufe 10, die von der Steuerungsmaschine nach Empfang des ersten Ereignisses mit der Seitenaufruf-ID ausgeführt wird, wird das Ereignis zur Durchführung eines Paritätsprüfungsprozesses geloggt. Die Paritätsprüfung wird für alle Aufrufe ausgeführt, die dieselbe IP-Adresse wie der gegenwärtige Aufruf umfassen. Eine solche Paritätsprüfung umfasst nicht den aktuellen Aufruf, sondern nur die Aufrufe vor diesem Aufruf. In Stufe 12 wird die Anzahl von Seitenaufrufereignissen, die nicht mit einem entsprechenden Seitenaufrufereignis für dasselbe IP gepaart sind und somit einen Aufruf von einem Klienten ohne Browser-Fähigkeiten anzeigen, mit einem vordefinierten Schwellenwert verglichen. In Stufe 16, die durchgeführt wird, wenn der Disparitätswert den vorbestimmten Schwellenwert übersteigt, wird eine Nachricht zum Begrenzen der IP zum Web-Server gesendet. Gemäß einer Ausführungsform kann die Nachricht das Blockieren des IP bedeuten. Gemäß einer anderen Ausführungsform kann die Nachricht das Begrenzen des IP entsprechend vordefinierten Regeln bedeuten. In einem solchen Fall kann die Nachricht optional zu einem anderen Server gesendet werden, der optional die Regeln anwenden und den Begrenzungsbefehl zum Web-Server senden kann. In Stufe 15 wird das IP falls erforderlich blockiert.
  • 3 ist ein beispielhaftes Szenario, das den aktiven Modus beschreibt. In Stufe 1 wird ein Seitenaufruf von einem Web-Klienten zu einem Web-Server gesendet. In Stufe 2 prüft der Web-Browser, ob eine PRID-Variable im Aufruf enthalten ist. Falls dies nicht der Fall ist, wird dieser als ein erster Aufruf an die URL/URI angenommen. Ein PRID-Flag, das, ohne aber darauf beschränkt zu sein, ein Zeichen in dem PRID generierten String sein kann, wird in Stufe 10 auf falsch gesetzt. Das Flag wird zur Vermeidung einer Endlosschleifenbildung verwendet, die eintreten kann, wenn der Browser auf einen Betrieb in einem Modus gestellt wird, in dem Cookies gesperrt sind. In Stufe 12, wird eine PRID generiert und die Sitzung als Veteransitzung in Stufe 13 markiert, was angibt, dass diese Sitzung nicht neu generiert wird, wenn ein nächster Aufruf von demselben Klienten eintrifft. In Stufe 14 wird die PRID als Schlüssel in einer PRID Sitzungsanordnung gespeichert. Diese Anordnung wird zum Speichern aufrufbezogener Informationen verwendet, die verwendet werden, wenn eine Antwort ausgeführt wird. Solche Informationen können zum Beispiel und ohne Einschränkung die POST- oder GET-Verfahrensvariablen sein, die durch den Aufruf gesendet werden. In Stufe 15 werden Aufrufvariablen in der Schlüsselsitzungsanordnung gespeichert. In Stufe 16 werden PRID-Rekonstruktionszufallsfunktionen generiert. Solche Funktionen generieren, wenn sie aktiviert werden, die PRID. In Stufe 17 werden ein HTML-Shell mit den PRID-Rekonstruktionszufallsfunktionen und ein auf sich selbst umgelenktes JS generiert und eine Antwort wird zum Web-Klienten zurückgesendet. Stufen 1821 werden vom Web-Klienten ausgeführt, wenn die erste Antwort, die Funktionen zum Generieren einer PRID umfassen, vom Web-Klienten empfangen werden. In Stufe 18 wird eine HTTP-Antwort verarbeitet. In Stufe 19 wird eine PRID aus den Rekonstruktionszufallsfunktionen generiert. In Stufe 20 lenkt sich die Seite selbst mit einer PRID als Aufrufparameter um.
  • Wenn die Antwort auf die Frage ”ist eine PRID-Variable im Aufruf?” ”ja” ist, nimmt das System an, dass es sich um einen zweiten Aufruf handelt und die PRID wird aus dem Aufruf extrahiert und in Stufe 3 gespeichert. In Stufe 5 prüft das System, ob diese PRID ein Schlüssel in der PRID-Sitzungsanordnung ist. Falls dies zutrifft, werden die Aufrufvariablen aus der PRID-Sitzungsanordnung in Stufe 22 wiederhergestellt. Der PRID-Schlüssel in der PRID-Sitzungsanordnung wird in Stufe 23 gelöscht und in Stufe 24 wird die aufgerufene HTTP-Seite zum Klienten gesendet und vom Klienten in Stufe 21 verarbeitet. Wenn die Antwort auf die Frage, die in Stufe 5 gestellt wird, ”nein” ist (PRID ist kein Schlüssel in der Sitzungsanordnung), handelt es sich um einen spezifischen Fall, in dem die PRID ein Überbleibsel aus einem vorangehenden Aufruf ist. In diesem Fall extrahiert das System das PRID-Flag in Stufe 4. In Stufe 6 prüft das System, ob die Flag-Variable wahr ist. Wenn sie nicht wahr ist, wird sie in Stufe 25 auf echt gesetzt, um die Situation zu markieren, in der eine PRID-Aufrufvariable vorhanden war, aber in der Sitzungsanordnung nicht gefunden wurde. Dann wird in Stufen 1017 das HTTP-Seiten-Shell erneut gesendet, um eine Antwort zu generieren, die PRID-Rekonstruktionszufallsfunktionen umfasst. Wenn diese wieder mit dem PRID-Flag als wahr zurückkommt, prüft das System in Stufe 7, ob es sich um eine Veteransitzung handelt. Falls dies der Fall ist, werden die Stufen 1017 durchgeführt, um eine Antwort zu generieren, die PRID-Rekonstruktionszufallsfunktionen umfasst. Wenn die Sitzung in Stufe 7 nicht als Veteran markiert wird, bedeutet dies, dass etwas falsch ist, da dieser Aufruf verarbeitet wurde, aber von ihm keine Spur in der Sitzung ist. Diese Situation kann eintreten, wenn der Aufruf von einem Browser verarbeitet wurde, dessen Cookies-Modus abgeschaltet ist. In diesem Fall wird eine passende Nachricht zum Klienten gesendet. Dieses Flag wird verwendet, um unendliche Schleifen für den Fall zu vermeiden, dass im Browser 5 keine Cookies sind.
  • 4 ist eine beispielhafte Struktur eines PRID-Scripts. Gemäß einer Ausführungsform erfordert das Script einen Interpreter zum Laufen und hat niemals explizit eine PRID in seinem Code eingebettet und daher ist ein ”Scraping” der PRID nicht möglich. Solche Attribute garantieren, dass eine korrekte PRID nur bei Klienten generiert wird, die den Script-Interpreter oder eine Laufzeitumgebung haben. Die Scripten verwenden zusätzlich und optional Seiten- und Browser-Objekte im Code, der die PRID generiert. Die Anforderung, die Objekte zu verwenden, garantiert, dass nur Browser, die die Seite wiedergeben und Objektreferenzen enthalten (für gewöhnlich DOM – Dokumentobjektmodell und Browser-Objekte wie Navigator, Window, Location und dergleichen) imstande sind, die korrekte PRID zu regenerieren. In dem beispielhaften Script ist die generierte PRID KXqe.
  • 5 ist eine schematische Zeichnung des Systems. Wie dargestellt, weist ein System 100 mehrere Benutzercomputer auf, die als Benutzercomputer A 101, B 102 und C 103 dargestellt sind, die optional von jeder geeigneten Zahl sein können, von welchen aber nur drei nur zur Veranschaulichung und ohne Einschränkung in jeglicher Hinsicht dargestellt sind; sowie mehrere Web-Server, die als Web-Server A 105 und Web-Server B 106 dargestellt sind, die optional von jeder geeigneten Zahl sein können, von welchen aber nur zwei nur zur Veranschaulichung und ohne Einschränkung in jeglicher Hinsicht dargestellt sind; Cluster-dedizierte Server 109, Corporate-Server 110, Cluster Server Ebene 1 104, Ebene 2 Zentral-DB 107 und einen Benutzercomputer 109. Benutzercomputer A 101, B 102 und C 103 sind an einen Web-Server A 105 und Web-Server B 106, vorzugsweise über das Internet angeschlossen, um Informationen vom Web-Server zu gewinnen. Es sollte festgehalten werden, dass mehrere als ein Cluster-Server betrieben werden können und nur einer zur Veranschaulichung dargestellt ist. Benutzercomputer A 101, B 102 und C 103 betreiben für gewöhnlich legitime Abfragen an Server A 105 und Web-Server B 106; solche Abfragen können zum Beispiel Abfragen sein, die von einem legitimen Browser und dergleichen eingeleitet werden. Benutzercomputer A 101, B 102 und C 103 könnten jedoch illegale Abfragen betreiben, die von heimtückischen Bots eingeleitet werden. Corporate-Server 110 sind auch an das Internet angeschlossen, für gewöhnlich über eine einzelne IP-Adresse, und betreiben Abfragen von mehreren Benutzern unter Verwendung der einzelnen IP-Adresse. In dem beispielhaften Diagramm sind Corporate-Server an Cluster-dedizierte Ebene 1 Server 109 nur zum Bedienen der Corporate-Server 110 angeschlossen. System 100 sichert die Web-Server vor heimtückischen Bots durch Verwendung eines dedizierten Software-Moduls, das auf jedem Web-Server installiert ist, und durch Verwendung von Ebene 1 Servern, die als 104 und 109 dargestellt sind, und Ebene 2 Servern, die als 107 dargestellt sind. Cluster-Server Ebene 1 104 und Cluster-dedizierte Server 109 kommunizieren mit den Web-Servern zur Identifizierung heimtückischer Bots. Die Kommunikation erfolgt vorzugsweise über das Internet. Das Verfahren für die Verdächtigung heimtückischer Bots ist ausführlicher in 2A und 2B erklärt. Wenn ein verdächtiger Bot gefunden wird, wird eine Nachricht zu den Ebene 2 Servern 107 gesendet. Ebene 2 Server 107 führen weitere Operationen zur Klassifizierung des Bot und zur Zuordnung von Begrenzungen aus, falls erforderlich. Die Informationen bezüglich verdächtiger Bots werden vorzugsweise in der Datenbank des Ebene 2 Servers 107 für eine zukünftige Bewertung des Schweregrades gehalten. Der Prozess zur Klassifizierung des Verdachts und zur Zuordnung von Begrenzungen beruht auf Parametern, die von einem Bediener über einen Benutzercomputer konfigurierbar sind, der als Benutzercomputer A 109 dargestellt ist. Die Konfiguration erfolgt vorzugsweise über eine Dashboard Web-Schnittstelle 108. Ebene 2 Server 107 kommuniziert vorzugsweise mit den relevanten Web-Servern zur Aktualisierung der Web-Server bezüglich des verdächtigen Bot und der zugeordneten Begrenzungen. Web-Server, die als Web-Server A 105 und Web-Server B 106 dargestellt sind, führen Richtigstellungen bei Abfragen von den verdächtigen Bots nach Bedarf durch den Ebene 2 Server 107 aus. Ebene 2 Server 107 und Web-Server kommunizieren vorzugsweise über das Internet. Es sollte festgehalten werden, dass Ebene 1 Server und Ebene 2 Server optional sind und der funktionelle Nachweis heimtückischer Bots in den Web-Servern eingebettet sein kann, die als Web-Server A 105 und Web-Server B 106 dargestellt sind. Es sollte auch festgehalten werden, dass die Klassifizierung der verdächtigen Bots optional ist und das System ohne Klassifizierung arbeiten kann. Die Klassifizierung kann, falls sie verwendet wird, in jeden Server eingebettet werden, wie Ebene 1 Server, Web-Server und dergleichen.
  • Obwohl die Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, ist offensichtlich, dass viele Variationen, Modifikationen und andere Anwendungen der Erfindung vorgenommen werden können.

Claims (22)

  1. Verfahren zum Identifizieren, ob ein Web-Klient Browser-Fähigkeiten hat, umfassend: eine Urhebermaschine, die einen Webseiten-Aufruf vom Web-Klienten empfängt; wobei die Urhebermaschine eine Seitenaufruf-ID (PRID) und ein Script generiert, das, wenn es von einem Web-Klienten mit einem Browser ausgeführt wird, eine PRID regeneriert, und das Script in eine Antwort einbettet; wobei die Urhebermaschine die Antwort zum Web-Klienten sendet, damit sie der Web-Klient verarbeitet und, wenn der Web-Klient imstande ist, das eingebettete Script auszuführen, dadurch eine PRID regeneriert und die regenerierte PRID zur Urhebermaschine zurücksendet; wobei die Urhebermaschine oder eine Steuerungsmaschine die zurückgesendete regenerierte PRID mit der generierten PRID vergleicht, wobei eine Übereinstimmung anzeigt, dass der Web-Klient Browser-Fähigkeiten hat.
  2. Verfahren nach Anspruch 1, wobei die PRID eine Kombination aus Zahlen und/oder Zeichen umfasst.
  3. Verfahren nach Anspruch 1 oder Anspruch 2, wobei die PRID mit Hilfe eines serverseitigen Codes wie PHP, .Net framework oder Python generiert wird.
  4. Verfahren nach Anspruch 1 oder Anspruch 2, wobei die PRID mit Hilfe eines Web-Serverfilters (wie ISAPI) oder einer Netzwerk-Appliance generiert wird.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei das eingebettete Script eine Abfolge von Funktionen oder Sub-Scripten umfasst.
  6. Verfahren nach Anspruch 5, wobei die Steuerungsmaschine Banken von Funktionen oder Sub-Scripten für die Urhebermaschine erzeugt und die Steuerungsmaschine die Banken an der Urhebermaschine von Zeit zu Zeit aktualisiert.
  7. Verfahren nach einem der Ansprüche 1 bis 4, wobei das eingebettete Script einen Teil eines Dokuments umfasst, der von einem Browser interpretiert werden kann und in ein Dokumentobjektmodell wiedergegeben werden kann, und ein klientseitiges Script, das zum Abfragen des Dokuments und des Dokumentobjektmodells verwendet werden kann und im Gegenzug bekannte Zeichen oder Strings liefert.
  8. Verfahren nach Anspruch 7, wobei das eingebettete Script verschiedene PRIDs auf verschiedenen Browsern liefert, abhängig von der Art, in der sie Scripts laufen lassen und Dokumente in ein Dokumentobjektmodell wiedergeben, und in dem die verschiedenen Ergebnisse zur näheren Identifizierung der Art und Version von Browser dienen, und diese gegen die HTTP-Nachrichtenköpfe validiert, einschließlich Benutzer-Agent.
  9. Verfahren nach einem der vorangehenden Ansprüche, wobei die Antwort die aufgerufene Seite umfasst und das Script im Inhalt der aufgerufenen Seite eingebettet ist.
  10. Verfahren nach einem der vorangehenden Ansprüche, wobei die regenerierte PRID mit dem nächsten Seitenaufruf oder in einem separaten Aufruf, der für diesen Zweck bestimmt ist, zurückgesendet wird.
  11. Verfahren nach einem der vorangehenden Ansprüche, wobei die Urhebermaschine und des Weiteren umfassend ein Speichermittel zum Speichern generierter PRIDs und einer Angabe zurückgesendeter regenerierter PRIDs.
  12. Verfahren nach einem der vorangehenden Ansprüche, wobei die Urhebermaschine des Weiteren die generierten PRIDs und die zurückgesendeten PRIDs zur Steuerungsmaschine sendet, die Speichermittel zum Speichern der generierten und zurückgesendeten PRIDs umfasst und Übereinstimmungen und Übereinstimmungsverhältnisse pro IP-Adresse und Sitzung berechnet.
  13. Verfahren nach einem der vorangehenden Ansprüche, wobei in dem Fall, dass wenn mehr als eine vorbestimmte Anzahl und/oder ein vorbestimmtes Verhältnis von PRIDs als Antwort auf Seitenaufrufe von derselben IP-Adresse generiert werden, ohne dass der Web-Klient regenerierte PRIDs zurücksendet oder nur verformte PRIDs zurücksendet, angenommen wird, dass der Web-Klient ein Bot ist.
  14. Verfahren nach Anspruch 13, wobei ein mutmaßlicher Bot oder ein gewähltes IP oder eine gewählte Sitzung einer Fragestellung, wie einem CAPTCHA, unterzogen wird, die erfüllt werden muss, bevor eine aufgerufene Webseite geliefert wird.
  15. Verfahren nach Anspruch 14 wobei die Fragestellung umfasst: die Urhebermaschine, die eine PRID und ein Script generiert, das, wenn es von einem Web-Klient mit einem Browser ausgeführt wird, eine PRID regeneriert und den vorangehenden Seitenaufruf reproduziert, und das Script in eine Antwort einbettet; wobei die Urhebermaschine die Antwort zum Web-Klienten sendet, damit sie der Web-Klient verarbeitet und, wenn der dieser imstande ist, das eingebettete Script auszuführen, dadurch eine PRID und den vorangehenden Seitenaufruf regeneriert, und die regenerierte PRID und den vorangehenden Seitenaufruf zur Urhebermaschine zurücksendet; wobei die Urhebermaschine die zurückgesendete regenerierte PRID mit der generierten PRID vergleicht und als Antwort auf eine Übereinstimmung die zuvor aufgerufene Seite sendet.
  16. Verfahren nach Anspruch 14, wobei die Fragestellung zusätzliche Funktionen umfasst, um das erneute Vorlegen des Seitenaufrufs mit der eingebetteten PRID in weiteren Tests zur Bedingung zu machen, die garantieren, dass die Seite angesehen und auf einem Web-Browser angezeigt wird und nicht im Hintergrund auf einem iFrame, einem untergeordneten Fenster oder einem Browser läuft, der als Hintergrunddienst läuft.
  17. Verfahren nach einem der Ansprüche 13 bis 16, wobei Seitenaufrufe von einem mutmaßlichen Bot entweder blockiert oder nach Regeln begrenzt werden, die optional auf einer Regelmaschine gehalten werden.
  18. Verfahren nach einem der vorangehenden Ansprüche, wobei die Urhebermaschine einen Web-Server oder ein Element vor (bezogen auf die Seite des Web-Klienten) einem Web-Server umfasst, wie einen logischen oder physischen Dritte-Partei-Server oder eine logische oder physische Netzwerkmaschine.
  19. Verfahren nach einem der vorangehenden Ansprüche, wobei die Steuerungsmaschine einen oder mehrere Schritte des Verfahrens ausführt.
  20. Urhebermaschine zur Ausführung des Verfahrens nach einem der Ansprüche 1 bis 19.
  21. Steuerungsmaschine zur Ausführung des Verfahrens nach einem der Ansprüche 1 bis 19.
  22. Computerprogrammprodukt, umfassend einen Computercode, der, wenn er auf einer Urhebermaschine und/oder einer Steuerungsmaschine läuft, diese veranlasst, das Verfahren nach einem der Ansprüche 1 bis 19 auszuführen.
DE112010002445T 2009-06-10 2010-06-10 Identifizierung von Bots Expired - Fee Related DE112010002445T9 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US18593809P 2009-06-10 2009-06-10
US61/185,938 2009-06-10
PCT/IB2010/052588 WO2010143152A2 (en) 2009-06-10 2010-06-10 Identifying bots

Publications (2)

Publication Number Publication Date
DE112010002445T5 DE112010002445T5 (de) 2012-10-25
DE112010002445T9 true DE112010002445T9 (de) 2013-02-07

Family

ID=43309296

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010002445T Expired - Fee Related DE112010002445T9 (de) 2009-06-10 2010-06-10 Identifizierung von Bots

Country Status (5)

Country Link
US (3) US9300683B2 (de)
AU (1) AU2010258278A1 (de)
CA (1) CA2764815A1 (de)
DE (1) DE112010002445T9 (de)
WO (1) WO2010143152A2 (de)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2924049C (en) 2008-04-01 2019-10-29 Nudata Security Inc. Systems and methods for implementing and tracking identification tests
US9842204B2 (en) 2008-04-01 2017-12-12 Nudata Security Inc. Systems and methods for assessing security risk
KR101109669B1 (ko) * 2010-04-28 2012-02-08 한국전자통신연구원 좀비 식별을 위한 가상 서버 및 방법과, 가상 서버에 기반하여 좀비 정보를 통합 관리하기 위한 싱크홀 서버 및 방법
WO2012005739A1 (en) * 2010-07-09 2012-01-12 Hewlett-Packard Development Company, L.P. Responses to server challenges included in a hypertext transfer protocol header
US8930896B1 (en) * 2010-07-23 2015-01-06 Amazon Technologies, Inc. Data anonymity and separation for user computation
WO2012107879A2 (en) * 2011-02-10 2012-08-16 Site Black Box Ltd. DISTINGUISH VALID USERS FROM BOTS, OCRs AND THIRD PARTY SOLVERS WHEN PRESENTING CAPTCHA
CN102737019B (zh) * 2011-03-31 2016-08-24 阿里巴巴集团控股有限公司 机器行为确定方法、网页浏览器及网页服务器
GB2491101B (en) 2011-04-15 2013-07-10 Bluecava Inc Detection of spoofing of remote client system information
KR101869133B1 (ko) * 2011-12-31 2018-06-19 톰슨 라이센싱 웹 페이지들을 제공하기 위한 방법 및 장치
WO2013168158A1 (en) * 2012-05-08 2013-11-14 Site Black Box Ltd. Centralized device reputation center
US8856924B2 (en) 2012-08-07 2014-10-07 Cloudflare, Inc. Mitigating a denial-of-service attack in a cloud-based proxy service
US9660993B2 (en) * 2012-10-25 2017-05-23 Facebook, Inc. Event reporting and handling
US20150156084A1 (en) * 2012-12-02 2015-06-04 Bot Or Not, Llc System and method for reporting on automated browser agents
DE202013100910U1 (de) 2013-03-01 2013-04-09 Alicius Schröder CAPTCHA zur Unterscheidung von Computern und Menschen bei der Interaktion von Computern
DE102013102068A1 (de) 2013-03-01 2014-09-04 Alicius Schröder Verfahren zur Unterscheidung von Computern und Menschen bei der Interaktion von Computern
US9225737B2 (en) 2013-03-15 2015-12-29 Shape Security, Inc. Detecting the introduction of alien content
EP3058545B1 (de) * 2013-10-18 2017-08-09 White Ops, Inc. System zur erkennung von klassen automatisierte browseragenten
US9223997B2 (en) 2014-01-03 2015-12-29 Juniper Networks, Inc. Detecting and breaking CAPTCHA automation scripts and preventing image scraping
US9225729B1 (en) 2014-01-21 2015-12-29 Shape Security, Inc. Blind hash compression
US10097583B1 (en) 2014-03-28 2018-10-09 Amazon Technologies, Inc. Non-blocking automated agent detection
US9361446B1 (en) * 2014-03-28 2016-06-07 Amazon Technologies, Inc. Token based automated agent detection
US9424414B1 (en) 2014-03-28 2016-08-23 Amazon Technologies, Inc. Inactive non-blocking automated agent detection
US8997226B1 (en) 2014-04-17 2015-03-31 Shape Security, Inc. Detection of client-side malware activity
US9083739B1 (en) 2014-05-29 2015-07-14 Shape Security, Inc. Client/server authentication using dynamic credentials
US10103961B2 (en) * 2014-07-25 2018-10-16 Teacher Insurance & Annuity Association of America Collecting client-side application performance monitoring information
US10298599B1 (en) 2014-09-19 2019-05-21 Shape Security, Inc. Systems for detecting a headless browser executing on a client computer
US9954893B1 (en) 2014-09-23 2018-04-24 Shape Security, Inc. Techniques for combating man-in-the-browser attacks
US10380627B2 (en) 2015-02-12 2019-08-13 Kenshoo Ltd. Identification of software robot activity
US9608975B2 (en) 2015-03-30 2017-03-28 Shape Security, Inc. Challenge-dynamic credential pairs for client/server request validation
US9986058B2 (en) 2015-05-21 2018-05-29 Shape Security, Inc. Security systems for mitigating attacks from a headless browser executing on a client computer
US9866545B2 (en) * 2015-06-02 2018-01-09 ALTR Solutions, Inc. Credential-free user login to remotely executed applications
WO2017007705A1 (en) 2015-07-06 2017-01-12 Shape Security, Inc. Asymmetrical challenges for web security
US10230718B2 (en) 2015-07-07 2019-03-12 Shape Security, Inc. Split serving of computer code
US11140168B2 (en) * 2015-07-22 2021-10-05 AVAST Software s.r.o. Content access validation system and method
US10375026B2 (en) 2015-10-28 2019-08-06 Shape Security, Inc. Web transaction status tracking
CN106686151B (zh) * 2015-11-11 2020-05-15 阿里巴巴集团控股有限公司 一种ip地址获取方法及装置
US10212130B1 (en) 2015-11-16 2019-02-19 Shape Security, Inc. Browser extension firewall
US10402555B2 (en) * 2015-12-17 2019-09-03 Google Llc Browser attestation challenge and response system
US10270792B1 (en) * 2016-01-21 2019-04-23 F5 Networks, Inc. Methods for detecting malicious smart bots to improve network security and devices thereof
US10326790B2 (en) 2016-02-12 2019-06-18 Shape Security, Inc. Reverse proxy computer: deploying countermeasures in response to detecting an autonomous browser executing on a client computer
US10855696B2 (en) * 2016-03-02 2020-12-01 Shape Security, Inc. Variable runtime transpilation
US10567363B1 (en) 2016-03-03 2020-02-18 Shape Security, Inc. Deterministic reproduction of system state using seeded pseudo-random number generators
US9917850B2 (en) 2016-03-03 2018-03-13 Shape Security, Inc. Deterministic reproduction of client/server computer state or output sent to one or more client computers
US10129289B1 (en) 2016-03-11 2018-11-13 Shape Security, Inc. Mitigating attacks on server computers by enforcing platform policies on client computers
WO2018005893A1 (en) 2016-06-30 2018-01-04 Shape Security, Inc. Client-side security key generation
US10135852B2 (en) * 2016-09-09 2018-11-20 Ca, Inc. Bot detection based on behavior analytics
CN110892677A (zh) * 2017-05-05 2020-03-17 万事达技术加拿大无限责任公司 区分人类用户与软件机器人的系统和方法
US11038869B1 (en) 2017-05-12 2021-06-15 F5 Networks, Inc. Methods for managing a federated identity environment based on application availability and devices thereof
US9781160B1 (en) * 2017-05-31 2017-10-03 KnowBe4, Inc. Systems and methods for discovering suspect bot IP addresses and using validated bot IP address to ignore actions in a simulated phishing environment
US10802453B2 (en) * 2017-06-02 2020-10-13 Bank Of America Corporation Robotics process automation macro bot
US10505992B2 (en) 2017-07-07 2019-12-10 T-Mobile Usa, Inc. Bot profile discovery
EP3438866A1 (de) * 2017-08-02 2019-02-06 Thomson Licensing Netzwerkvorrichtung und verfahren zur bestimmung von sicherheitsproblemen in solch einer netzwerkvorrichtung
GB201715801D0 (en) * 2017-09-29 2017-11-15 Intechnica Ltd Method of processing web requests directed to a website
US10931691B1 (en) 2017-10-09 2021-02-23 F5 Networks, Inc. Methods for detecting and mitigating brute force credential stuffing attacks and devices thereof
US10965683B1 (en) * 2017-12-07 2021-03-30 Wells Fargo Bank, N.A. Login and authentication methods and systems
US11245722B1 (en) * 2018-02-13 2022-02-08 Akamai Technologies, Inc. Content delivery network (CDN)-based bot detection service with stop and reset protocols
US11368483B1 (en) 2018-02-13 2022-06-21 Akamai Technologies, Inc. Low touch integration of a bot detection service in association with a content delivery network
US11157571B2 (en) 2018-07-12 2021-10-26 Bank Of America Corporation External network system for extracting external website data using generated polymorphic data
US10929878B2 (en) * 2018-10-19 2021-02-23 International Business Machines Corporation Targeted content identification and tracing
US11349981B1 (en) 2019-10-30 2022-05-31 F5, Inc. Methods for optimizing multimedia communication and devices thereof
FR3104781B1 (fr) 2019-12-17 2023-04-07 Atos Consulting Dispositif de détection de faux comptes sur des réseaux sociaux
US11748460B2 (en) * 2020-04-27 2023-09-05 Imperva, Inc. Procedural code generation for challenge code
US11303695B2 (en) 2020-04-27 2022-04-12 Imperva, Inc. Forced identification with automated POST resubmission
US11611629B2 (en) * 2020-05-13 2023-03-21 Microsoft Technology Licensing, Llc Inline frame monitoring
US11558183B2 (en) * 2020-05-15 2023-01-17 Bank Of America Corporation System for exchanging symmetric cryptographic keys using computer network port knocking
US11445003B1 (en) * 2021-06-22 2022-09-13 Citrix Systems, Inc. Systems and methods for autonomous program detection
US11889153B2 (en) 2022-05-11 2024-01-30 Bank Of America Corporation System and method for integration of automatic response generating systems with non-API applications
US11977779B2 (en) 2022-05-11 2024-05-07 Bank Of America Corporation Smart queue for distributing user requests to automated response generating systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060190561A1 (en) * 2002-06-19 2006-08-24 Watchfire Corporation Method and system for obtaining script related information for website crawling
US8321955B2 (en) * 2003-08-26 2012-11-27 Wu-Chang Feng Systems and methods for protecting against denial of service attacks
US20060136249A1 (en) * 2004-12-17 2006-06-22 Kagan Lloyd D Method for recycling used items
US8719396B2 (en) * 2005-05-20 2014-05-06 Vibrant Media Limited Fraud prevention and detection for online advertising
US20070260520A1 (en) * 2006-01-18 2007-11-08 Teracent Corporation System, method and computer program product for selecting internet-based advertising
US20070255821A1 (en) * 2006-05-01 2007-11-01 Li Ge Real-time click fraud detecting and blocking system
US8849746B2 (en) * 2006-12-19 2014-09-30 Teradata Us, Inc. High-throughput extract-transform-load (ETL) of program events for subsequent analysis
US7895653B2 (en) * 2007-05-31 2011-02-22 International Business Machines Corporation Internet robot detection for network distributable markup
US20090241174A1 (en) * 2008-02-19 2009-09-24 Guru Rajan Handling Human Detection for Devices Connected Over a Network
US8316310B2 (en) * 2008-08-05 2012-11-20 International Business Machines Corporation System and method for human identification proof for use in virtual environments
US20100250397A1 (en) * 2009-03-24 2010-09-30 Gregory Ippolito Internet Retail Sales Method and System Using Third Party Web Sites

Also Published As

Publication number Publication date
US9680850B2 (en) 2017-06-13
CA2764815A1 (en) 2010-12-16
US20170243003A1 (en) 2017-08-24
US20160119371A1 (en) 2016-04-28
US20120090030A1 (en) 2012-04-12
DE112010002445T5 (de) 2012-10-25
US9300683B2 (en) 2016-03-29
WO2010143152A3 (en) 2011-05-05
AU2010258278A1 (en) 2012-01-12
WO2010143152A2 (en) 2010-12-16

Similar Documents

Publication Publication Date Title
DE112010002445T9 (de) Identifizierung von Bots
DE60114999T2 (de) Überwachung von und interaktion mit netzwerkdiensten
DE60210408T2 (de) Ueberwachung des Datenflusses zur Verbesserung des Netzwerksicherheitsschutzes
DE69818008T2 (de) Datenzugriffssteuerung
US8949990B1 (en) Script-based XSS vulnerability detection
DE69936384T2 (de) System und verfahren für die sicherheit eines kodes
DE112011101831B4 (de) Schutz vor websiteübergreifenden Scripting-Attacken
DE112010003454T5 (de) Bedrohungserkennung in einem Datenverarbeitungssystem
Yusof et al. Preventing persistent Cross-Site Scripting (XSS) attack by applying pattern filtering approach
DE112010004605T5 (de) Verfahren und Vorrichtung zur Sicherheitsprüfung
CN106951784B (zh) 一种面向XSS漏洞检测的Web应用逆向分析方法
DE102008016197A1 (de) Identifizieren eines Anwendungsbenutzers als Quelle einer Datenbank-Aktivität
CN103179132A (zh) 一种检测和防御cc攻击的方法及装置
DE112016005266T5 (de) Schnelle Musterentdeckung für Protokollanalyse
CN103457909A (zh) 一种僵尸网络检测方法及装置
CN105516128A (zh) 一种Web攻击的检测方法及装置
CN103118035A (zh) 分析网站访问请求参数合法范围的方法及装置
DE112011101943T5 (de) Verfahren und Einheit zum Entschärfen von seitenübergreifenden Sicherheitslücken
EP3311552A2 (de) Netzwerkkontrollgerät
DE112021004808T5 (de) Erkennen von malware durch analyse verteilter telemetriedaten
Massa et al. A fraud detection system based on anomaly intrusion detection systems for e-commerce applications
DE112012004301T5 (de) Erzeugen einer vorhersagenden Datenstruktur
DE102017127280B4 (de) Schutz vor realtime phishing und anderen attacken während eines login-prozesses an einem server
CN113742631A (zh) 一种基于cdn的网站图片防盗链方法
DE102012102399B4 (de) Verfahren und Telekommunikationsanordnung zur Bereitstellung von Daten an einem Client-Computer

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: PATENTANWAELTE BALS & VOGEL, DE

R081 Change of applicant/patentee

Owner name: FIREBLADE LTD., IL

Free format text: FORMER OWNER: SITE BLACK BOX LTD., TEL AVIV, IL

Effective date: 20141118

R082 Change of representative

Representative=s name: PATENTANWAELTE BALS & VOGEL, DE

Effective date: 20141118

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee