cherezoff - stock.adobe.com
Diese fünf Vorgehensweisen sorgen für unsichere APIs
Die Absicherung von APIs ist aufwendig. Wenn Sie aber die hier beschriebenen fünf Fallen vermeiden, erzielen Sie eine deutliche Verbesserung beim Schutz Ihrer Schnittstellen.
Application Programming Interfaces (APIs) bieten Programmierern zahlreiche produktive Möglichkeiten. Das gilt insbesondere für die Public Cloud. Mit APIs lassen sich Anwendungen zum Beispiel um neue Funktionen erweitern oder mit externen Diensten verbinden. Ordnungsgemäß integrierte APIs stärken die mit ihnen erweiterten Services und nutzen damit allen Anwendern.
Das ändert aber nichts daran, dass unsichere Cloud-APIs ganze IT-Umgebungen für neue Bedrohungen verwundbar machen können. Jedes Unternehmen steht in der Verantwortung, für sichere Produkte zu sorgen. Manchmal führen jedoch schon kleine Fehler zu sicherheitsrelevanten Problemen. Nehmen wir ein paar Beispiele für Nachlässigkeiten, die schnell zu neuem Ärger führen können:
- Fehler bei der Überprüfung der gewünschten APIs und des von ihnen verwendeten Codes,
- Entwickler, die ihre Schnittstellen nicht sauber konfigurieren sowie
- mangelhafte Vorsichtsmaßnahmen zum Schutz der Geschäftsdaten und Endpoints.
Diese drei Beispiele sind aber nur der sprichwörtliche Anfang, wenn es um die Vermeidung von immer wieder zu beobachteten Schwachstellen bei Application Programming Interfaces (Prorammierschnittstellen) geht. Im Folgenden gehen wir auf weitere verbreitete Gefahren und riskante Verhaltensweisen ein, die Sie vermeiden sollten, um nicht versehentlich eine oder mehrere unsichere APIs in Ihrer Cloud-Umgebung einzusetzen.
1. Unerwünschte Freigaben von Daten
Eine gute API bietet alle benötigten Funktionen und gibt den Benutzern Feedback, wenn beispielsweise etwas schiefgelaufen oder wenn etwas Unerwartetes geschehen ist. Ein Endanwender erfährt aber normalerweise nicht, was im Hintergrund passiert. Alle seine Eingaben erfolgen nur über das Frontend beziehungsweise die grafische Oberfläche (GUI, Graphical User Interface).
So ermöglicht es etwa die Identitäts-API von Paypal, viele Websites zu besuchen und sich dort über einen bei dem Bezahldienst angelegten Account anzumelden. Die Endanwender füllen die Anmeldedaten nur bei dem Finanzdienstleister aus. Im Hintergrund kümmert sich dann eine API um Aufgaben wie Autorisierung und das Abrufen der relevanten Account-Informationen.
Eine fehlerhafte Verarbeitung dieser Daten kann jedoch einen zufälligen Einblick in die Funktionsweise vergleichbarer Prozesse bieten. Auch lässt sich so herausfinden, wie das Backend arbeitet und wo potenzielle Problemen liegen. Fehler bei der Umsetzung können dazu führen, dass technische Details über die Arbeitsweise der API in die falschen Hände gelangen können. Die öffentlich zugängliche Dokumentation vieler Schnittstellen ermöglicht bereits einen tiefen Einblick. Manche dieser Inhalte sollten jedoch nicht allgemein verfügbar sein. Böswillige Akteure können sich so Informationen über die Prozesse in einem Unternehmen und die von ihm verwendete API-Struktur sowie -Syntax verschaffen. Außerdem können sie Daten über die Endpunkte sammeln, um etwa einen Cyberangriff zu starten.
Das bedeutet aber nicht, dass sich Fehler in der Verarbeitung der Daten nur auf den technischen Bereich beschränken müssen. Mangelhaft programmierte APIs können auch für unerwünschte Transparenz sorgen oder Zugriffe auf schützenswerte Daten erlauben. Datendiebstähle sind dann schnell die Folge. Solche Ereignisse sind nicht nur teuer, sondern schädigen auch das Vertrauen der Nutzen und öffnen die eigene Infrastruktur für weitere Probleme.
Das Wichtigste auf einen Blick: Sorgen Sie immer für einen optimalen Schutz Ihrer Anwendungsdaten. Kümmern Sie sich zudem darum, dass alle Fehlermeldungen und Feedback-Daten Informationen über die allgemeinen Umstände enthalten, ohne dabei aber vertrauliche Einsichten in den Aufbau Ihrer API-Architektur zu ermöglichen. Zeigen Sie Endanwendern auch keine Header Responses.
2. Mangelhafte Zugriffskontrollen
Die IT-Teams in den Unternehmen müssen dafür Sorge tragen, dass nur autorisierte Personen auf geschützte Informationen zugreifen können. Darüber hinaus müssen alle Dienste prüfen können, ob die angemeldeten Nutzer auch wirklich die sind, die sie zu sein vorgeben. Viele APIs schlampen, wenn es um die Validierung von Nutzereingaben geht. Das kann zu schwerwiegenden Störfällen oder systemübergreifenden Schwachstellen führen.
APIs ermöglichen einen Zugriff auf Daten aus anderen Quellen. Meist verwenden sie dabei bestimmte Anwendungen als Gateways zu diesen Informationen. Schlecht umgesetzte Authentisierungs- und Autorisierungsmaßnahmen können dazu führen, dass mehr Daten als nötig geteilt werden.
Gehen wir zum Beispiel davon aus, dass jemand etwas bei einem Online-Shop erwerben will, der das Bezahlverfahren eines Dienstleisters eingebunden hat. Die meisten Endanwender werden sich über eine Möglichkeit freuen, wenn sie auf bereits bekannte Services stoßen. Das spart Zeit und verhindert, dass sie dem Händler sensible Finanzdaten anvertrauen müssen. Im Idealfall wird die Payment-API keine Nutzer- oder Bezahldaten mit dem Online-Geschäft teilen. Es ist jedoch möglich, dass Fehler in der Umsetzung der Schnittstellen ungewollt schützenswerte Daten freigeben.
Das Wichtigste auf einen Blick: Verwenden Sie nur APIs, die ein Token-System einsetzen. OAuth 2.0 hat sich hier bewährt. Damit ist ein kontrollierter Zugriff auf externe Daten möglich, ohne dabei die Integrität dieser Informationen einem Risiko auszusetzen. APIs bieten fantastische Möglichkeiten, manche der darüber verfügbaren Daten sollten jedoch in Silos bleiben, um ihre Sicherheit zu wahren.
3. Mangelhafte Verschlüsselung
Pauschal gesehen gibt es zwei Arten von Daten: Solche in Bewegung und solche in Ruhe. Manche APIs lassen die Daten beim Transport jedoch komplett ungeschützt. Das trifft zum Beispiel auf HTTP-Anfragen zu. Hier nimmt die API eine Verbindung auf und holt sich die gewünschten Informationen von einer Datenbank, zum Beispiel Punkt A. Dann sendet sie sie an das Ziel, den Punkt B.
Aber was geschieht, wenn sich jemand in der Mitte dieser Verbindung zwischen Punkt A und B befindet und die Daten abfängt? Einigen Programmierern scheint bis heute nicht klar zu sein, dass nicht alle Wege im Internet per se sicher sind. Andere setzen immer noch veraltete Protokolle oder schwache Schutzmaßnahmen ein, mit denen sie Hackerangriffe nicht verhindern können.
Daten in Ruhe befinden sich dagegen meist innerhalb einer geschützten Datenbank. Viele APIs dürfen direkt Kontakt mit einer solchen Datenbank aufnehmen und Daten von dort abrufen. Das ist einer der wichtigsten Gründe, warum schlechte Verschlüsselungsmaßnahmen so problematisch sind. Wenn keine Verschlüsselung vorhanden ist oder nur mangelhaft umgesetzt wurde, sind vertrauliche Daten wie persönliche Aufzeichnungen, Login-Informationen und Finanzdaten schnell angreifbar.
Das Wichtigste auf einen Blick: Setzen Sie nur APIs ein, die auf eine starke Verschlüsselung setzen. AES 256 oder Triple DES gehören derzeit zu den besten Standards. Daten in Bewegung sollten zudem immer mit SSL (Secure Sockets Layer) oder Transport Layer Security (TLS) geschützt werden. Stellen Sie dabei aber sicher, dass Sie auch wirklich die aktuelle Version dieser Protokolle nutzen. TLS 1.0 oder 1.1 bieten für bestimmte Anwendungen keinen ausreichenden Schutz mehr.
4. Ignorieren von Grenzen und Maßnahmen zum Drosseln
Eine heutzutage häufig zu beobachtende Angriffsart sind DDoS-Attacken (Distributed Denial of Service). Dabei senden externe Netzwerke zahllose Daten an bestimmte Dienste, um sie in die Knie zu zwingen. Schlecht programmierte APIs verstärken diese Attacken weiter, da sie es den Angreifern erlauben, die Server und Netze mit falschen Anfragen zu überfluten. Diese Art von Cyberattacken führt zu Performance-Problemen im Netz, zu Unterbrechungen von Diensten und zu Abstürzen wesentlicher Systeme.
Das Problem dabei ist, dass viele APIs keine oder nur unzureichende Grenzen setzen. Entweder bestimmen sie nicht, oft sie aufgerufen werden dürfen oder sie verwenden Grenzen, die viel zu hoch angesetzt sind. Diese Anwendungen werden damit jedoch anfällig für Endlosschleifen, die von der API ausgehen. Man kann zwar theoretisch die API beenden, um die Applikation zu schützen. Das sorgt aber für Probleme bei den Nutzern, die für ihre Tätigkeiten darauf angewiesen sind.
Wenn ein Unternehmen bei der Drosselung seiner APIs Fehler macht, kann sich die Verschlechterung der Performance zu einem massiven Problem für das ganze Netzwerk ausweiten. Selbst die Verwendung durch normale Nutzer kann bei fehlerhaften APIs Probleme mit den Ressourcen verursachen, die im schlimmsten Fall dann den Durchsatz in der gesamten IT-Umgebung beeinträchtigen.
Das Wichtigste auf einen Blick: Wählen Sie nur APIs aus, die über konfigurierbare Grenzen und Kontrollen verfügen, um sie gegebenenfalls drosseln zu können. So lässt sich etwa festlegen, wie oft ein Application Programming Interface aufgerufen werden darf. Außerdem verbessern Sie damit die Uptime, erhöhen die Performance und schützen Ihre Dienste vor Cyberangreifern. Achten Sie aber darauf, dass sich die Limits für Ihre APIs, Ihre Anwendungen und die zur Verfügung stehenden Ressourcen in mehreren Stufen konfigurieren lassen. Diese Maßnahmen ermöglichen auch eine größere Kontrolle über das Benutzerverhalten.
5. Voreilige Markteinführungen
Grundsätzlich können API-Entwickler nicht erwarten, dass sich ein solides und sicheres Produkt ohne vorherige tiefgehende Prüfung auf den Markt bringen lässt. Durch das Bereinigen des Codes und das Durchführen sorgfältig geplanter Review- und Test-Zyklen reduzieren Sie die Zahl der gerade anfangs oft noch vorhandenen Bugs signifikant.
Probleme entstehen zudem, wenn zu knappe Deadlines wichtiger sind als die Qualität der API. Die meisten Entwickler haben sehr viele Aufgaben zu erledigen. Darüber hinaus wird in vielen Firmen von ihnen erwartet, dass sie kontinuierlich erhebliche Mengen an Code abliefern. Dieser Druck führt dann unvermeidlich zu Programmierfehlern. Wenn eine API überstürzt auf den Markt geworfen wird, sind übersehene Sicherheitslücken schlicht nicht zu vermeiden.
Viele Unternehmen entscheiden sich für ein verfrühtes Release, wenn sie gegenüber ihren Wettbewerbern einen Vorteil erringen wollen. Aber auch APIs, die offen oder kostenlos sind, können Einnahmen für ihre Entwickler generieren. Wenn externe Programmierer eine API einsetzen, lockt dies neue Nutzer an. Immer wieder kommt es allerdings vor, dass Entwickler keine ausreichenden Tests durchführen, um festzustellen, ob eine API mit ihrem Code zu Problemen führt oder um abzuklären, ob die enthaltenen Kontrollmöglichkeiten ausreichen, um ihre Daten zu schützen.
Das Wichtigste auf einen Blick: Beide Seiten sollten eine API auf Herz und Nieren prüfen, sowohl die Entwickler als auch die Nutzer. Der Kampf zwischen Sicherheit und Einnahmen ist kein Nullsummenspiel. Tatsächlich fördert nur die Entwicklung von APIs, die weithin für ihre Sicherheit bekannt sind, die langfristige Akzeptanz.