DE EN
dark

Bewährte Praktiken für APIs

Avatar

Eine API-Verwaltungslösung hilft Ihnen nicht nur, Ihre APIs einfach zu sichern, sondern auch, Ihre API-Daten sinnvoll zu nutzen, um technische und geschäftliche Entscheidungen zu treffen: der Schlüssel zum Erfolg!

Jetzt wissen Sie mehr über die grundlegenden Mechanismen um Ihre APIs zu schützen! Viel Spaß beim Sichern Ihrer APIs, mit einer hoffentlich guten API-Verwaltungslösung.

API Einführung

Die nachstehende Aufzählung zeigt auf, woraus zur Zeit üblicherweise eine API besteht:

  • Üblicherweise basierend auf SOAP [5] oder RESTful [3]
  • RESTful APIs SOLLTEN in der Form von HATEOAS [4] ausgeprägt sein
  • Folgen Sie der selbsterklärenden YAML/RAML-Dokumentation für APIs
  • Verwenden Sie bitte ausschließlich JSON-LD [1]  oder HAL [2] für Ihre RESTful API
  • Die Geschäftslogik MUSS sich per Definition im Backend befinden.
    In den meisten Fällen geht es bei der Implementierung von APIs nicht um neue Geschäftslogik, sondern vielmehr um die Orchestrierung bestehender Geschäftslogik oder die Anbindung an bestehende Geschäftslogik. Wenn Sie die API als Botendienst zwischen der Geschäftslogik und einem anderen Teil des Dienstes behandeln, können Sie die gleichen Ergebnisse mit einer saubereren Ausführung erzielen. Dadurch bleibt Ihre API auch skalierbar. Entscheidend ist, dass eine API mit verschiedenen Ressourcenmethoden implementiert werden kann, um eine nahtlose “Orchestrierung” zu gewährleisten, die die Funktionalität des Front-Ends sicherstellt und gleichzeitig die Integrität der Back-End-Datenquellen bewahrt.
  • Selbstbedienung: API-Gateways bieten Möglichkeiten, die Arbeit Ihrer IT-Manager zu erleichtern, indem sie automatisierte Arbeitsabläufe ermöglichen. Dazu gehören das Onboarding von Nutzern, globale Richtlinien, die Sie einrichten können, damit Sie nicht für jede API dieselben Einstellungen wiederholen müssen, oder Anwendungsgenehmigungsabläufe. Dadurch werden in Ihrem Unternehmen Kapazitäten frei, um die Zeit, die Sie bei diesen banalen Aufgaben eingespart haben, sinnvoller zu nutzen.
  • Ereignisgesteuerte Architekturen: Ereignisgesteuerte Architekturen haben in letzter Zeit an Zugkraft gewonnen, um die Anwendungsbereitstellung in dynamischere Implementierungen zu verwandeln. API-Gateways ermöglichen das Proxying ereignisgesteuerter APIs, um sie zu verwalten und zu sichern. Darüber hinaus ermöglichen Gateways und Portale auch ereignisgesteuerte Schnittstellen, die für API-Ereignisse wie Erstellung oder Aktualisierung verwertbare Benachrichtigungen generieren. Auf diese Weise können Sie wissen, was passiert ist, sobald es passiert ist, um API-Verwaltungsereignisse zu überwachen oder Arbeitsschritte für Aktualisierungen zu starten.
  • Service Mesh: Vielleicht möchten Sie Ihre Anwendungen in einer Microservice-Architektur implementieren, um Agilität und Wiederverwendbarkeit zu ermöglichen. Service Meshes erleichtern die Verwaltung und Vernetzung von Microservices, indem sie eine Steuerungsebene schaffen, in der Sie die Regeln für Microservice-Transaktionen definieren. Ein guter Anbieter von API-Verwaltungslösungen ermöglicht es Ihnen, Ihr Service Mesh in die API-Verwaltungsschicht zu integrieren, um APIs aus Microservices für eine breitere Nutzung zu erstellen und diese Microservices mit branchenerprobten API-Sicherheits- und Vermittlungsfunktionen zu erweitern.
  • Beachten Sie später die separaten Tipps zur Sicherheit.

API Gateway

Gateway Aggregations Schicht

Laufzeitmanagement, Sicherheit und Nutzungsüberwachung für APIs. Verwaltung von Richtlinien und Analyse

API Gateway – Verwandte Muster

  • ​Das Microservice-Architekturmuster schafft Bedarf für dieses Muster.
  • ​Das API-Gateway muss entweder das client-seitige oder das server-seitige Erkennungsmuster verwenden, um Anfragen an verfügbare Dienstinstanzen weiterzuleiten.
  • ​Der API-Gateway darf den Benutzer authentifizieren und ein Zugriffstoken mit Informationen über den Benutzer an die Dienste weitergeben.
  • ​Ein API-Gateway verwendet einen Schutzschalter, um Dienste aufzurufen.
  • ​Ein API-Gateway implementiert häufig das API-Kompositionsmuster.

API-Sicherheit

API-Sicherheit sollte nie als selbstverständlich angesehen werden. Mit der zunehmenden Nachfrage nach datenzentrierten Projekten haben sich Unternehmen schnell über SOAP– oder REST-APIs für ihr Ökosystem geöffnet.

API-Sicherheit

API-Sicherheit – Einführung

Anwendungsprogrammierschnittstellen (oder kurz APIs) sind die Türen zu streng gehüteten Daten eines Unternehmens. Sie sind äußerst nützlich, da sie die Kommunikation zwischen zwei verschiedenen Anwendungen ermöglichen.
Oberflächlich betrachtet ist das großartig, denn es macht das Leben für Entwickler sehr viel einfacher, aber gleichzeitig entsteht dadurch die folgende Herausforderung: Wie können wir die Türen für das API-Ökosystem offen halten und gleichzeitig vor Hackern schützen?

Es gibt verschiedene Möglichkeiten und Strategien, die Sie anwenden können, um die Vorteile von APIs zu nutzen und gleichzeitig alle Ihre Daten zu schützen. Lassen Sie uns also einige bewährte Verfahren zur API-Sicherheit durchgehen. Hier finden Sie einfache Tipps, um Sicherheitsrisiken zu vermeiden und Ihre APIs zu sichern.

API-Sicherheit – Verschlüsselung

Nichts sollte bei der internen oder externen Kommunikation lesbar bleiben. Bei der Verschlüsselung werden Ihre Informationen in einen Code umgewandelt. Dadurch wird es viel schwieriger, dass sensible Daten in die falschen Hände geraten. Sie und Ihre Partner sollten den gesamten Datenaustausch mit TLS (dem Nachfolger von SSL) verschlüsseln, unabhängig davon, ob es sich um eine Einwegverschlüsselung (Standard-Einweg-TLS) oder besser noch um eine gegenseitige Verschlüsselung (Zweiweg-TLS) handelt.

Verwenden Sie die neuesten TLS-Versionen (1.2 oder 1.3), um die Verwendung der schwächsten Verschlüsselungs-Suiten zu blockieren.

API-Sicherheit – Authentifizierung

Sprechen Sie nicht mit Fremden. Einfach ausgedrückt: Authentizität ist echt. Es bedeutet, dass etwas (oder jemand) derjenige ist, der er vorgibt zu sein. In der digitalen Welt ist Authentifizierung der Prozess der Überprüfung der Identität eines Nutzers. Sie nimmt im Grunde jedem die Maske ab, der Ihre Daten sehen will.

Sie sollten also immer wissen, wer Ihre APIs aufruft. Es gibt mehrere Methoden zur Authentifizierung:

  • HTTP-Basisauthentifizierung, bei der ein Benutzer eine Benutzer-ID und ein Passwort angeben muss. Achtung unsicher Passwort nur Base64 codiert also nicht verwenden.
  • API-Schlüssel, bei dem ein Nutzer eine eindeutige Kennung benötigt, die für jede API konfiguriert und dem API-Gateway bekannt ist.
  • Ein Token, das von einem Identitätsanbieter-Server (IdP) generiert wird. OAuth 2 ist das beliebteste Protokoll, das diese Methode unterstützt.

Allermindestens sollten Sie einen API-Schlüssel (asymmetrischer Schlüssel) oder eine einfache Zugriffsauthentifizierung (Benutzer/Passwort) verwenden, um die Schwierigkeit zu erhöhen, Ihr System zu hacken. Sie sollten jedoch die Verwendung von OAuth 2 als Protokoll Ihrer Wahl für eine robuste Sicherheit Ihrer APIs in Betracht ziehen.

API-Sicherheit – OAuth & OpenID Connect

Delegieren Sie alle Verantwortlichkeiten. Ein guter Manager delegiert Verantwortung und das gilt auch für eine großartige API. Sie sollten die Autorisierung und/oder Authentifizierung Ihrer APIs an Identitätsanbieter (IdP) von Drittanbietern delegieren.

Was ist OAuth 2?

Es ist ein magischer Mechanismus, der verhindert, dass Sie sich zehntausend Passwörter merken müssen. Anstatt auf jeder Website ein Konto anzulegen, können Sie sich über die Anmeldedaten eines anderen Anbieters verbinden, z. B. Facebook oder Google.

Bei APIs funktioniert es genauso: Der API-Anbieter stützt sich bei der Verwaltung der Berechtigungen auf einen Drittanbieter-Server. Der Verbraucher gibt seine Anmeldedaten nicht ein, sondern gibt stattdessen ein Token an, das vom Drittanbieter-Server bereitgestellt wird. Dies schützt den Kunden, da er seine Anmeldedaten nicht preisgibt, und der API-Anbieter muss sich nicht um den Schutz der Autorisierungsdaten kümmern, da er nur Token erhält.

OAuth ist ein häufig verwendetes Delegationsprotokoll zur Übertragung von Berechtigungen. Um Ihre APIs noch weiter abzusichern und eine Authentifizierung hinzuzufügen, können Sie eine Identitätsschicht darüber legen: Dies ist der OpenID Connect-Standard, der OAuth 2.0 mit ID-Tokens erweitert.

API-Sicherheit – OAuth & OpenID Connect

​Scheuen Sie sich nicht, um Hilfe zu bitten (oder sie in Anspruch zu nehmen). Ziehen Sie einige Sicherheitsexperten hinzu. Nutzen Sie erfahrene Antivirensysteme oder ICAP-Server (Internet Content Adaptation Protocol), die Ihnen beim Scannen der Nutzdaten Ihrer APIs helfen. So können Sie verhindern, dass bösartiger Code oder bösartige Daten in Ihre Systeme eindringen. Es gibt verschiedene Sicherheits-APIs, die Sie zum Schutz Ihrer Daten verwenden können. Sie können Dinge tun wie:

  • Integration von Zwei-Faktor-Authentifizierung.
  • Erstellen passwortloser Logins oder zeitbasierte Einmalpasswörter.
  • Versenden von Push-Benachrichtigungen im Falle einer Sicherheitsverletzung. Schützen Sie sich vor Viren und Malware.
  • Verhindern von Betrug.
  • Informieren, wenn ein von Hackern bekanntes Kennwort verwendet wird.
  • Hinzufügen von Thread Intelligence.
  • Bereitstellen von Sicherheitsüberwachung.

Das Beste daran ist, dass einige dieser Antivirensysteme kostenlos zu benutzen sind. Andere bieten monatliche Tarife an. Premium-Tarife bieten mehr Schutz, aber Sie können selbst entscheiden, welche Art von Sicherheit Sie benötigen.

API-Sicherheit – Überwachung: Audit, Protokoll und Version

Seien Sie ein Stalker. Es kann sich auszahlen, Ihre API ständig zu überwachen und zu wissen, was sie vorhat. Seien Sie wachsam wie die überfürsorglichen Eltern, die alles über die Menschen in der Umgebung ihres Sohnes oder ihrer Tochter wissen wollen.

Wie machen Sie das? Sie müssen in der Lage sein, im Falle eines Fehlers Fehler zu beheben. Sie sollten relevante Informationen über den Server prüfen und protokollieren – und diese Historie so lange aufbewahren, wie es für die Kapazität Ihrer Produktionsserver angemessen ist.

Machen Sie Ihre Protokolle zu einer Ressource für die Fehlersuche, falls es zu Zwischenfällen kommt. Gründliche Aufzeichnungen helfen Ihnen, den Überblick zu behalten und verdächtige Vorgänge besser zu erkennen.

Außerdem sind Überwachungs-Dashboards sehr empfehlenswerte Werkzeuge, um die Nutzung Ihrer API zu verfolgen.

Vergessen Sie nicht, die Version zu allen APIs hinzuzufügen, vorzugsweise im Pfad der API, um mehrere funktionierende APIs verschiedener Versionen anbieten zu können und um eine Version gegenüber einer anderen in den Ruhestand zu versetzen und abzuschreiben.

API-Sicherheit – Teilen Sie so wenig wie möglich

Seien Sie paranoid. Es ist in Ordnung, übermäßig vorsichtig zu sein. Denken Sie daran, dass es wichtig ist, Ihre Daten zu schützen. Zeigen Sie so wenig Informationen wie möglich in Ihren Antworten an, insbesondere in Fehlermeldungen. Beschränken Sie E-Mail-Betreffs und -Inhalte auf vordefinierte Nachrichten, die nicht angepasst werden können. Da IP-Adressen Auskunft über den Standort geben können, sollten Sie sie für sich behalten.

Verwenden Sie, wenn möglich, IP-Positiv- und -Negativlisten, um den Zugriff auf Ihre Ressourcen zu beschränken. Begrenzen Sie die Anzahl der Administratoren, unterteilen Sie den Zugang in verschiedene Rollen und verbergen Sie sensible Informationen in allen Ihren Schnittstellen.

Systemschutz mit Drosselung und Kontingenten. Drosseln Sie sich selbst. Sie sollten den Zugriff auf Ihr System auf eine begrenzte Anzahl von Nachrichten pro Sekunde beschränken, um Ihre Backend-Systembandbreite entsprechend der Kapazität Ihrer Server zu schützen. Weniger ist mehr. Sie sollten auch den Zugang nach API und nach Benutzer (oder Anwendung) beschränken, um sicherzustellen, dass niemand das System oder insbesondere eine API missbraucht.

API-Sicherheit – Systemschutz mit Drosselung und Kontingenten

Drosseln Sie sich selbst. Sie sollten den Zugriff auf Ihr System auf eine begrenzte Anzahl von Nachrichten pro Sekunde beschränken, um Ihre Backend-Systembandbreite entsprechend der Kapazität Ihrer Server zu schützen. Weniger ist mehr. (KISS-Prinzip)

Sie sollten auch den Zugang nach API und nach Benutzer (oder Anwendung) beschränken, um sicherzustellen, dass niemand das System oder insbesondere eine API missbraucht.

Drosselungsgrenzen und Kontingente sind – wenn sie richtig eingestellt sind – von entscheidender Bedeutung, um Angriffe aus verschiedenen Quellen zu verhindern, die Ihr System mit zahlreichen Anfragen überfluten (DDoS – Distributed Denial of Service [6]). Ein DDoS kann legitime Nutzer von ihren eigenen Netzwerkressourcen aussperren.

API-Sicherheit – Validierung von Daten

Seien Sie wählerisch und lehnen Sie Überraschungsgeschenke ab, insbesondere wenn sie sehr groß sind. Überprüfen Sie alles, was Ihr Server annimmt. Achten Sie darauf, hinzugefügte Inhalte oder zu große Daten abzulehnen, und überprüfen Sie immer die Inhalte, die Ihnen die Verbraucher schicken. Verwenden Sie die JSON- oder XML-Schema-Validierung und überprüfen Sie, ob Ihre Parameter die richtigen sind (String, Integer…), um SQL-Injection oder XML-Bomben zu verhindern. siehe auch OWASP Input Validierung [7] …


Referenz

  • ​[1] https://www.w3.org/TR/json-ld/
  • ​[2] https://stateless.group/hal_specification.html
  • ​[3] https://en.wikipedia.org/wiki/Representational_state_transfer ​
  • [4] https://en.wikipedia.org/wiki/HATEOAS ​
  • [5] https://en.wikipedia.org/wiki/SOAP
  • [6] https://de.wikipedia.org/wiki/Denial_of_Service
  • [7] https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html


Pierre Gronau ist seit über 25 Jahren für namhafte Unternehmen als Senior IT-Berater mit umfangreicher Projekterfahrung tätig. Zu seinen Kompetenzfeldern gehören Server-Virtualisierungen, IT-Sicherheit, IT-Compliance, moderne Cloud- und Automationslösungen sowie Informationsschutz.

Total
0
Shares
Previous Post

Bewährte Praktiken für IT-Compliance-Audits

Next Post

Cybersecurity – Was ist SAST, DAST, IAST und RASP? – ein kleines Intro

Related Posts