APIs sind die nächste Zielscheibe in der Cyberkriminalität

APIs erleichtern die Ausführung und den Aufbau von IT-Systemen, und einige machen es für Hacker leichter, diese anzugreifen.

Die Nutzung von APIs ist rapide angestiegen, und Cyberkriminelle machen sich zunehmend API-Sicherheitsmängel zunutze um Daten zu stehlen und Zugriff auf fremde Infrastrukturen und IT-Systeme zu erlangen.

APIs machen alles vom Datenaustausch über die Systemkonnektivität bis hin zur Bereitstellung kritischer Routinen und Funktionen einfacher, aber sind sie nicht ausreichend abgesichert, machen sie es auch für Cyberkriminelle (und die von ihnen eingesetzten Bots) viel einfacher, Angriffe auszuführen.

Wir werden in diesem Artikel einige der API-Schwachstellen untersuchen, die von Hackern ausgenutzt und missbraucht werden, und dazu die notwendigen Tipps ansprechen, um diese Lücken effektiv zu schließen.

Zu leicht zu entdecken

Wenn wir einen Penetrationstest durchführen, ist das erste, was wir tun, so viele APIs wie möglich zu identifizieren. Wir beginnen, die Zielanwendung wie erwartet zu verwenden. Webanwendungen werden in einem Browser geöffnet; mobile Anwendungen werden heruntergeladen und installiert. In der Zwischenzeit überwachen wir die Kommunikation mit einem Intercept-Proxy.

Der Intercept-Proxy holt alle Anfragen ab, die der Browser oder die mobile Anwendung an die Backend-Webserver stellt, und ermöglicht es uns, alle verfügbaren API-Endpunkte zu katalogisieren.

Wenn das Ziel ebenfalls eine mobile Anwendung ist, entpacken wir die Anwendung und schauen uns die verfügbaren API-Aufrufe innerhalb der Anwendung an. Wenn wir so viel Aktivität wie möglich im Blick haben, können wir nach häufigen Fehlkonfigurationen oder APIs suchen, die die Benutzerdaten nicht richtig schützen.

Schließlich suchen wir nach der API-Dokumentation. Einige Organisationen veröffentlichen API-Dokumente für Dritte, verwenden aber für alle Benutzer die gleichen API-Endpunkte.

Mit einer vernünftigen Bestandsaufnahme der Endpunkte können wir sowohl das Standardverhalten der Benutzer als auch anormales Verhalten testen. Mit beiden Methoden lassen sich interessante Schwachstellen finden.

Die Lösung: Um das Auffinden von APIs zu erschweren, stellen Sie sicher, dass die API-Dokumentation geschlossen und mit Rechten kontrolliert wird, die nur gültigen Benutzern den Zugriff erlauben. Obwohl die Fixierung des Zertifikats in einer mobilen Anwendung die API-Endpunkte nicht vollständig verbirgt und nicht perfekt ist, fügt sie doch einen weiteren Schritt hinzu. API-Anforderungen an den Webserver sollten so verschleiert und kontrolliert wie möglich sein.

Zu aufschlussreich

Einige Arten von Angriffen werden durch Fehlermeldungen erleichtert, die zu aufschlussreich für ihr eigenes Wohl sind. Eine ausführliche Fehlermeldung führt den Angreifer dazu, zu erfahren, was geändert werden muss, damit die Anfrage funktioniert. APIs wurden für schnelle Transaktionen mit geringer Last entwickelt und ermöglichen es Angreifern, sich mit Hochleistungssystemen über gültige Konten zu informieren und dann zu versuchen, sich anzumelden und die Passwörter zu ihrem Vorteil zu ändern.

Die Lösung: Keine detaillierten Fehlermeldungen; auch wenn es nach einer guten Benutzererfahrung aussieht, ist es schlecht für die Sicherheit. Wir sollten nicht in der Lage sein, einen falschen Benutzernamen oder ein falsches Passwort einzugeben und mir vom System mitteilen zu lassen, welche Informationen falsch sind (z.B. Konto nicht gefunden oder falsches Passwort). Dasselbe gilt für Fehlermeldungen bei Datenabfragen; wenn die Abfrage/Suche nicht korrekt gebildet wird oder aus irgendeinem Grund nicht durchgeführt werden kann, sollte nur eine Standard-Fehlermeldung angegeben werden.

Zu viele Parameter

Wenn Angreifer durch API-Aufrufe zu Angriffssystemen iterieren, müssen sie herausfinden, was sie senden können, um Daten herauszuholen. Angreifer verlassen sich darauf, dass komplexe Systeme mehr Stellen haben, an denen sie versagen können. Sobald ein Angreifer eine API identifiziert hat, katalogisiert er die Parameter und versucht dann, auf die Daten eines Administrators (vertikale Berechtigungserweiterung) oder eines anderen Benutzers (horizontale Berechtigungserweiterung) zuzugreifen, um zusätzliche Daten zu erhalten. Häufig werden den Anwendern zu viele unnötige Parameter ausgesetzt.

In einem kürzlich durchgeführten Forschungsprojekt gab ein API-Aufruf an einen Zielservice eine riesige Datenmenge zurück. Viele der Datenelemente wurden nicht benötigt, wie z.B. der Prozessorschlüssel für ein Zahlungs-Gateway und die verfügbaren Rabatte, und sollten nicht überlaufen. Diese zusätzlichen Elemente ermöglichen ein besseres Verständnis des Kontexts und der Syntax dieser API-Aufrufe. Es braucht nicht viel Phantasie, um herauszufinden, was als nächstes zu tun ist; diese zusätzlichen Parameter geben dem Angreifer reichhaltige Datensätze an die Hand, die er angreifen kann.

Die Lösung: Wenn Sie das, was der Benutzer sehen kann, auf das Notwendige beschränken, schränken Sie die Übertragung kritischer Daten ein.

Sehr wenig Design für IT-Sicherheit und fehlende IT-Sicherheitskonzepte

Das Anwendungsdesign berücksichtigt fast immer Funktionalität und Benutzerfreundlichkeit, aber sehr selten Sicherheit. Wir haben von den CISOs gehört, dass insbesondere die API-Sicherheit im Entwurfsprozess völlig außen vor gelassen wird. Stattdessen lassen sie Entwickler bauen und implementieren und suchen dann nach Problemen, sobald die API in Produktion und anfällig ist. Sicherheit, einschließlich der API-Sicherheit, sollte Teil des Entwurfs sein und als eine der ersten Überlegungen und nicht erst später als sekundäres Element implementiert werden.

Die Lösung: Wenn Sie die Sicherheitsarchitektur Ihrer Anwendung nicht überprüft haben, ist dies ein wichtiger erster Schritt auf dem Weg zu einem sicheren System. Denken Sie daran, dass APIs Angreifer effizienter machen und die Nutzung Ihres Systems effizienter machen. Das Ziel des Sicherheitsdesigns ist es, die Verzerrung so zu ändern, dass die Effizienz nur für Ihre Benutzer, nicht aber für Ihre Angreifer gesteigert wird.

Ich weiß, dass wir nur einen kleinen Einblick in häufige API-Schwachstellen gegeben haben. Wichtig ist, dass die Sicherheit schon früh im Entwicklungsprozess in den Diskussionen zur Sprache kommt. Kleine Änderungen können erhebliche Vorteile bringen oder Sie zumindest vor finanziellen Verlusten und Schaden der Reputation aufgrund von API-Angriffen schützen.

Nächster Artikel

CYTRES entwickelt Security-Modul für Prothesen und weitere bionische Geräte

Die neue Version von CYTRES XDR+ verfügt über eine für Prothesen und diverse weitere bionische Geräte vollständig nutzbare API auf Basis des medizinischen Standards SNOMED CT. Fernsteuerung und …

Weiterlesen