Die RESTful-API-Spezifikation ist in WAF wichtig

APIGit

2023-08-04

api-waf

Was ist WAF?

WAF steht fürWeb Application Firewall. Es handelt sich um eine Sicherheitslösung, die Webanwendungen vor verschiedenen Online-Bedrohungen, Schwachstellen und Angriffen schützen soll. Eine WAF fungiert als Barriere zwischen einer Webanwendung und der Außenwelt und filtert und überwacht den ein- und ausgehenden Datenverkehr, um böswillige Aktivitäten zu erkennen und zu verhindern.

Der Hauptzweck einer WAF besteht darin, Webanwendungen vor häufigen Angriffen zu schützen, wie zum Beispiel:

  • SQL-Injektion: Angreifer versuchen, bösartige SQL-Abfragen in Eingabefelder einzufügen, um eine Datenbank zu manipulieren oder sich unbefugten Zugriff darauf zu verschaffen.

  • Cross-Site-Scripting (XSS): In Webseiten werden schädliche Skripte eingeschleust, die zum Diebstahl von Benutzerdaten oder zum Sitzungs-Hijacking führen können.

  • Cross-Site Request Forgery (CSRF): Angreifer verleiten Benutzer dazu, Aktionen auszuführen, die sie nicht beabsichtigt hatten, was häufig dazu führt, dass unbefugte Aktionen in einer Webanwendung ausgeführt werden.

  • DDoS-Angriffe auf Anwendungsebene: Angreifer überschwemmen die Webanwendung mit einer großen Menge an Anfragen, überfordern ihre Ressourcen und führen dazu, dass sie nicht mehr verfügbar ist.

  • Brute-Force-Angriffe: Wiederholte Versuche, Passwörter oder Anmeldeinformationen zu erraten, um unbefugten Zugriff auf die Anwendung zu erhalten.

  • File-Inclusion-Angriffe: Unbefugter Einschluss von Dateien, der häufig genutzt wird, um Zugriff auf vertrauliche Dateien zu erhalten oder bösartigen Code auszuführen.

Eine WAF funktioniert, indem sie eingehende HTTP- und HTTPS-Anfragen analysiert, deren Inhalte auf verdächtige Muster untersucht und sie basierend auf einer Reihe vordefinierter Sicherheitsregeln blockiert oder zulässt. Einige WAFs verwenden eine signaturbasierte Erkennung, während andere Verhaltensanalysen und maschinelles Lernen nutzen, um Bedrohungen zu identifizieren und abzuschwächen.

WAFs können als Hardware-Appliances, Softwarelösungen oder cloudbasierte Dienste implementiert werden und spielen eine entscheidende Rolle bei der Aufrechterhaltung der Sicherheit und Integrität von Webanwendungen, insbesondere in der heutigen digitalen Landschaft, in der sich Online-Bedrohungen ständig weiterentwickeln.

Wie funktioniert eine WAF?

Eine Web Application Firewall (WAF) überwacht, filtert und steuert den Datenverkehr zwischen einer Webanwendung und ihren Benutzern. Es dient dazu, verschiedene Arten von Cyberangriffen und Schwachstellen zu identifizieren und zu verhindern, die auf Webanwendungen abzielen. So funktioniert eine WAF normalerweise:

  • Verkehrsinspektion: Wenn ein Benutzer mit einer Webanwendung interagiert, indem er eine HTTP-Anfrage sendet (z. B. auf eine Webseite zugreifen, ein Formular senden), fängt die WAF den eingehenden Datenverkehr ab und prüft ihn, bevor er den Webserver erreicht.

  • HTTP-Analyse: Die WAF analysiert die HTTP-Anfrage, um ihre Komponenten zu verstehen, wie z. B. die Anfragemethode, Header, URL, Abfrageparameter und den Anfragetext.

  • Regelbasierte Filterung: Die WAF wendet eine Reihe vordefinierter Sicherheitsregeln auf die analysierte Anfrage an. Diese Regeln definieren Muster bekannter Angriffe oder Schwachstellen, wie z. B. SQL-Injection, Cross-Site-Scripting (XSS) und mehr. Wenn die WAF eine Übereinstimmung zwischen dem Anforderungsinhalt und diesen Regeln erkennt, ergreift sie Maßnahmen, um die Bedrohung zu mindern.

  • Datenverkehr blockieren oder zulassen: Basierend auf der Regelauswertung entscheidet die WAF, ob sie die Weiterleitung der Anfrage an die Webanwendung zulässt oder sie blockiert. Wenn die Anfrage als bösartig oder verdächtig eingestuft wird, kann die WAF sie blockieren und verhindern, dass sie den Webserver erreicht.

  • Antwortanalyse: Die WAF prüft auch die Antworten der Webanwendung auf ausgehende Anfragen. Es kann den Verlust vertraulicher Informationen oder die Offenlegung sensibler Daten in den Antworten der Anwendung erkennen und verhindern.

  • Lernen und Anpassung: Einige moderne WAFs nutzen Techniken des maschinellen Lernens und der Verhaltensanalyse, um neue und sich entwickelnde Bedrohungen zu identifizieren. Diese Systeme können das normale Verhalten einer Anwendung im Laufe der Zeit erlernen und Anomalien erkennen, die auf einen Angriff hinweisen können.

  • Benutzerdefinierte Regeln: Administratoren können oft benutzerdefinierte Regeln konfigurieren, um den spezifischen Sicherheitsanforderungen ihrer Webanwendung gerecht zu werden. Dadurch können sie anwendungsspezifische Schwachstellen und potenzielle Bedrohungen beheben.

  • Protokollierung und Berichterstattung: WAFs generieren Protokolle und Berichte über erkannte Bedrohungen, verdächtige Aktivitäten und blockierte Anfragen. Mithilfe dieser Informationen können Administratoren den Sicherheitsstatus ihrer Webanwendung analysieren und die WAF-Regeln bei Bedarf optimieren.

  • Kontinuierliche Überwachung: WAFs bieten kontinuierlichen Schutz, indem sie den Datenverkehr kontinuierlich überwachen und filtern, sich an neu auftretende Bedrohungen anpassen und die Sicherheit der Webanwendung aufrechterhalten.

Es ist wichtig zu beachten, dass eine WAF zwar eine wertvolle Sicherheitsschicht, aber keine umfassende Lösung für sich darstellt. Eine Kombination aus Sicherheitsmaßnahmen, einschließlich sicherer Codierungspraktiken, regelmäßiger Sicherheitsbewertungen und Patch-Management, ist unerlässlich, um die allgemeine Sicherheit von Webanwendungen zu gewährleisten.

Eine RESTful-API-Spezifikation ist wichtig für eine benutzerdefinierte WAF-Regel.

Wie konfigurieren wir die benutzerdefinierte Regel in einer WAF? Es gibt zwei Hauptmethoden:

  • Nr. 1 RESTful-API-Spezifikation Ein Webdienst verfügt möglicherweise über eine OpenAPI-Spezifikation, die alle Endpunkte, Parameter, Antworten, Authentifizierungsschemata usw. beschreibt. Eine solche Spezifikation wird normalerweise von Entwicklern bereitgestellt.
  • #2 Manuelle Eingabe Sie können die Regeln manuell eingeben, indem Sie eine URL, einen Parameternamen, eine maximale Länge und eine Struktur des Werts hinzufügen.

Die Art und Weise, wie Nr. 1 viel besser aussieht als Nr. 2. In einer perfekten Welt verfügt jeder Webdienst über eine OpenAPI-Spezifikation, die immer verfügbar und aktuell ist. Aber in der realen Welt scheint es nicht allzu oft vorzukommen. Ein Entwickler kann die APIs ändern, aber vergessen, die Spezifikation zu aktualisieren, oder er macht die Spezifikation aus irgendeinem Grund nicht öffentlich verfügbar. In den meisten Fällen verfügen öffentlich verfügbare REST-APIs über für Menschen lesbare Dokumente, was zwar nett ist, aber normalerweise schwierig automatisiert zu verwenden ist.

  • Aber APIGIT könnte dies einfacher machen.

APIGIT ist eine Kollaborationsplattform, die sich durch ihre native Git-Unterstützung auszeichnet, die den API-Entwicklungsprozess und die Versionskontrolle vereinfacht und es Benutzern ermöglicht, APIs einfach zu entwerfen, zu dokumentieren, zu simulieren, zu testen und zu teilen. Der visuelle OpenAPI-Editor der Plattform in Kombination mit der nativen Git-Unterstützung erleichtert dem Team die nahtlose und effiziente Zusammenarbeit und den Austausch ihrer Arbeit.

Wie sieht eine RESTful-API-Spezifikation aus?

Hier ist ein Teil einer RESTful-API-Spezifikation.

"components": {
    "schemas": {
      "OpenAI-Request": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "description": "Your question"
          },
          "model": {
            "type": "string",
            "description": "OpenAI model",
            "default": "1",
            "minLength": 1,
            "maxLength": 20,
            "pattern": "\\w+"
          },

Wenn Sie ein Schema in Ihrer RESTful-API-Spezifikation definieren, haben Sie die Möglichkeit, verschiedene Aspekte eines Parameters anzugeben, einschließlich seines Typs, seiner minimalen und maximalen Länge und sogar eines regulären Ausdrucksmusters. Diese Spezifikation kann dann in eine Web Application Firewall (WAF) geladen werden, sodass Sie benutzerdefinierte Regeln generieren können, die dem definierten Schema entsprechen.