Programmierschnittstellen effizient und umfassend sichern Sieben Tipps führen zu mehr API-Sicherheit
9. Dezember 2019Immer mehr Unternehmen entdecken das Potenzial von Programmierschnittstellen. Diese Application Programming Interfaces (APIs)helfen bei der Transformation von Geschäftsmodellen und beim direkt Erzeugen von Umsätze. Doch häufig wird die Absicherung der Schnittstellen vernachlässigt.
Schon 2015 berichtete die Harvard Business Review, dass Expedia 90 Prozent seines Umsatzes mit APIs erzeugt. Bei eBay waren es immerhin 60 Prozent und bei Salesforce 50 Prozent. Doch was sind APIs überhaupt? Vereinfacht ausgedrückt handelt es sich um Schnittstellen, und zwar nicht nur für Nutzer, sondern auch für Apps. Sie werden oft mithilfe von API-Gateways gesteuert. Dies sind kompakte Softwareprogramme, die auf einem Anwendungsserver ausgeführt werden. Sie steuern diese Schnittstellen beispielsweise für Anwendungs-Dienste, Mobile-Apps oder Single-Page-Applications.
Dadurch können Unternehmen die Daten des ursprünglichen Dienstes auf verschiedene Weise in anderen Apps oder Umgebungen nutzen, ohne von vorne beginnen zu müssen. Dies ist für jeden wichtig, der seine bestehenden Infrastrukturen mit minimalen Modifikationen weiterverwenden möchte.
Die Verbreitung und Bedeutung der APIs ist in den letzten Jahren stetig gewachsen. Laut dem Portal und Community-Forum programmableweb.com stieg ihre Anzahl von 12.000 im Jahr 2015 auf fast 23.000 im Oktober 2019. Dies haben auch Hacker erkannt. Sie suchen unter anderem nach höher privilegierten Berechtigungen der APIs, die grundsätzlich Einblicke in alle Bereiche innerhalb der Anwendungsinfrastruktur gewähren. Dabei reichen ihnen sogar klassische Angriffsmethoden wie Injection, Brute Force, Parameter-Manipulation und Session Snooping.
Falsch konfigurierte Zugriffskontrollen
Gemäß dem Application Protection Report 2019 von F5 Labs zielten alle bis November 2018 erkannten API-bezogenen Vorfälle auf große Plattformen mit einer hohen Anzahl an APIs ab, wobei mobile Apps stark davon abhängig waren. Sämtliche seitdem entdeckten Vorfälle resultierten aus falsch konfigurierten Zugriffskontrollen. Mit anderen Worten: Die Unternehmen wussten nicht, dass ihre API offen und verletzbar war.
Doch damit nicht genug: Eine Studie der North Carolina State University ermittelte, dass mehr als 100.000 Code-Repositories auf GitHub im Klartext gespeicherte API-Tokens und kryptografische Schlüssel enthalten – damit ist die Zugangskontrolle für diese Anwendungen kompromittiert. Tatsächlich nutzen immer mehr Entwickler Workarounds oder unsichere Prozesse und beheben dadurch entstehende Probleme nicht, wenn das Projekt in Betrieb geht.
Tipps für sichere APIs
Um den Cyber-Kriminellen einen Schritt voraus zu sein, empfiehlt der Application Protection Report folgende Maßnahmen:
- Inventarisieren: Unternehmen sollten wissen, wo sich ihre APIs befinden und wie diese zu Geschäftsprozessen beitragen. Anhand der Informationen aus Perimeter-Scans – um die „Hacker-Perspektive“ zu erhalten – und ausführlichen Interviews mit Entwicklungs- und Betriebsteams sind entsprechende Risikobewertungen zu erstellen.
- Authentifizieren: Der State of Application Services Report 2019 von F5 ergab, dass jedes vierte Unternehmen keine API-Authentifizierung verwendet. 38 Prozent nutzen sie „ab und zu“ und 37 Prozent „meistens“. Diese Nachlässigkeit stellt ein großes Problem dar, denn Zugangsberechtigungen sind im wahrsten Sinne des Wortes der Schlüssel zu allem. So müssen die genutzten Anmeldeinformationen auf sichere Weise gespeichert werden, sei es in Form von verschlüsselten Benutzer/Passwort-Kombinationen oder API-Schlüsseln.
- Autorisieren: Keine API sollte ungeprüfte oder nicht validierte Eingaben an Anwendungen weitergeben können. Ansonsten sind sie Injection-Attacken schutzlos ausgesetzt. API-Anmeldeinformationen sind nach dem Prinzip der geringsten Berechtigung (Least Privilege) zu vergeben. Rollenbasierte Zugriffskontrolle sollte zumindest HTTP-Methoden einschränken, die von bestimmten Rollen implementiert werden können. Zudem lassen sich Abfolgen von Aktionen definieren, die dem spezifischen API-Anwendungsfall entsprechen.
- Protokollieren: Alle API-Verbindungen sind zu protokollieren und zu prüfen, unabhängig von Ergebnis und Verhalten. Außerdem sollten die von den APIs bereitgestellten Ressourcen überwacht werden.
- Verschlüsseln: Unternehmen sollten nicht nur den gesamten Web-Traffic und ihre Services verschlüsseln, sondern auch APIs und Verbindungen – sowie die Zertifikate validieren.
- Sicherheits-Tools nutzen: Mit einer „API-fähigen“ Web Application Firewall lassen sich Anfragen prüfen, validieren und im Angriffsfall blockieren. Einige API-Sicherheitsdienste können den ursprünglichen Client analysieren und feststellen, ob eine Anfrage legitim oder bösartig ist. Sie können auch sicherstellen, dass API-Anfragen dort bleiben, wo sie hingehören.
- Testen: Ständige Tests sind erforderlich, um auf dem neuesten Stand zu bleiben. Es empfiehlt sich auch, eine Prämie auf die Entdeckung von API-Schwachstellen bereitzustellen (Bug-Bounty-Programm) und die Erkenntnisse von Sicherheitsforschern zu nutzen.
Fazit
APIs sind zwar keine neue Erfindung, aber sie werden für die Entwicklung von Anwendungen und das Geschäftswachstum immer wichtiger. Einerseits führen sie zur Renaissance bekannter Angriffsmethoden, die mit einer höheren Wahrscheinlichkeit genutzt werden. Zudem können dadurch größere Schäden entstehen, die schwerer zu erkennen sind.
Andererseits sind APIs eine unverzichtbare Komponente moderner Architekturen. Daher dürfen Unternehmen die damit zusammenhängenden Sicherheitsprobleme nicht mehr ignorieren, sondern müssen sie jetzt konsequent angehen.
Frank Thias ist Principal Systems Engineer bei F5 Networks.