Home Technische Artikel So schützen Sie Ihren OTT-Service vor einem Credential Stuffing-Angriff
Applications

So schützen Sie Ihren OTT-Service vor einem Credential Stuffing-Angriff

About The Author

Outline

Die Bedrohung durch Angriffe auf OTT-Streaming-Dienste wurde in letzter Zeit deutlich. Innerhalb weniger Stunden nach der hochgelobten Einführung eines beliebten Streaming-Dienstes wurden Benutzerkonten gehackt und zum Verkauf angeboten. Dieser Verstoß entwickelte sich zu einer PR-Herausforderung, da Tausende von Abonnenten sich zu sozialen Medien wandten, um ihre Frustrationen über gesperrte Kontozugriffe und Probleme bei der Verfügbarkeit von Diensten zu entkräften.

Wie diese Erfahrung zeigt, stellen Angriffe auf Credential Stuffing eine neue Herausforderung für OTT-Sicherheitsteams dar. Abonnements für Streaming-Dienste, die durch kostenlose Testversionen, Kabelabschnitte und exklusive Inhalte angetrieben werden, haben zu einer großen Sammlung von Benutzerinformationen geführt, wodurch OTT-Dienste immer attraktiver für Datendiebstahl werden. Der Wiederverkauf von Zugriff auf missbräuchliche Konten ist nicht das einzige Motiv für Hacker. Sie können auch wertvolle private Daten von missbrauchten Benutzerkonten wie Adressen, Telefon- und Browserverlauf sowie Kreditkartendaten abfragen. Der Hacker kann diese Informationen dann über das Dark Web verkaufen oder durch Social Engineering und Phishing-Angriffe weiteren Schaden anrichten.

Die Schadenszone eines Credential Stuffing-Angriffs geht weit über die Auswirkungen auf die Privatsphäre und die Finanzen eines Benutzers hinaus. Credential Stuffing-Angriffe verwenden Botnets, die Millionen von Anmeldeanforderungen pro Stunde automatisieren können und die Anwendungsinfrastruktur verheeren. Selbst bei einer geringen Erfolgsrate kann eine derart hohe Anzahl von Anfragen die Betriebskosten der Streaming-Plattform in die Höhe treiben. Zusätzliche CPU-Zyklen, Speicher und Gebühren für Dateneingänge/Datenausgänge steigen im Laufe der Zeit. Angesichts der relativ hohen Kosten für die Verwaltung von Anwendungs-Backends, insbesondere in der Cloud, sind Anmeldeanforderungen, die stark von den Backend-Systemen abhängen, die teuersten Angriffe. Letztendlich beeinträchtigt ein hohes Maß an unkontrollierten, ruchlosen Aktivitäten den Service für legitime Benutzer, die versuchen, Inhalte zu authentifizieren, zu durchsuchen und zu streamen.

Wie kann ein Streaming-Dienst diese wachsende Bedrohung neutralisieren? In diesem technischen artikel wird erläutert, was für die Verwaltung von Bots in der heutigen Welt erforderlich ist und was ein Streaming-Service benötigt, um die Auswirkungen eines Credential Stuffing-Angriffs zu minimieren – und die Wahrscheinlichkeit zu verringern.

Die Anatomie eines Credential Stuffing-Angriffs

Cyberkriminelle können einen Credential Stuffing-Angriff starten, indem sie gestohlene Anmeldeinformationen auf verschiedene Weise erhalten. Dazu gehören die Entdeckung falsch konfigurierter Datenbanken, Phishing-Angriffe, die Infizierung von Benutzergeräten mit Malware oder der Kauf von gehackten Anmeldeinformationen im dunklen Web. Als Nächstes leiten Angreifer unzählige Anmeldeanforderungen über verteilte Proxyserver weiter, um den Ursprung des Angriffs zu verschleiern und die Anforderungen zu verstärken. Kriminelle können Zugang zu Proxy-Diensten zu erschwinglichen Stundensätzen von Bot-Herdern in dunklen Webforen erwerben. Schließlich erstellen Angreifer Skripte, um Authentifizierungsanfragen mithilfe der Liste der verstoßenen Anmeldeinformationen zu automatisieren, wobei sie in der Regel wiederverwendete oder vereinfachte Passwörter nutzen, um Zugriff auf Services zu erhalten. Angreifer können auch Toolkits im Dark Web erwerben, wie z. B. CAPTCHA-Solver, Browser-Emulatoren oder Fingerabdruck-Spoofing-Skripte, um bestehenden Abwehrmaßnahmen entgegenzuwirken.

Schutz vor Credential Stuffing-Angriffen

Um solche Angriffe zu stoppen, müssen Bots von Menschen unterschieden werden. Leider finden Bot-Betreiber ständig neue Wege, um Bot-Erkennungsmethoden zu umgehen. Die neueste Generation von Bots ist fast nicht von Menschen zu unterscheiden.

Da Bots immer ausgefeilter geworden sind, reichen einfache Abwehrstrategien, wie das Blockieren der Anfrage des Bots, der IP-Adresse oder des User-Agent (UA), nicht mehr aus. Angreifer nutzen heute höchstwahrscheinlich einen der billigen und reichlich rotierenden IP-Proxydienste, anstatt von statischen IPs aus anzugreifen, was ihnen hilft, Ratenbegrenzungen und den Schutz von einfachen Zugriffskontrolllisten (ACL) zu umgehen. Außerdem ist das Blockieren nicht ratsam, da es als nützlicher Feedback-Mechanismus für Bot-Betreiber dient, der ihnen anweist, ihre Automatisierung weiterzuentwickeln, um die Erkennungsmethode zu umgehen.

Bot-Erkennungstechniken mussten ausgefeilter werden, um der zunehmenden Komplexität von Bot-Angriffen gerecht zu werden. Moderne Bot-Erkennungstechniken umfassen drei Arten der Analyse sowohl auf der Server- als auch auf der Client-Seite. Sie sind:

  1. Fingerabdruck anfordern
  2. Client-Fingerabdruck
  3. Verhaltensbezogene Fingerprinting

Du brauchst eine Kombination aus allen drei, um anspruchsvolle Angriffe auf Credential Stuffing zu besiegen.

Angriffserkennungsmethode 1: Anfordern von Fingerabdrücken

Die Anforderung erfolgt normalerweise auf der Serverseite, sobald der Server alle angeforderten Informationen vom Client erhält. Eine Clientanforderung besteht in der Regel aus einer Kombination aus Netzwerk (IP), Verbindung, Verschlüsselung und anderen HTTP-Metadaten, die analysiert und zur Generierung eines Anforderungs-Fingerabdrucks verwendet werden. Dieser Fingerabdruck enthält Kerndetails wie IP-Adresse, TCP-Handshake, TLS-Handshake (d. h. TLS-Protokoll, Ciphers und Erweiterungen), HTTP-Header und Header-Reihenfolge sowie andere aus den Metadaten abgeleitete Informationen wie ASN und Gerätetyp. Zusammen können diese Anforderungsmerkmale eine eindeutige Signatur oder einen Fingerabdruck für jeden Client ergeben.

Abbildung 1. Ein kleines Beispiel von Anforderungsmerkmalen, die zusammen einen eindeutigen Anforderungs-Fingerabdruck erstellen können.

Vom Fingerabdruck aus können wir nach Anomalien suchen. Wenn beispielsweise eine Anforderung behauptet, von einem Chrome-UA zu stammen, enthält sie Header in der Reihenfolge, die in dieser Version des Chrome-Browsers erwartet wird, wie im Benutzeragenten angegeben? Werden die typischen HTTP- und TLS-Protokolle verwendet? Enthält die ClientHello-Nachricht das Protokoll und die Verschlüsselung mit der für diese Chrome-Version typischen bevorzugten Reihenfolge? Neben der Analyse der Anforderungsmetadaten kann der Server auch eine begrenzte Verhaltensanalyse durchführen, z. B. die Anzahl der Anforderungen und deren Häufigkeit und ob es ein Browsermuster gibt, mit dem bestimmt werden kann, ob die Anforderungen automatisiert sind.

Die Anforderung von Fingerabdrücken ist ein notwendiger erster Schritt, reicht aber allein nicht aus.

Angriffserkennungsmethode 2: Client-Fingerabdruck

Die Herausforderung beim Fingerabdruck von Anfragen besteht darin, dass Angreifer jetzt Fingerabdrücke von Anfragen fälschen können, die in den meisten Fällen zu 100 % mit dem tatsächlichen Client identisch erscheinen. Wenn die Angreifer einen Fehler machen, werden diese Fehler durch die Anforderung von Fingerabdrücken identifiziert – aber Sie können sich nicht darauf verlassen, dass dies regelmäßig geschieht.

Im Grunde genommen erzählt das Abtasten von Fingerabdrücken nur die Hälfte der Geschichte. Der Server muss sehen, was auf der Client-Seite passiert, und einen Client-Fingerabdruck generieren, um den Anforderungs-Fingerabdruck zu ergänzen, um mehr Einblicke zu erhalten. Dadurch erhalten Bot-Erkennungssysteme ein vollständigeres Bild des Clients und es wird für Angreifer schwieriger, eine Erkennung zu vermeiden.

Ein Client-Fingerabdruckserver kann ein kleines Stück JavaScript (JS) zur Ausführung auf der Clientseite einschleusen, indem er die HTML als Reaktion auf die angeforderte Seite neu schreibt. Alternativ kann der Server ein Skript-Tag einfügen, das auf eine Remote-JS verweist, die der Client beim Laden der Anmeldeseite herunterladen kann. Der JS kann Prüfungen auf der Client-Seite durchführen und sammelt Geräteinformationen, z. B. ob JS oder Cookies aktiviert sind, und untersucht Betriebssystem, Canvas, Renderer, Browser, JS-Engine und mehr, um einen vollständigen Client-Fingerabdruck zu generieren.

Es wird erwartet, dass ein normaler Browser Cookies unterstützt und JS aktiviert ist (damit er sich ordnungsgemäß anmelden und Ihre Streaming-Dienste verwenden kann). Wenn er nicht aktiviert ist, kann dies zu Verdacht führen. Client-Fingerabdrücke können andere verdächtige Elemente identifizieren, die nicht typisch für das angekündigte Gerät sind und auf einen potenziellen gefälschten Client hinweisen können, z. B. eine Safari-Browser-UA mit Blink (Browser-Engine) oder Chrome mit einer SpiderMonkey JS-Engine.

Diese Details werden erfasst und können als Beacons an einen Remote-Server gesendet werden, wenn die API zur weiteren Analyse aufruft, oder verschlüsselt und als Cookie oder Header festgelegt werden, der in nachfolgenden Clientanforderungen an den Server zur Analyse gesendet wird. Die oben genannten Techniken zum Sammeln und Generieren von Client-Fingerabdrücken können auch für Streaming-Anwendungen ohne Browser wie iPhone/Android-Apps, Roku oder Samsung-Fernseher über verschiedene SDKs verwendet werden.

Abbildung 2. Eine kleine Auswahl von Merkmalen, die zusammen einen einzigartigen Client-Fingerabdruck erzeugen können.

Während die Kombination aus Anfrage und Client-Fingerabdruck bei Bots der frühen Generation effektiv war, basieren fortgeschrittenere Bots auf denselben Clients wie Menschen, einschließlich Chrome, Firefox und Safari. Sie verwenden möglicherweise auch kopflose Browser wie Headless Chrome. Im Gegensatz zu einfachen Bots, die möglicherweise keine Funktionalität haben, wie z. B. Unterstützung für JavaScript und Cookies, können fortgeschrittene Bots den richtigen Browser und die JS-Engine verwenden, um TCP- und TLS-Handshake- und HTTP-Anforderungen entsprechend ihrem Gerätetyp auszuführen.

Geringe und langsame Angriffe können durch die Verteilung von Anforderungen über Tausende von IP-Adressen durchgeführt werden, wodurch jede Rate-basierte Erkennungsmethode zunichte gemacht wird. Um das Problem noch weiter zu verschärfen, können echte Browser von echten Benutzergeräten entführt und für Credential Stuffing-Aktivitäten verwendet werden. Solche Angriffe werden mit Sicherheit allein bei diesen Ansätzen verpasst.

Angriffserkennungsmethode 3: Verhaltens-Fingerprinting

Um Credential Stuffing wirklich zu übertreffen, müssen Sie intelligente Verhaltensmuster hinzufügen. Wenn Benutzer mit einem Streaming-Dienst interagieren, stellen sie nicht nur Anfragen nach Inhalten, sondern bewegen sich, klicken, tippen und durchsuchen die App. Behavioral Fingerprinting untersucht diese Aktionen, indem Benutzer-Telemetriedaten auf der Client-Seite gesammelt werden, in der Regel über JS. Dazu gehören beispielsweise Mausbewegungsmuster, Tastenanschläge, das Timing einer Aktion oder sogar das Antippen von Gerätesensoren wie Telefonbeschleunigungsmessern oder Gyroskopen, um das Bewegungsmuster und die Positionierung eines Benutzers zu messen.

Basierend auf den erfassten Daten werden Verhaltens-Fingerabdrücke generiert und zur Echtzeit- oder Offline-Analyse gesendet. Weist der Benutzer ein zufälliges oder nicht organisches Muster auf? Bewegt sich die Maus in linearen Mustern oder ist die Bildlaufgeschwindigkeit schneller als ein Mensch erreichen könnte? Befindet sich das Telefon während der gesamten Browsersitzung immer in einem festen Winkel? Ist die Anzahl der Anmeldeanforderungen pro Sekunde menschlich möglich?

Dies ist das Schlachtfeld von Datenwissenschaftlern und Forschern, die maschinelles Lernen einsetzen müssen, um die Daten kontinuierlich zu analysieren und Informationen darüber abzuleiten, ob eine Anfrage automatisiert wird. Dies ist zum Teil auf das exponentielle Wachstum der Kombination von Anforderungen, Geräten und Verhaltensattributen zurückzuführen. Da Bots ihre Fähigkeit verbessert haben, menschliches Verhalten durch Verhaltensentführung zu imitieren, ist es nicht mehr ausreichend, sich auf grundlegende Verhaltensmerkmale wie Mausbewegungen zu verlassen und kann die Falschpositionsrate erhöhen und die Erfahrung echter Benutzer beeinträchtigen.

Diese Arten von Bots stellen die schwierigste Herausforderung dar, um Credential Stuffing abzuschwächen. Das Stoppen der ausgefeiltesten Bots erfordert mehr Daten, z. B. das Browsing-Verhalten des Clients während der Sitzung, um die Absicht des Clients zu analysieren und so zu erkennen, ob die Anfrage bösartig ist. Ist es beispielsweise normal, wenn ein Benutzer die Anmeldeseite eines Streaming-Dienstes direkt besucht, ohne die Homepage zu besuchen? Ist es normal, dass ein Benutzer nach der Anmeldung beim Streaming-Service sofort zur Accountseite navigiert und keine andere Aktion durchführt? Diese Datenpunkte können den Zweck von Bots genau identifizieren. Die Benutzerinteraktion mit dem Streaming-Dienst während der gesamten Sitzung und andere Verhaltensdaten kann zu einem umfassenderen, vollständigeren Fingerabdruck mit einer geringeren Wahrscheinlichkeit für falsch-positive Ergebnisse führen.

Bots verwalten

Wie lautet die richtige Antwort, wenn Sie erfolgreich einen Bot gefunden haben, der versucht, eine Anmeldeanfrage zu stellen? Soll es den Bot blockieren und hoffen, dass er verschwindet? In den meisten Fällen ist das die falsche Aktion. Nehmen wir an, Sie antworten mit einem 4xx-Fehler, z. B. einer nicht autorisierten 401-Antwort. Angreifer kennen die derzeit unzureichenden Techniken und aktualisieren ihre Automatisierungstools, um Ihren Erkennungsmechanismus durch Versuch und Fehler zu überwinden. In diesem Fall haben Sie den Angreifern versehentlich geholfen, indem Sie eine Feedback-Schleife bereitgestellt haben, um sie darauf hinzuweisen, ihre Methode weiterzuentwickeln.

Es ist zwar unvermeidlich, dass erfahrene Bot-Betreiber irgendwann erkennen, dass sie gemindert werden, und ihre Methoden weiterentwickeln, aber es gibt einige bewährte Verfahren, um diese Bemühungen zu vermeiden oder zu verzögern. Wenn erkannt, kann der Server statt die Bot-Anforderungen zu blockieren, einen erwarteten Standard-Antwortcode senden, wenn ein Anmeldeversuch erfolgreich ist, z. B. 200 OK, gekoppelt mit einer statischen Boilerplate-Antwort, die keine sensiblen Daten offenlegt.

Bot-Operatoren gehen eher davon aus, dass eine erfolgreiche Antwort darauf hinweist, dass ihre aktuelle Methode erfolgreich ist. Und dass die gestohlenen Anmeldeinformationen nützlich sind, auch wenn dies nicht der Fall ist, sodass der Angreifer im Dunkeln bleibt. Eine weitere Option besteht darin, die Bot-Anforderung zu tarptieren, indem keine Antwort gegeben wird, sodass die Bot-Anforderung bis zum Timeout hängen bleibt. Dies ist möglich, wenn Sie eine große, global verteilte Plattform mit viel Serverkapazität verwenden, z. B. ein Content Delivery Network (CDN). Diese Methoden der Fehlinformation sind wahrscheinlich effektiver als das bloße Blockieren der Bot-Anfragen.

Eine andere Strategie zur Verwaltung von Bots, die im Falle eines Fehlpositivs weniger Auswirkungen auf die Benutzererfahrung hat, erfordert, dass ein vermuteter Bot ein CAPTCHA löst. Erst nach Abschluss des CAPTCHA ist die Anmeldung erfolgreich. Dadurch können echte Benutzer fortfahren, selbst wenn sie falsch als Bot identifiziert wurden. Außerdem bietet es wertvolles Feedback, um Ihre Erkennungsmethode so anzupassen, dass Fehlalarme reduziert werden.

Sorgen Sie für Sicherheit beim Streaming

Die Verhinderung von Credential Stuffing-Angriffen ist eine wichtige Priorität für jeden OTT-Streaming-Service. Mit zunehmender Beliebtheit dieser Services gewinnen auch die Sicherheitsrisiken. Ein mehrschichtiger Ansatz für Anwendungssicherheit und Bot-Management kann selbst die ausgefeiltesten Bots, die für Credential Stuffing-Angriffe verwendet werden, genau identifizieren und verhindern, dass solche Angriffe Ihre Kundenerfahrung oder Ihren Ruf beeinträchtigen.

Erfahren Sie mehr darüber, wie Sie Ihre Online-Präsenz mit unseren Cloud-Sicherheitsfunktionen vor Angriffen auf Credential Stuffing, DDoS-Angriffen und mehr schützen können.