Wenn Sie Ihren Kunden eine API anbieten, steigern Sie Ihren Umsatz, vergrößern aber auch Ihre Angriffsfläche. Unternehmen können eine API anbieten, die in Anwendungen von Drittanbietern eingebettet werden kann, um die Entwicklung zu vereinfachen. Wenn Sie beispielsweise soziale Medien in eine Anwendung einbetten, können Kunden über ein Produkt diskutieren, ohne dass Ihr Entwicklungsteam erheblichen Mehraufwand hat. Das Social-Media-Unternehmen gewinnt an Verkehr und Sichtbarkeit, und der Kunde kann einfacher entwickeln und gleichzeitig seiner Anwendung neue Funktionen hinzufügen.
Obwohl eine API gut für Marketing und Umsatz ist, vergrößert das Hinzufügen von APIs und Endpunkten Ihre Angriffsfläche. Eine API ist ein zusätzliches Risiko, das verwaltet werden kann, aber alle Endpunkte sollten streng überwacht und gesichert werden. Die meisten Administratoren sind sich einig, dass APIs überwacht werden müssen, aber in einer schnelllebigen Geschäftsumgebung mit zahlreichen Updates und Bereitstellungen kann es passieren, dass man den Überblick über die APIs verliert und unwissentlich ein Cybersicherheitsrisiko namens „Zombie-APIs“ hinzufügt.
Eine Zombie-API ist (einfach ausgedrückt) eine vergessene und übersehene Infrastruktur, die weiterhin zur Nutzung verfügbar ist, von deren Existenz sich die Organisationen jedoch nichts wissen. Zombie-APIs können in kleinen oder großen Umgebungen erstellt werden, aber sie werden häufig in Umgebungen erstellt, in denen IT-Ressourcen ohne strenge Bereitstellungs- und Dokumentationsverfahren erstellt werden. Die Änderungskontrolle hilft, Zombie-API-Situationen zu vermeiden, aber es können auch Notfallbereitstellungen oder -konfigurationen zur Behebung eines bestimmten kritischen Fehlers vorkommen.
In einer automatisierten Umgebung werden Cloud-Ressourcen häufig zusammen mit Anwendungscode bereitgestellt. Der Vorteil besteht darin, dass Entwickler und Betriebspersonal nicht mehr daran denken müssen, Hardware bereitzustellen und manuell zu konfigurieren. Die Automatisierung der Softwarebereitstellung verringert Vorfälle aufgrund von Fehlkonfigurationen oder vermeidet Probleme, bei denen Entwickler vergessen, Anfragen zur Bereitstellung von Ressourcen zur Unterstützung ihrer Anwendungen einzuschließen.
In einigen Umgebungen erhalten Entwickler Zugriff auf ihre eigenen Testserver. Diese Server sind möglicherweise über das öffentliche Internet zugänglich, sodass Entwickler neuen Code testen können. Ein API-Testserver ist möglicherweise über das öffentliche Internet verfügbar und Entwickler denken möglicherweise, dass er nicht erkannt wird, wenn er nicht veröffentlicht wird.
Zombie-APIs können auf zahlreiche Arten mit ihren eigenen Randfällen erstellt werden, selbst mit den strengsten Änderungskontrollverfahren. Ob sie nun aus Fehlern oder Fehlleitung entstehen, Zombie-APIs sind eine Form von
Genau wie es je nach Situation zahlreiche Möglichkeiten gibt, eine Zombie-API zu erstellen, gilt das Gleiche für das Auffinden einer Zombie-API. Hacker könnten einen Endpunkt finden, indem sie Code zurückentwickeln, Open-Source-Repositorys überprüfen oder ein Konzept namens „Fuzzing“ verwenden. Fuzzing ist eine Art der Erkennung, bei der Skripte geschrieben werden, um Anfragen an gängige API-Endpunktnamen zu stellen. Beispielsweise ist es üblich, dass ein zur Authentifizierung verwendeter API-Endpunkt einen Endpunkt mit dem Namen „/login“ oder „/authenticate“ oder etwas Ähnlichem hat. Um Endpunkte zu ermitteln, werden Anfragen an verschiedene gängige Endpunktnamen an Ihre Infrastruktur gestellt.
Die Entdeckung aus Open-Source-Repositories ist üblich. Open-Source-Repositories sind auch anfällig für die Offenlegung von Geheimnissen, was bedeutet, dass Entwickler möglicherweise vergessen, Verweise auf private Schlüssel, Authentifizierungsdaten und andere private Daten zu entfernen. Verweise auf API-Endpunkte sind ebenfalls für die Entdeckung verfügbar und werden auf Schwachstellen geprüft. Wenn Ihre Organisation keine Kenntnis von im Code referenzierten Endpunkten hat, könnten diese ohne jegliche Abschwächung oder Ratenbegrenzung geprüft werden.
Eine Zombie-API ist nicht immer anfällig für Bug-Exploits. Beispielsweise könnte die Ausnutzung von SQL-Injection-Schwachstellen zur Offenlegung vertraulicher Daten führen, aber einige Endpunkte sind ordnungsgemäß codiert und somit widerstandsfähig gegen Bedrohungen. In einer Zombie-API-Situation funktioniert die API möglicherweise normal, kann aber ohne Einschränkungen zum Sammeln von Daten verwendet werden. Es ist möglich, dass der Endpunkt einen Geschäftslogikfehler aufweist, der ausgenutzt werden könnte, aber ohne Überwachung würde jede verdächtige Aktivität unentdeckt bleiben.
Ein gutes Beispiel für eine API, die normal funktioniert, aber zur stillen Aufzählung von Daten verwendet wird, ist die
Nachdem ein Sicherheitsforscher die Zombie-API entdeckt hatte, behauptete JustDial, den Vorfall behoben zu haben, doch das gleiche Problem wurde 2020 erneut festgestellt. Es ist unklar, ob außer dem Sicherheitsforscher noch Dritte daran beteiligt waren, aber da der Endpunkt für das öffentliche Internet zugänglich war und keine Überwachung stattfand, kann JustDial das Ausmaß der Datenexfiltration nicht einschätzen.
Ein weiteres Beispiel ist Facebook, eines der großen Technologieunternehmen aus San Francisco, das für einige der besten Entwickler auf dem Markt bekannt ist. Bei Facebook gab es mehrere Fälle von Zombie-APIs. 2016 stellten Entwickler eine Subdomain (mbasic.beta.facebook.com) bereit, um ihre Funktion zum Zurücksetzen von Passwörtern zu testen. Die Produktionsversion der API hatte Geschwindigkeitsbeschränkungen, sodass Angreifer den sechsstelligen Passcode, der den Benutzern zum Zurücksetzen ihrer Passwörter gesendet wurde, nicht mit Brute-Force-Methoden knacken konnten. Die Betaversion hatte diese Beschränkung nicht, sodass ein sechsstelliger Passcode innerhalb von Sekunden mit Brute-Force-Methoden geknackt werden konnte. Die einzigen Einschränkungen waren eine Internetverbindung, Bandbreite und die Backend-Verarbeitungsgeschwindigkeit der API-Endpunkte.
Im Jahr 2018 litt Facebook unter einem weiteren
Bei einem kleineren Unternehmen kam es 2022 zu einem erheblichen Datendiebstahl durch eine Zombie-API mit einem Endpunkt von Travis CI. Travis CI ist ein Automatisierungsanbieter, der Infrastruktur und Code bereitstellt. Einer der API-Endpunkte von Travis CI erforderte keine Authentifizierung und ermöglichte Anfragen zum Abrufen von Kundenprotokollereignissen. Um die Sache noch schlimmer zu machen, wurden die Protokolle im Klartext gespeichert, sodass Benutzerprotokolldaten, einschließlich Zugriffsschlüssel, ohne Einschränkungen abgerufen werden konnten. Als das Problem gemeldet wurde, schätzte Travis CI, dass 770 Millionen Benutzerprotokolldatensätze, einschließlich Zugriffstoken, Schlüssel und Cloud-Anmeldeinformationen, gestohlen wurden.
Im Idealfall dokumentieren Softwareentwickler Änderungen an der Infrastruktur, sodass die Änderungskontrolle neue API-Endpunkte umfasst. Betriebsmitarbeiter können dann Endpunkte zu Überwachungsagenten hinzufügen, und diese Agenten sammeln Daten, sodass Cybersicherheits- und Analysemonitore Administratoren benachrichtigen können, wenn verdächtige Aktivitäten erkannt werden. Eine Zombie-API entsteht, wenn Endpunkte nicht dokumentiert sind, sodass Überwachungsagenten diese Endpunkte nicht kennen. Ohne Überwachung können alle Anfragen ohne Analyse und Administratorwarnungen an Server gesendet werden.
Um mit potenziellen Zombie-APIs fertig zu werden, installieren Administratoren häufig Agenten im Netzwerk, um den Datenverkehr zu erkennen. Agenten sammeln Daten zum Datenverkehr und erkennen offene Verbindungen auf Servern und anderer Netzwerkinfrastruktur. Das Problem bei dieser Strategie ist, dass Zombie-APIs oft inaktiv bleiben und keinen Datenverkehr oder keine Anfragen aufweisen, bis sie entdeckt werden. Sie können von Entwicklern, Betriebsabteilungen oder Dritten im Internet entdeckt werden. Erst wenn Dritte den Endpunkt finden, wird der Datenverkehr protokolliert, aber das bedeutet nicht, dass Anfragen Alarme auslösen. Eine Zombie-API ermöglicht Standardanfragen ohne „Hacking“ oder fehlerhafte Abfragen. Das ist es, was Zombie-APIs so gefährlich für die Offenlegung von Daten macht.
Anstatt sich auf Agenten zu verlassen, die Zombie-APIs reaktiv erkennen, ist es eine bessere Lösung, mit künstlicher Intelligenz zu arbeiten und Ihren Code zu scannen. Diese Strategie besteht aus zwei Phasen: Scannen Ihres Repository-Codes nach Verweisen auf interne APIs und Verwenden von Ereignisprotokollen, um festzustellen, ob die API Anfragen empfängt.
Der erste Schritt besteht darin, den Code nach Verweisen auf APIs zu durchsuchen. Diese APIs können extern oder intern sein, aber Sie sollten sich auf interne APIs konzentrieren, da diese Infrastruktur Ihre eigenen Daten beeinflusst. Die Verweise können sich in zahlreichen aktiven und veralteten Repositories befinden. Möglicherweise sind Sie sich nicht einmal bewusst, dass die Verweise in Ihrem Code enthalten sind, aber durch das Scannen werden sie entdeckt, sodass eine Liste an die künstliche Intelligenz (KI) gesendet werden kann.
Als Nächstes folgt ein großes Sprachmodell (LLM), das zum Aufnehmen und Analysieren von Ereignisprotokollen verwendet wird. Ereignisprotokolle können möglicherweise Gigabyte oder Terabyte an zeilenweisen Daten umfassen. Ereignisprotokolle sind für die Cybersicherheit und die Überwachung der Nutzung der Infrastruktur von entscheidender Bedeutung. Daher sollten sie für Server eingerichtet werden, auf denen APIs gehostet werden. Wenn im Code auf einen API-Endpunkt verwiesen wird, dieser aber nur wenige oder keine Verkehrsereignisse aufweist, handelt es sich möglicherweise um eine Zombie-API. APIs mit Referenzen und zahlreichen Ereignisprotokollen werden verwendet und überwacht, sodass sie nicht als Zombie-API gelten würden.
Die Verwendung von LLMs zur Verarbeitung von Analysen für jede API-Endpunktreferenz nimmt Zeit in Anspruch, aber die Ergebnisse könnten Administratoren überraschen, die nicht wissen, dass in ihrer Umgebung aktive APIs vorhanden sind. Ein Beispiel:
Die Antwort lautet „Ja!“ Zombie-APIs können Ihre Kundendaten, internen Daten oder andere wichtige Informationen offenlegen. In einer konformen Umgebung kann dieses Versäumnis Millionen an Bußgeldern kosten. Eine nicht überwachte Infrastruktur, die zu einem Datenverstoß führt, kann zu Rechtsstreitigkeiten, Markenschäden, Umsatzeinbußen und vielen anderen negativen Folgen führen.
Eine bessere Transparenz der Umgebung eines Unternehmens ist für die Cybersicherheit und eine schnellere Reaktion auf Vorfälle von entscheidender Bedeutung. Da immer mehr Unternehmen ihre Infrastruktur in der Cloud bereitstellen, ist es wichtiger denn je, sicherzustellen, dass Sie keine losen Enden haben, einschließlich Zombie-APIs. Die Dokumentation Ihrer Infrastruktur ist ein großartiger erster Schritt, aber es ist möglich, dass einige APIs durch die Maschen schlüpfen. Durch kontinuierliches Scannen Ihres Codes können Sie Zombie-APIs identifizieren, die dann deaktiviert oder zu Überwachungsagenten hinzugefügt werden können. Eine bessere Transparenz Ihrer Infrastruktur verringert das Risiko, vertrauliche Daten preiszugeben, und reduziert Ihre Angriffsfläche.