APIs – maschinelle Anwendungs- oder Programmierschnittstellen – vereinfachen die Interaktion und den Datenaustausch zwischen verschiedenen Anwendungen. Sie sind ein grundlegender Bestandteil moderner Applikationslandschaften und gewinnen durch die Verwendung von Smartphones und Wearables auch immer mehr an Bedeutung für Webanwendungen.
Da über APIs oft auf sensiblen Daten und spezielle Softwarefunktionen zugegriffen wird, sind sie für Angreifer höchst interessant. API-Sicherheit meint den Prozess des Schutzes dieser Schnittstellen vor unerlaubten Zugriffen und anderen Angriffen und ist eine Schlüsselkomponente der modernen Webanwendungssicherheit. Mögliche Schwachstellen bei APIs sind z.B. eine fehlerhafte Authentifizierung und Autorisierung, ungenügende Beschränkungen bei Abfragen oder eine zu ungenaue Prüfung von Eingaben, die einen möglichen Missbrauch ermöglichen.
Nahezu ein Viertel der Angriffe fokussiert auf APIs
Während „menschliche“ Zugriffe auf verschiedene Dienste im Internet typischerweise über einen standardisierten Web-Browser ausgeführt werden, haben programmierbare Schnittstellen deutlich weniger Vorgaben. Sie können daher recht frei und beliebig rudimentär gestaltet werden. Das wirkt sich nachteilig auf die Sicherheit der APIs aus.
Fast ein Viertel der detektierten Angriffe betreffen die API-Sicherheit, so der VMWare 2022 Global Incident Response Threat Report von 2022. [1] Die drei häufigsten Attacken sind dabei das unerlaubte Auslesen von Daten, der Angriff über Injections (Ausnutzung ungenügender Eingabevalidierung) und das Überlasten der Schnittstellen mit Denial-of-Service Angriffen.
Kontrolle und Verbesserung der API-Sicherheit einfach möglich
Eine möglichst sicherheitsorientierte Anwendungsentwicklung verwaltet kontrolliert die Ein- und Ausgabemöglichkeiten. Regelmäßige Tests vorhandener APIs sind sinnvoll, um Schwachstellen präventiv und schnellstmöglich zu identifizieren. Diese Anliegen unterstützt auch das Open Web Application Security Project (OWASP). [2] [3] [4] Die drei größten Schwachstellen bei APIs betreffen nach wie vor rudimentäre Unzulänglichkeiten:
- einfache Umgehung von Zugriffsbeschränkungen (z.B. durch kleinste Änderungen im Aufruf),
- schwache oder fehlerhafte Benutzerauthentifizierung,
- ungenügende Datensparsamkeit, die zu viele Informationen bereitstellt.
Ein besonderes Risiko sind öffentliche Schnittstellen zu sensiblen Daten, die „kurz“ für Entwicklungs- und Testzwecke aktiviert und dann vergessen wurden und so für lange Zeit geöffnet bleiben.
API-Sicherheit als Grundlage für Automatisierung und Innovation
Maschinelle Schnittstellen sind als Basis für den Aufbau und die Entwicklung moderner Anwendungen und Apps unverzichtbar. Immer mehr Lösungen basieren auf einer flexiblen Nutzung mobiler Geräte und stark verteilter Daten und Systeme. Auch das Internet der Dinge (IoT) fällt in diese Kategorie.
Die stark steigende Vernetzung von Geräten und Diensten in Kombination mit einer massiven Zunahme an Quellen und Zielen sowie sich ständig weiterentwickelnde Methoden der App-Entwicklung erzeugen neue Risiken. Dementsprechend sind begleitende Maßnahmen zur technischen und auch organisatorischen Absicherung von APIs und Daten bei Unternehmen inzwischen zur Pflicht geworden.
Learnings und Empfehlungen für eine optimierte API-Sicherheit
Viele Unternehmen verfügen bereits heute über Werkzeuge zur Bekämpfung bekannter Angriffe wie z.B. Cross-Site-Scripting, Command-Injection und Distributed Denial-of-Service. Unabhängig davon, wie viele oder wenige APIs ein Unternehmen öffentlich zugänglich macht, sind eine bewusste Verwaltung, sichere Gestaltung und laufendes Monitoring wesentlich.
- Transparenz: Verschaffen Sie sich einen Überblick über sämtliche in Ihrer Organisation eingesetzten Schnittstellen (öffentlich, privat oder Partner-APIs). Dazu kann auch ein Schwachstellen-Scan oder Penetration-Testing eines IT-Sicherheitsdienstleisters beitragen, mit dem auch vielleicht unbekannte Zugänge erkannt werden.
- Sichere Authentifizierungsmethoden: Vermeiden Sie die oft historisch bedingten statischen geteilten Passphrasen. Im Idealfall ist jeder Endpunkt bekannt und wird individuell verwaltet. Zugriffe werden überwacht und protokolliert. Überprüfen Sie bestehende Accounts zyklisch auf ihren Bedarf und deaktivieren Sie sie gegebenenfalls.
- Eingabevalidierung und Zugriffs-Rollenmodelle: Verhindern Sie potenziell schädliche Eingaben (Injection-Angriffe) durch serverseitige Überprüfung der Anfragen. Einzelne Zugriffe sollen nur mit den wirklich benötigten Rechten ausführbar sein und nicht mehr Daten lesen können als tatsächlich notwendig.
- Datenverschlüsselung: Überprüfen Sie regelmäßig, ob Ihre eingesetzten Verschlüsselungsmethoden noch aktuell sind und dem Stand der Technik entsprechen.
- Ratenbegrenzung: Gerade bei öffentlich frei verfügbaren Schnittstellen sind Vorkehrungen gegen Missbrauch unabdingbar, um beispielsweise DDoS-Attacken zu verhindern. Limitieren Sie beispielsweise die Anzahl der Abfragen von IP-Adressen oder nutzen Sie andere Erkennungsmethoden, die ungewöhnliche viele Zugriffe detektieren und präventiv blockieren.
- Logging & Audit Trail: Protokollieren Sie alle Zugriffe und Abfragen unveränderbar mit, um mögliche Probleme nachvollziehbar zu machen und auch im Fall einer Sicherheitsverletzung exakte Aussagen treffen zu können.
Das könnte Sie auch interessieren:
Achtung vor USB-Attacken
Top 3 Sicherheitslücken in Österreich
5 Tipps für ein sicheres Remote-Management
Quellen:
[1] https://www.itsicherheit-online.com/app/uploads/2022/08/Infographic_VMware-Global-Incident-Response-Threat-Report-2022-komprimiert.pdf
[2] https://owasp.org/www-project-api-security/
[3] https://apisecurity.io/encyclopedia/content/owasp/owasp-api-security-top-10.htm
[4] https://apisecurity.io/encyclopedia/content/owasp-api-security-top-10-cheat-sheet-a4.pdf