BLOG

GraphQL-APIs mit F5 Advanced WAF sichern

Naor Zag Miniaturbild
Naor Zag
Veröffentlicht am 31. August 2021

Stand der APIs

In den letzten Jahren haben viele Organisationen eine digitale Transformation durchlaufen, ein Prozess, der durch die COVID-19-Pandemie beschleunigt wurde.

Und APIs spielen bei dieser Transformation eine bedeutende Rolle. Im Zuge ihrer digitalen Transformation erklären viele dieser Organisationen nun, dass sie eine „API-First“-Organisation sind. Eine „API-First“-Organisation beginnt mit der Entwicklung einer Anwendung, indem sie zunächst APIs entwickelt. Anschließend beginnen sie mit der Entwicklung des restlichen Teils der Anwendung, wobei sie die APIs als Grundlage verwenden. Die Absicht besteht darin, dass die Anwendung ihre grundlegenden APIs nutzt, um mit anderen Anwendungen zu kommunizieren und von ihnen Informationen abzurufen.

Diese Organisationen entwickeln und nutzen normalerweise APIs, um ihre Partnerschaften mit externen Organisationen zu unterstützen, ihre Entwicklungszeit und -kosten zu reduzieren und die Interoperabilität zwischen internen Systemen, Tools und Teams zu verbessern.

Wie im State of Application Strategy Report 2021 von F5 Labs dargelegt, sind APIs auch die Eckpfeiler der Anwendungsmodernisierung. Sie werden genutzt, um die Anpassung und Aktualisierung älterer, klassischer Anwendungen zu unterstützen, um neuere, modularere Anwendungssprachen, Tools und Plattformen zu unterstützen. Darüber hinaus machen APIs – sowohl gute als auch schlechte – mittlerweile den größten Teil des gesamten Webverkehrs aus.

Dies ist die erste Seite des „zweischneidigen Schwertes“ der APIs.

Die zweite Seite des „zweischneidigen“ Schwertes in Bezug auf APIs ist laut Gartner, dass API-Missbrauch bis 2022 der häufigste Angriffsvektor sein wird. Angreifer sind sich bewusst, dass APIs anfällig sein können und von manchen Organisationen sogar ungeschützt bleiben, da diese auf einen offenen Fluss von Daten und Informationen angewiesen sind, der zwischen ihrer Anwendung und anderen Anwendungen ausgetauscht wird. In anderen Fällen handelt es sich lediglich um ein Versehen, das Angreifern jedoch einen schnellen und einfachen Einstiegspunkt für die Kommandierung einer Anwendung bietet. Diese Situation erfordert eine besondere Behandlung, wie beispielsweise die native Unterstützung aller in der Branche verwendeten API-Protokolle und Technologien.

GraphQL-APIs

Eine relativ neue API-Technologie, die in den letzten Jahren schnell gewachsen ist und weiterhin an Bedeutung gewinnt, ist GraphQL. GraphQL wurde 2012 von Facebook intern entwickelt und ist heute Teil der Linux Foundation. Es überwindet erhebliche Herausforderungen, die bei REST-APIs bestehen. Organisationen verwenden zur Entwicklung von APIs zunehmend GraphQL statt REST oder SOAP.

Zu solchen Herausforderungen gehören das Unter- und Überabrufen von Daten, eine schnellere Front-End-Entwicklung ohne die Notwendigkeit neuer API-Endpunkte (GraphQL verwendet einen Endpunkt), hervorragende Back-End-Analysen mit GraphQL-Abfragen und ein strukturiertes Schema und Typsystem.

Im letzten Jahr erreichte GraphQL bereits eine Branchenakzeptanz von über 22 %1 , und erreichen Innovatoren, Early Adopters und die frühe Mehrheit im Lebenszyklus der Innovationsannahme.

Es wird erwartet, dass sich GraphQL in den kommenden Jahren zu einem der führenden Standards für APIs entwickelt.

GraphQL-Sicherheit

Das kometenhafte Wachstum und die Akzeptanz von GraphQL haben jedoch auch schnell die Aufmerksamkeit von Cyber-Angreifern auf sich gezogen, von denen einige bereits damit begonnen haben, Schwachstellen im GraphQL-Ökosystem auszunutzen und Tools zu entwickeln, um diese anzugreifen.

Zu den Angriffstechniken auf APIs, die GraphQL verwenden, gehören gute alte SQL-Injections sowie neu entwickelte Angriffe, die die GraphQL-Spezifikation ausnutzen, um Daten über die API offenzulegen und sie zum eigenen Vorteil zu nutzen.

Darüber hinaus wurden neue Methoden für Denial-of-Service-Angriffe (DoS) eingeführt, die auf GraphQL basierende APIs ausnutzen und die Serverressourcen schnell erschöpfen.

Ab Advanced WAF v16.1 unterstützt F5 jetzt nativ Sicherheit für GraphQL-APIs.

In erster Linie hat F5 eine native Analyse des GraphQL-Verkehrs entwickelt, um die Anwendung erweiterter WAF-Angriffssignaturen zu ermöglichen.

Einerseits erkennt dieser Ansatz Angriffe an den richtigen Stellen der Nutzlast (führt die Signaturen auf den Werten aus). Andererseits verhindert dieser Ansatz Fehlalarme aufgrund von Angriffssignaturen, die auf den falschen Teilen von GraphQL-Anfragen ausgeführt werden.

Zweitens erstellt F5 die GraphQL-Richtlinienvorlage und das Inhaltsprofil als Teil der Anwendungssicherheitsrichtlinie.

In diesem neuen Inhaltsprofil kann der Benutzer die Gesamtlänge und die Wertlänge von Parametern konfigurieren und sie entsprechend seiner Richtlinien begrenzen.

Darüber hinaus kann der Benutzer die maximale Strukturtiefe konfigurieren, um rekursive GraphQL-Abfragen zu eliminieren, die zu einem DoS-Angriff führen können, sowie die maximale Anzahl gebündelter Abfragen, um die Anzahl unterschiedlicher GraphQL-Abfragen in einer HTTP-Anfrage zu begrenzen.

Darüber hinaus können Introspektionsabfragen erzwungen werden, die Angreifern das Verständnis der API-Struktur erleichtern und ihnen so einen erfolgreicheren Angriff auf eine App ermöglichen können.

 

API-Struktur

API-Strukturprofil

Um dem entgegenzuwirken, hat F5 außerdem Unterstützung für unsere deklarative Richtlinienkonfiguration, den Schutz vor volumetrischen DoS-Angriffen mithilfe unserer Funktion „Behavioral DoS“ und die Filterung von Antworten mit der Funktion „DataGuard“ in F5 Advanced WAF hinzugefügt.

Zusammenfassend lässt sich sagen, dass GraphQL neue Möglichkeiten zum Erstellen und Verwalten von APIs bietet, die Modernisierung vorhandener klassischer Anwendungen verbessert und die digitale Transformation unterstützt. Doch wie immer tauchen neue Bedrohungen auf, die die Schwachstellen neuer Technologien ausnutzen, und Sie können davon überrascht werden.

Schützen Sie Ihre GraphQL-APIs noch heute mit F5 Advanced WAF !

Weitere Informationen finden Sie in unserem DevCentral-Beitrag und unserer Lightboard-Lektion auf YouTube .