SSRF-Fehler in Fintech-Plattform ermöglichte Kompromittierung von Bankkonten

  • Forscher entdeckten die Schwachstelle in einer API, die bereits in viele Banksysteme integriert ist. Dadurch hätten Millionen von Nutzern betrogen werden können, indem Angreifer Zugang zu ihren Geldern erhalten hätten.

    Eine Schwachstelle in einer API einer großen Finanztechnologieplattform hätte möglicherweise Millionen von Bankkunden kompromittieren können, so dass Angreifer deren Bankkonten und Gelder hätten kontrollieren können, haben Forscher herausgefunden.

    Ein Team der Salt Labs von Salt Security hat die Schwachstelle in einer API auf einer Webseite identifiziert, die die Überweisungsfunktion der Plattform des Unternehmens unterstützt, mit der Kunden Geld von ihren Konten auf der Plattform auf ihre Bankkonten überweisen können.

    Das fragliche Unternehmen, das zur Wahrung seiner Anonymität den Namen „Acme Fintech“ trägt, bietet einen „digitalen Transformationsdienst“ für Banken aller Größenordnungen an, der es den Instituten ermöglicht, traditionelle Bankdienstleistungen auf Online-Dienste umzustellen. Die Plattform wurde bereits aktiv in die Systeme vieler Banken integriert und hat Millionen von aktiven täglichen Nutzern, so die Forscher.

    Wäre die Schwachstelle ausgenutzt worden, hätten Angreifer verschiedene ruchlose Aktivitäten durchführen können, indem sie sich über die Plattform administrativen Zugriff auf das Banksystem verschafft hätten. Von dort aus hätten sie die persönlichen Daten der Nutzer ausspähen, auf Bankdaten und Finanztransaktionen zugreifen und unbefugte Geldüberweisungen auf ihre eigenen Bankkonten vornehmen können, so die Forscher.

    Nach der Identifizierung der Schwachstelle haben die Forscher ihre Ergebnisse überprüft und dem Unternehmen Empfehlungen zur Schadensbegrenzung gegeben, so die Forscher.

    Hohe Belohnung für Bedrohungsakteure

    API-Schwachstellen werden oft übersehen, aber die Forscher von Salt Labs sagen in ihrem Bericht, dass sie „Schwachstellen wie diese und andere API-bezogene Probleme täglich sehen“.

    Tatsächlich hatten 5 Prozent der Unternehmen in den letzten 12 Monaten einen API-Sicherheitsvorfall, so der State of API Security Report des Unternehmens für das erste Quartal 2022. In diesem Zeitraum sei auch ein erheblicher Anstieg des bösartigen API-Verkehrs zu verzeichnen gewesen, hieß es.

    „Kritische SSRF-Fehler sind häufiger, als vielen FinTech-Anbietern und Bankinstituten bewusst ist“, sagte Yaniv Balmas, Vice President of Research bei Salt Security, in einer Presseerklärung. „API-Angriffe werden immer häufiger und komplexer.“

    Fintech-Unternehmen sind besonders anfällig für Kompromisse, weil ihre Kunden und Partner auf ein riesiges Netzwerk von APIs angewiesen sind, um Interaktionen zwischen verschiedenen Websites, mobilen Anwendungen und kundenspezifischen Integrationen sowie anderen Systemen zu steuern, so die Forscher.

    Dies wiederum macht sie aus mehreren Gründen zu „bevorzugten Zielen von Angreifern, die API-Schwachstellen ausnutzen wollen“, schreiben die Forscher.

    „Erstens sind ihre API-Landschaft und ihre Gesamtfunktionalität sehr umfangreich und komplex, was viel Raum für Fehler oder das Übersehen von Details bei der Entwicklung lässt“, schreiben sie. „Zweitens: Wenn ein bösartiger Akteur diese Art von Plattform erfolgreich missbrauchen kann, sind die potenziellen Gewinne enorm, da dies die Kontrolle über die Bankkonten und Gelder von Millionen von Nutzern ermöglichen könnte.“

    Die Schwachstelle

    Die Forscher entdeckten die Schwachstelle beim Scannen und Aufzeichnen des gesamten über die Website der Organisation gesendeten und empfangenen Datenverkehrs. Auf einer Seite, die Kunden mit verschiedenen Banken verbindet, damit sie Geld auf ihre Bankkonten überweisen können, entdeckten die Forscher ein Problem mit der API, die der Browser aufruft, um die Anfrage zu bearbeiten.

    „Diese spezifische API verwendet den Endpunkt ‚/workflows/tasks/{TASK_GUID}/values‘, die zum Aufruf verwendete HTTP-Methode ist
    PUT, und die spezifischen Anfragedaten werden im HTTP-Body-Abschnitt gesendet“, erklären die Forscher.

    Der Request Body enthält auch ein JWT Bearer Token, einen kryptografisch signierten Schlüssel, der dem Server mitteilt, wer der anfragende Benutzer ist und welche Berechtigungen er hat.

    Die Schwachstelle befand sich in den Anforderungsparametern, die die erforderlichen Daten für eine Geldüberweisung senden – insbesondere ein Parameter namens „InstitutionURL“, erklärten die Forscher. Dabei handelt es sich um einen vom Benutzer bereitgestellten Wert, der eine URL enthält, die auf einen GUID-Wert auf der Website der Empfängerbank verweist.

    In diesem Fall behandelte der Webserver der Bank die vom Benutzer bereitgestellte URL, indem er versuchte, die URL selbst zu kontaktieren. Dies ermöglichte eine SSRF, bei der der Webserver dennoch versuchte, eine beliebige URL aufzurufen, wenn diese in den Code eingefügt wurde, anstatt die URL der entsprechenden Bank, erklärten die Forscher.

    Aufdeckung des SSRF-Fehlers

    Die Forscher demonstrierten diese Schwachstelle, indem sie eine missgebildete Anfrage mit ihrer eigenen Domäne fälschten. Die Verbindung zu ihrem Server wurde erfolgreich hergestellt, was beweist, dass „der Server den in diesem Parameter angegebenen Domänen blind vertraut und eine Anfrage an diese URL stellt“, schreiben sie.

    Außerdem enthielt die Anfrage an den Server ein JWT-Token, das für die Authentifizierung verwendet wurde und sich von dem in der ursprünglichen Anfrage enthaltenen Token unterschied.

    Die Forscher betteten das neue JWT-Token in eine Anfrage ein, die sie zuvor an einen Endpunkt mit dem Namen „/accounts/account“ gerichtet hatten und mit der sie Informationen über ein Bankkonto abrufen konnten. Dieses Mal erhielten sie sogar noch mehr Informationen zurück.

    „Der API-Endpunkt erkannte unser neues JWT-Administrationstoken und lieferte sehr elegant eine Liste aller Benutzer und ihrer Details auf der gesamten Plattform“, so die Forscher.

    Bei einem erneuten Versuch, die Anfrage an einen Endpunkt namens „/transactions/transactions“ mit dem neuen Token zu stellen, konnten sie ebenfalls auf eine Liste aller Transaktionen zugreifen, die von jedem Benutzer im Banksystem durchgeführt wurden, so die Forscher.

    „Diese Schwachstelle ist eine kritische Schwachstelle, die jeden Banknutzer vollständig kompromittiert“, so die Forscher. „Hätten böswillige Akteure diese Schwachstelle entdeckt, hätten sie sowohl den Banken als auch den Nutzern ernsthaften Schaden zufügen können. [the organization] als auch seinen Nutzern.“

    Salt Labs hofft, dass das Aufzeigen von API-Bedrohungen Sicherheitsexperten dazu anregt, einen genaueren Blick darauf zu werfen, wie ihre Systeme auf diese Weise verwundbar sein könnten, so Balmas.

    Einige Teile dieses Artikels stammen aus:
    threatpost.com