So schützen Sie sich gegen API-Angriffe

0
178
Imagentle/Shutterstock.com

Moderne Cloud-Strategien verwenden häufig APIs für den kontrollierten, interaktiven Zugriff auf gehostete Dienste. Der Zugriff wird jedoch nur kontrolliert, wenn die APIs sicher implementiert und nicht missbrauchsanfällig sind.

Web-APIs

Eine Anwendungsprogrammierschnittstelle (API) lässt Software mit anderer Software kommunizieren. Das erfordert eine Reihe von Spezifikationen. Es muss einen dokumentierten Satz von Funktionen geben, die der API-Endpunkt bereitstellt, und Regeln darüber, was der API-Client tun muss, um diese Funktionen zu verwenden. Der Typ und das Format der von der API zurückgegebenen Daten müssen für jede Funktion definiert werden. Normalerweise möchten Sie einschränken, wer Zugriff auf die API hat, daher müssen sich API-Clients auf irgendeine Weise authentifizieren. In einer eingeschränkten API dürfen Anfragen nur bedient werden, wenn der API-Endpunkt bestätigt hat, dass die Anfrage legitim ist.

RELATEDWas ist eine “API” und wie wird sie verwendet?

Wie bei jeder Softwareentwicklung ist eine Security-by-Design-Methodik viel besser als ein Build-it-First-Secure-it-Later-Ansatz. Das Desaster der Peloton-API veranschaulicht dies perfekt. Eine fehlerhafte API-Implementierung,—die jetzt behoben ist—erlaubte die Verarbeitung nicht authentifizierter API-Aufrufe.

Jeder könnte persönliche Daten über jeden Peloton-Kunden abrufen. Die erste “Fix” beschränkte die API einfach auf Peloton-Besitzer. Das war nur unwesentlich besser. Mit der endgültigen Korrektur sind die Daten eines Peloton-Benutzers endlich privat, es sei denn, er entscheidet sich ausdrücklich dafür, sie freizugeben.

Es gibt viele andere Beispiele für schwache oder schlecht gestaltete APIs. Facebook hat die personenbezogenen Daten von 533 Millionen seiner Nutzer preisgegeben, weil eine API es jedem ermöglichte, eine Datenbank mit Telefonnummern zu durchsuchen —mit einer Geschwindigkeit von bis zu 1000 pro Minute.

Werbung

Über 80 Prozent des gesamten Internetverkehrs ist API-Traffic. Das sind viele APIs. Ab Mitte 2021 haben sich die Top-10-Sicherheitsrisiken des Open Web Application Security Project (OWASP) seit mehreren Jahren nicht geändert. Leider werden die gleichen Fehler, die zu den gleichen Schwachstellen führen, immer wieder wiederholt. Und das ist für Cyberkriminelle zu verlockend, um es zu ignorieren.

Entwicklungs-Stakeholder

APIs sind oft weniger gut geschützt als Websites und mobile Apps. Leistungsanforderungen können das Entwicklungsteam zwingen, sich darauf zu konzentrieren, sie schlank und gemein zu machen. Sie sind so schlank, dass sie nur sehr wenig —wenn überhaupt—Code enthalten, der dem Schutz der API und der von ihnen geschützten Daten gewidmet ist. Eine schlecht entworfene oder schlecht implementierte API hat Schwächen, die ausgenutzt werden können. Die richtige Abhilfe besteht nicht darin, ein Pflaster darüber zu kleben und zu versuchen, die Löcher zu stopfen. Sie müssen den Code korrigieren oder möglicherweise die Geschäftslogik, die in die API modelliert wurde.

RELATEDSo schützen Sie Ihr Unternehmen vor Angriffen mit Passwortwörterbüchern

Wenn viele Softwarekomponenten über API-Aufrufe miteinander kommunizieren, wie z. B. Microservices, wird es sehr schwierig, Prozessfehler auf der Geschäftsschicht zu erkennen. Ihr Code besteht möglicherweise die Einheiten-, Regressions- und andere Tests. Sie können keine Abstürze erleben. Alle Ihre Protokolle sind sauber. Das bedeutet jedoch nicht, dass die Logik richtig ist und auch nicht alle möglichen Schwachstellen berücksichtigt wurden. Wenn Sie Ihr Sicherheitsteam und Ihr Entwicklungsteam zusammenbringen, können Sie überraschende Erkenntnisse gewinnen.

Das Entwicklungsteam ist für das Schreiben der APIs verantwortlich, die die erforderliche Funktionalität bereitstellen. Das Sicherheitsteam ist für den Schutz der Daten verantwortlich, die über die API bedient werden. Sie sind beide am Erfolg des Entwicklungsprozesses beteiligt. Entwickler werden niemals über Sicherheit, Bedrohungen und Angriffe nachdenken wie das Sicherheitsteam. Warum bringen Sie nicht beide Expertisen ein, um das Problem zu lösen?

Angriffstypen

Die häufigsten Angriffstypen, denen Sie begegnen werden, können nach ihrer Angriffstechnik gruppiert werden.

  • Credential Stuffing: Dies ist ähnlich wie bei Brute-Force-Angriffen mit Passwörtern, verwendet jedoch API-Anmeldeinformationen anstelle von Passwörtern für Benutzerkonten.< /li>
  • Injektionsangriffe: Bei einem Injection-Angriff fügt der Cyberkriminelle seinen API-Anfragen Computeranweisungen hinzu, sodass die eingebetteten Anweisungen auf den API-Endpunkt wirken. SQL-Injection ist ein Angriff, der SQL-Datenbanken ausnutzt. Oft ist es einfach herauszufinden, welche Textelemente in einem API-Aufruf in SQL-Anweisungen enthalten sein sollen. Das Anhängen von SQL-Anweisungen an diese API-Funktionsaufrufe kann dazu führen, dass diese SQL-Schnipsel von den SQL-Servern des API-Endpunkts verarbeitet werden. Cross-Site-Scripting ist ein ähnlicher Angriff, bei dem die eingebetteten Anweisungen in einer Skriptsprache, normalerweise JavaScript, vorliegen.
  • Distributed Denial-of-Service (DDoS): Diese Angriffe sind den DDoS-Angriffen sehr ähnlich, die eine Website mit Datenverkehr überfluten und sie daran hindern, echte Anfragen zu bedienen. DDoS-Angriffe auf API-Endpunkte werden bei Bedrohungsakteuren immer beliebter.
  • Man-in-the-Middle (MitM)Diese Angriffe beruhen auf dem Abfangen des Datenverkehrs zwischen einem echten, unschuldigen API-Client und dem API-Endpunkt. Wenn die Anmeldeinformationen für die API-Authentifizierung erfasst werden, können sie zur Wiederherstellung der Verbindung verwendet werden, indem sie sich als echter API-Client ausgeben. Manchmal werden die API-Aufrufe des echten Clients so geändert, dass der API-Endpunkt das tut, was die Angreifer wollen, und nicht das, was der eigentliche Client will.

Schutztec Ihre APIs

Wenn Sie einen Teil Ihrer IT-Infrastruktur sichern möchten, kann es verlockend sein, nach spezifischen oder neuartigen Lösungen zu suchen. Aber vergessen Sie nicht die Grundlagen der Cybersicherheit.

Quantifizieren Sie, womit Sie es zu tun haben

Wenn Sie nicht wissen, was Sie haben, können Sie es nicht verwalten. Sie müssen alle von Ihnen verwendeten APIs identifizieren und charakterisieren, unabhängig davon, ob Sie sie erstellt haben oder nicht. Die Ergebnisse Ihres API-Audits können Möglichkeiten aufdecken, Ihre Verwendung von APIs zu vereinfachen oder zu rationalisieren. Außerdem werden alle veralteten oder verwaisten APIs hervorgehoben, die aktualisiert oder deaktiviert werden müssen.

Werbung

Sobald Sie wissen, welche APIs Sie haben, was sie tun und wie sie geschützt und widerstandsfähig gemacht werden, können Sie Ihre API-Sicherheitsstrategie dokumentieren. Nutzen Sie die Gelegenheit, um Grundregeln für eine sicherheitsorientierte Entwicklung festzulegen und Ihre API-Roadmap zu planen.

Auf welche Daten kann über die API-Aufrufe zugegriffen werden? Handelt es sich um personenbezogene Daten oder auf andere Weise sensibel? Wie ist seine Datenklassifizierung? Wenn Ihre Datenschutzrichtlinien korrekt umgesetzt wurden, enthalten sie diese Informationen bereits. Überprüfen Sie den Zugriff auf die Daten kritisch. Geben Sie mehr Daten als nötig preis?

Machen Sie Ihre APIs prägnant

Der Wunsch, Ihre API zu einem reichhaltigen Erlebnis für den Datenkonsumenten zu machen, kann dazu führen, dass Sie zu viele Berichte erstellen und unnötig Details des API-Endpunkts selbst preisgeben. Informationen über betroffene Personen, Verschlüsselungsschlüssel und Authentifizierungstoken wurden alle von übermäßig ausführlichen APIs durchgesickert. Ein besser durchdachter und sicherer Ansatz besteht darin, die minimale Datenmenge zurückzugeben, die der API-Client benötigt, um die angeforderte Funktion zu erfüllen.

Dies führt zurück zum Prinzip der geringsten Erlaubnis, einem Grundpfeiler der Cybersicherheit. Sie sollten Benutzern, Prozessen, IoT-Geräten oder allem anderen, das mit Ihrer IT interagiert, nur die Mindestberechtigungen erteilen, die für die Erfüllung ihrer Rolle oder Funktion erforderlich sind. Machen Sie dasselbe mit Ihren APIs.

Verwenden Sie die Verschlüsselung

Verschlüsseln Sie Ihren API-Datenverkehr mit TSL, dem Nachfolger von SSL. Lassen Sie sich nicht vom Wert der Daten leiten. Denken Sie daran, dass Sie auch API-Client-Authentifizierungstoken schützen. Angreifer interessieren sich möglicherweise nicht für die Daten. Wenn sie jedoch Authentifizierungstoken erwerben, können sie die API verwenden, um weitere Hinweise auf Ihre Systeme zu extrahieren, damit sie verschiedene Angriffe ausführen können.

Authentifizierung und Eingabewerte

Natürlich benötigen Sie ein starkes Authentifizierungssystem. Erfinde das Rad nicht neu. Verwenden Sie nach Möglichkeit eine anerkannte Lösung wie OAuth2.0. Möglicherweise haben Sie das Gefühl, dass sich interne APIs nicht authentifizieren müssen. Aber können Sie garantieren, dass eine interne API nicht fälschlicherweise veröffentlicht wird, vielleicht weil sie in einem anderen Projekt wiederverwendet wird?

Werbung

Nehmen Sie niemals blind Eingaben von einer API an, ohne sie zu validieren zuerst. Scannen Sie es auf fehlerhafte Inhalte, eingebettete Skripte und Überlaufangriffe.

Beachten Sie die Häufigkeit von Verbindungsanfragen und wenden Sie sinnvolle tarifbegrenzende Maßnahmen an. Versucht ein Besucher mit hoher Frequenz, sich mit Brute-Force einzudringen, oder versucht er, Daten aus Ihrer Datenbank abzuschöpfen, Anfrage für Anfrage?

Allied Technologies

h3>

Web Application Firewalls (WAFs) tragen zum Schutz von Websites, gehosteten Anwendungen und APIs bei, indem sie den Datenverkehr zu und von der geschützten Ressource filtern und überwachen. Sie können unter anderem Angriffe wie Cross-Site-Scripting und SQL-Injection erkennen. Eine WAF ist eine Schutztechnologie auf Anwendungsebene (Stufe 7 im ISO-Modell), keine Fit-and-Forget-Lösung für Ihre gesamte Website- oder API-Sicherheit. Sie werden am besten als ein Element in einem mehrschichtigen Schutzpaket bereitgestellt.

Ein API-Gateway befindet sich zwischen dem API-Endpunkt und den API-Clients. Sie vermitteln API-Anfragen zwischen den Clients und dem API-Endpunkt und unterteilen manchmal eine Anfrage in kleinere Teile, die von verschiedenen Back-End-Microservices bedient werden. Antworten werden zusammengestellt und an den API-Client zurückgesendet. API-Gateways können in Authentifizierungs- und Ratenbegrenzungsfunktionen integriert werden oder diese bereitstellen. Software-as-a-Service API-Gateways sind verfügbar und bieten hohe Verfügbarkeit und automatische Skalierung.

APIs sind an vorderster Front

Mit dem unaufhaltsamen Aufstieg von Cloud- und Microservices befinden sich APIs an vorderster Front bei Cyberangriffen. Cyberkriminelle mögen Chancen, wenn sie zu ihren Gunsten gestapelt sind. Bei so vielen APIs ist es unvermeidlich, dass viele von ihnen schlecht oder sogar ungeschützt sind. Lass sie nicht dir gehören.