Zum Inhalt springen Weiter zur Suche
Testversion
Blog

Wie Angreifer mit Bots in APIs eindringen

APIs sind zu sehr beliebten Angriffszielen geworden, und fast alle Angriffe, die wir gegen API-Endpunkte beobachten, nutzen groß angelegte, föderierte Botnets. Die Angriffsmethoden haben sich in den letzten Jahren nicht unbedingt verändert, aber die Angriffe sind durch den Einsatz von Software-Robotern automatisiert, ausgefeilt und ausweichend geworden.

Für den Fall, dass Sie sich gerade erst mit diesem Angriffsvektor vertraut machen wollen, fangen wir mit einer kleinen Vorgeschichte an:

Was ist ein Bot?

Ein Bot ist einfach ein Software-Roboter - ein Programm, das eine Aufgabe ausführt und normalerweise über ein Netzwerk betrieben wird, um eine bestimmte Aufgabe zu automatisieren. Sie haben wahrscheinlich Bots in Ihrer Infrastruktur, die Systeme überwachen, Builds starten oder die Testautomatisierung in Ihrer CI/CD-Pipeline ausführen. Bots haben einen Großteil der mühsamen Systemadministration und Servicebereitstellung übernommen, wie es das Versprechen der Robotik ist, seit die Menschen zum ersten Mal von einer Welt träumten, in der Automaten unsere Mahlzeiten kochen und unseren Rasen mähen.

Isaac Asimov hat in die Firmware von Robotern in seinen futuristischen Welten den Spruch "Don't harm humans" eingebaut. Aber die Bots, über die wir uns Sorgen machen, befolgen nicht unbedingt Asimovs erstes Gesetz der Robotik.

Das sind böse Bots, die geschrieben wurden, um schändliche Aktivitäten zu automatisieren, die geschrieben wurden, um legitime Systeme auf Schwachstellen zu untersuchen, die geschrieben wurden, um der Internetkriminalität die lästige Arbeit abzunehmen.

In eklatanter Verletzung von Asimovs berühmter Ermahnung sind diese Bots für Angriffe konzipiert, und da der Stand der Technik fortgeschritten ist, setzen Cyberkriminelle Bots auch für skalierte Angriffe, Aufklärung, Entdeckung und Umgehung ein.

Skalierte Angriffe - auch bekannt als Botnets

Ein einzelner Software-Roboter kann viel Schaden anrichten, aber er ist langsam und oft leicht zu entdecken und zu blockieren. Clevere Angreifer umgehen dies, indem sie viele Computer geschickt zu einem Netzwerk von Systemen zusammenschließen, auf denen jeweils eine Variante eines Angriffs ausgeführt wird. Diese Systemnetzwerke sind die "Botnets", von denen Sie schon so viel gehört haben. Die Angreifer bauen, kaufen oder mieten Botnet-Kapazitäten und konstruieren ihre Bots so, dass sie über einen Verbund von Systemen mit jeweils eigenen IP-Adressen operieren. Auf diese Weise erhöhen sie zum einen die Geschwindigkeit, Häufigkeit und Intensität ihrer Angriffe und verringern zum anderen den Kollateralschaden für ihre eigenen kriminellen Bemühungen, wenn ein einzelner Knoten in diesem Netzwerk entdeckt und blockiert wird.

Das Ausmaß dieser Botnetze kann schwindelerregend sein, und die Angreifer nutzen dieses Ausmaß auf drei Arten. Erstens bündeln sie ihre Aufklärungsaktivitäten, so dass sie sehr schnell ein Dossier über eine Website erstellen können. Zweitens erzeugen sie oft ein überwältigendes Rauschen, um Verteidiger und Verteidigungssysteme gleichermaßen abzulenken, und verstecken ihre wirklichen Absichten in einem Strom von Datenverkehr, der von Hunderten oder Tausenden von Bots erzeugt wird. Und drittens nutzen sie dieselben Legionssysteme, um legitime Systeme in die Knie zu zwingen, indem sie sie mit dem nur allzu bekannten verteilten Denial-of-Service-Angriff überwältigen.

Verwendung von Bots für die Entdeckung

Wir haben beobachtet, dass Angreifer in letzter Zeit viel Zeit in der Erkundungsphase von Angriffen verbringen, insbesondere mit APIs, die in der Regel mehr Geschäftslogik und damit mehr Daten oder personenbezogene Informationen preisgeben. Angreifer setzen in dieser Phase Bots ein, weil sie so schnell Informationen sammeln und Dinge ausprobieren können, ohne entdeckt zu werden.

Bots für die Aufklärung - Erkunden, Sammeln, Testen

Wenn Angreifer beispielsweise versuchen, ein wertvolles oder verwundbares Ziel zu identifizieren, verwenden sie häufig ein Botnetz, das über Tausende von Hosts verteilt ist. Da jeder Host eine eindeutige IP-Adresse hat und herkömmliche Abwehrsysteme IP-Adressen als primäre Steuerungsebene verwenden, bleibt diese Aufklärungsarbeit oft unbemerkt. Wenn ein Sicherheitsteam beobachtet, dass ein einzelner Host (mit einer einzigen IP-Adresse) versucht, jede URL oder jeden Pfad anzugreifen, ist das natürlich verdächtig. Wenn diese Aktivität jedoch über mehrere IP-Adressen verteilt ist, sieht es so aus, als würden verschiedene Benutzer unterschiedliche Teile der Anwendung verwenden. Die schändlichen Aktivitäten würden nicht so schnell entdeckt werden.

Dieses Szenario tritt häufig auf, wenn ein neues CVE bekannt gegeben wird. Wenn ein Sicherheitsexperte feststellt, dass ein potenzielles Angriffsmuster 500.000 Mal von einer einzigen IP-Adresse aus durchgeführt wurde, ist dies offensichtlich bösartig. Dieser Bot wird blockiert. Wenn jedoch derselbe Angreifer seine Aktivitäten über Hunderte oder Tausende von Hosts in einem Botnetz verteilt, bleibt jede IP-Adresse unterhalb der Erkennungsschwelle und der Angriff bleibt unter dem Radar.

Letztendlich ist es das Ziel der Angreifer, Botnets und den Umfang, den sie bieten, zu nutzen, um nicht aufzufallen, während sie einen API-Endpunkt auf Schwachstellen untersuchen.

Einsatz von Bots für Angriffe

Nach der Entdeckung und Erkundung nutzen die Angreifer ihre Erkenntnisse und starten einen Angriff. Auch hier übernehmen Bots die Schwerstarbeit, und wenn sie diese Arbeit an ein föderiertes Netzwerk von Angriffsbots abgeben, kann der Angriff "niedrig und langsam" und damit für die Verteidiger schwer zu entdecken sein.

Bot-Netze können niedrige und langsame Angriffe erzeugen

In der noch nicht allzu fernen Vergangenheit waren Angriffe leichter zu erkennen. Wenn Sie von einem DDoS- oder Credential Stuffing-Angriff betroffen waren, konnten Sie einen enormen Anstieg der Zahl der IP-Adressen feststellen, die versuchten, Ihre Server zu erreichen und Sie entweder anzugreifen oder Anmeldedaten zu erhalten. Es ist einfach, dies als anomale und verdächtige Aktivität zu erkennen. Heute sehen wir jedoch viel mehr niedrige und langsame Angriffe, bei denen die Angreifer eine breite Palette von verteilten IP-Adressen verwenden. Jede IP-Adresse stellt nur eine Anfrage, vielleicht jede Minute oder vielleicht sogar fünf Minuten. Diese Anfragen sehen legitim aus, aber sie versuchen, Anmeldedaten zu stehlen.

Da die Last auf diese Weise auf mehrere IP-Adressen verteilt wird, gibt es, wenn eine IP-Adresse blockiert wird, Tausende weitere, die bereit sind, den Angriff fortzusetzen. Alarmierend ist, dass sich diese Methode in Richtung Selbsterkenntnis bewegt, und wir alle wissen, was passiert, wenn Skynet empfindungsfähig wird. Wenn die Angreifer bei einem Credential Stuffing-Angriff aus ihrer Erkundung wissen, dass eine IP-Adresse nach drei fehlgeschlagenen Anmeldeversuchen gesperrt wird, werden sie zwei Anmeldeversuche mit einer IP-Adresse unternehmen und dann zur nächsten IP-Adresse wechseln.

Letztlich können Angreifer mit der Kombination aus Hunderttausenden gestohlener IP-Adressen und Bots viel schneller vorgehen - sie können eine API zuordnen, ein anfälliges Ziel identifizieren und es dann angreifen, ohne IP-Adressen zu "verlieren".

Einsatz von Bots zur Umgehung

Es kommt immer häufiger vor, dass Angreifer Bots als Ablenkungsmanöver einsetzen, um unbemerkt auf das eigentliche Ziel losgehen zu können. Um diese Ablenkung zu erreichen, führen sie eine Reihe offensichtlicher Angriffe wie DDoS, SQLi, XSS usw. aus. Diese Angriffe überwältigen entweder eine Sicherheitslösung oder lösen Tausende von Warnungen aus, denen die Sicherheitskräfte nachgehen müssen. Die wahren Absichten des Angreifers sind nun unter den Warnmeldungen verborgen. Die eigentliche Absicht könnte ein gezielterer Angriff sein, z. B. die Suche nach einer gebrochenen Autorisierung auf Objektebene oder einer BOLA-Schwachstelle in einer bestimmten API. Wenn das Sicherheitsteam abgelenkt ist, kann der Angreifer die Benutzer-IDs aufzählen, um herauszufinden, ob eine API eine fehlende oder defekte Autorisierung hat, um Zugriff auf wertvolle Daten zu erhalten.