Ein seltener Vertreter des Brute-Force-Typs: die Geschichte eines Angriffs



Während wir daran arbeiteten, den Online-Shop eines unserer Kunden zu schützen, stießen wir mehrmals auf einen merkwürdigen Brute-Force-Angriff, der nicht so einfach zu kontern war. Es basierte auf einer einfachen Lösung, die den Angriff von den Reihen ihrer Art unterschied. Was sie war und wie wir uns immer noch gegen sie verteidigten, lesen Sie unter dem Schnitt.

Wie Sie wissen, ist die „klassische“ Brute-Force ein Daten-Brute-Force-Angriff. Beispielsweise werden bekannte Konten erfasst und Kennwörter nach bestimmten Kriterien ausgewählt, die entweder im laufenden Betrieb oder basierend auf gestohlenen Wörterbüchern generiert werden. Dies ist die grundlegende Methode zum Hacken von Konten.

Und in dem von mir beschriebenen Fall haben sich die Angreifer etwas anders verhalten. Erstens verwendeten sie ein großes Botnetz, das von mehreren hundert infizierten Computern auf verschiedene Länder verteilt war. Im Überwachungssystem sah alles so aus, als wären es völlig andere Computer oder Proxys, an denen echte Personen saßen und auf die Site zugegriffen haben. Ein solcher Angriff kann lange Zeit unbemerkt bleiben.

Das zweite Merkmal des Angriffs war neben seiner starken geografischen Verteilung die Aufzählung nicht von Anmeldungen, sondern von Anmeldungen. Die Angreifer verwendeten wahrscheinlich Wörterbücher mit gängigen Passwörtern und gestohlenen Anmeldelisten. Und zuerst wurde ein Login zum bekannten Passwort geführt, dann ein anderes, drittes und so weiter. Dies war der Situation sehr ähnlich, in der sich normale Benutzer, die über einen Anbieter verbunden sind, nicht mit ihren Kennwörtern anmelden können. Das ist auf den ersten Blick nichts Verbrecherisches. Darüber hinaus war der Zugriff auf die Ressource sehr selten - ein oder zwei pro Minute.

Das dritte Merkmal des Angriffs war, dass sich das Botnetz sehr „menschlich“ verhielt: Clients verarbeiteten JavaScript und akzeptierten Cookies.

Aufgrund dieses Komplexes von Faktoren blieb der Angriff lange Zeit unbemerkt. Als wir es dennoch entdeckten, stellten wir uns eine nicht triviale Frage: Wie können wir uns verteidigen? Alle Botnet-Computer hatten keine besonderen Unterscheidungsmerkmale, mit Ausnahme eines bestimmten Fehlers im Benutzeragenten. Wir haben den Angriff jedoch nicht aufgrund dieses Zeichens blockiert, da wir in diesem Fall die Aktionen des Angreifers nicht mehr sehen würden. Es war notwendig, einige andere Anomalien hervorzuheben. In Bezug auf IP-Adressen ist nichts Besonderes passiert. Es ist auch unmöglich, Anmeldungen zu blockieren, bei denen eine große Anzahl erfolgloser Anmeldeversuche durchgeführt wird, da die Häufigkeit sehr gering ist und die Anmeldung nicht verschlüsselt wird. Es gab nur einen Weg - Captcha einzuführen. Aber der Kunde wollte das wirklich nicht, weil er glaubte, dass Captcha viele Kunden entfremden könnte. Inzwischen ist es den Angreifern bereits gelungen, für einige Accounts die richtigen Kombinationen auszuwählen.

Sie sind sicherlich ratlos: Warum sollte jemand in die Konten von Kunden eines Online-Shops einbrechen? Tatsache ist, dass auf Ihrem Konto Bonuspunkte gesammelt werden, mit denen Sie Rabatte auf Waren erhalten können. Wahrscheinlich wollte jemand wirklich Bonuspunkte im Internet kaufen oder verkaufen.

Infolgedessen haben wir den Client überredet, das Captcha mit F5-Tools zu implementieren: Es sollte nach einer bestimmten Anzahl erfolgloser Einträge angezeigt worden sein. Zunächst mussten jedoch die Kriterien für eine erfolgreiche Anmeldung im System konfiguriert werden. Dies stellte sich als etwas komplizierter heraus, als es aussah, da die Ressource in einigen Fällen für Anmeldeversuche denselben Antwortcode angibt. Als Kriterium für den Erfolg der Anmeldung haben wir uns entschieden, die Client-Domain-Cookies zu senden.

In der neuesten Version von F5 ASM wurde es möglich, auf Auswahlversuche anhand der Geräte-ID zu reagieren - einer eindeutigen Browser-ID. Der Seite wird ein JS-Code hinzugefügt. Wenn der infizierte Computer diese Seite öffnet, meldet er seine eindeutige Kennung. Bei unseren Angreifern stellte sich heraus, dass die Geräte-ID des Browsers für jede IP-Adresse gleich war. Das heißt, ein Browser, auf den von einer IP-Adresse aus zugegriffen wird.



Daher können Sie das folgende Kriterium festlegen: Wenn innerhalb von 15 Minuten mehr als 5 erfolglose Anmeldeversuche von einem Browser aus durchgeführt werden, wird diesem Client ein Captcha angezeigt. Wenn dies ein wirklich normaler Benutzer ist, wird er es lösen und sich ruhig anmelden. Falls der Browser JavaScript nicht unterstützt, haben wir Ausnahmen hinzugefügt. Um den Schutz nicht zu schwächen, haben wir ein anderes Kriterium verwendet: Wenn mehr als 20 erfolglose Anmeldeversuche von einer IP-Adresse aus durchgeführt werden, wird erneut ein Captcha angeboten. Nochmals: Für einen normalen Benutzer verursacht dies keine Probleme.

Aber schon heute gibt es Methoden, um den Schutz mit Captcha zu umgehen. Zum Beispiel senden Botnets Captchas an "Outsourcing" - nach China oder Indien, wo fleißige Einheimische gegen eine geringe Gebühr Captchas lösen und Textwerte zurückgeben. In diesem Fall können Sie jedoch geeignete Maßnahmen ergreifen: Selbst wenn die Anmeldeversuche nicht erfolgreich sind, können Anmeldeversuche von einer bestimmten IP- oder Geräte-ID blockiert werden, wenn die angegebene Anzahl erfolgloser Versuche überschritten wird.

Als der Online-Shop das letzte Mal auf diese Weise angegriffen wurde, haben wir das Captcha verwaltet und es hat funktioniert. Nach seiner Einführung begann der Brute-Force-Angriff allmählich zu verblassen und hörte schließlich auf. Seitdem ist ungefähr ein Jahr vergangen - es gab keine Rückfälle.

Andrei Chernykh, Experte im Informationssicherheitszentrum Jet Infosystems

Source: https://habr.com/ru/post/de414487/


All Articles