Web Application Firewalls (WAFs): Ein falsches Gefühl der Sicherheit?

Web Application Firewalls (WAFs) sind ein Schutzmechanismus zum Blockieren potenziell bösartiger Anfragen, bevor sie die Anwendung selbst erreichen. Oft wird dies in Form eines Proxy implementiert, der HTTP-Anfragen abfängt, analysiert und schließlich eine Entscheidung trifft, wie mit diesen umzugehen ist.

Obwohl dies effektiv ist, könnte übermäßiges Vertrauen in diese Methode zu einem falschen Sicherheitsgefühl führen, das es einem Angreifer ermöglicht, ungelöste interne Probleme zu seinem Vorteil zu nutzen. In diesem Blog werden wir die Sicht eines Penetrationstesters auf WAF-Implementierungen präsentieren, die Probleme, die wir darin sehen, deren Umgehung sowie andere Fragen, denen wir begegnet sind.

Wie WAFs akkurate Penetrationstest torpedieren

Häufig werden WAFs als der ärgste Feind des Penetrationstesters betrachtet, da sie Anfragen, die in einer Überprüfung üblich sind, blockieren. Aus anderer Perspektive mag das eine bloße Umständlichkeit sein, aber Penetrationstester erblicken darin durchaus ein Problem.

Beim Sicherheitsaudit einer Anwendung ist es wichtig, dass so viel wie möglich von der Überprüfung abgedeckt wird. Besteht eine WAF, wird es schwierig, bestimmte Fragen zu testen, sodass die Fachleute daran gehindert werden, existierende Sicherheitslücken zu identifizieren.

Während die WAF einen Versuch, ein Cross-Site-Skripting (XSS) in einem Eingabefeld zu platzieren, blockieren mag, könnte die Anwendung selbst den Input nicht vollständig schadlos machen. Demzufolge ist ein XSS-Angriff immer noch möglich, wenn die WAF umgangen wird, was hätte identifiziert werden können, wenn der Test ohne den WAF-Schutz durchgeführt worden wäre.

Umgehung der Webanwendungsfirewalls

Wie bei jedem Produkt der Anwendungssicherheit werden sowohl Forscher wie Angreifer immer ein Problem identifizieren und entsprechend Wege, diese zu umgehen. WAFs sind da keine Ausnahme, besonders wegen ihrer Allgegenwärtigkeit in modernen Anwendungen.

Es ist ein übliches Verfahren, interne Netzwerke von WAFs auszunehmen, damit interne Dienste oder Benutzer nicht fälschlicherweise von ihnen aufgehalten werden. Das wird problematisch, wenn es einem Angreifer gelingt, seine IP-Adresse in irgendeiner Form vorzutäuschen, was oft aufgrund von Fehlkonfiguration oder falschem Umgang mit HTTP-Headern passiert. Häufig geschieht dies, indem man Header mit IP-Adressen einfügt, die bei der Prüfung durch die WAF oder einen zwischengeschalteten Proxy als interne Ressource interpretiert werden.

Viele WAFs haben ein fixes Limit, wie viele Bytes an eingehenden HTTP-Anfragen sie analysieren können. Sind Anfragen größer als dieses Limit, wird dazu geraten, diese als bösartig zu betrachten, obwohl dies nicht immer der Fall ist. Ein Angreifer könnte dann die WAF umgehen, indem er eine übergroße Anfrage sendet, der bösartiger Inhalt anhängt.

Diese üblichen Umgehungen können mit einer sicheren und stabilen Konfiguration abgewehrt werden. Allerdings sind Umgehungen mittels Verschlüsselung oder Verschleierung schwerer zu beheben und daher muss die Anwendungssicherheit auch ohne die Hilfe der WAF gut sein.

Testen Sie Ihre Webanwendungen in Echtzeit mit PtaaS

Nicht alle Schwachstellen können behoben werden

WAFs sind dafür optimiert, bösartige Anfragen aufzuhalten, aber sie ziehen keine Schwachstellen in Erwägung, die legitime Vorgänge missbrauchen.

Angriffe auf die Logik, auf der die Anwendung basiert, werden selten bösartige Nutzdaten beinhalten, aber stattdessen den Fokus darauf legen, das zugrunde liegende System so zu manipulieren, dass es unerwünschte Aktionen durchführt. Aktionen wie das Senden von Anfragen in verkehrter Reihenfolge, Wiederholungen von Anfragen oder das Einlösen von Geschenkkarten werden allesamt von der WAF als legitime Anfragen behandelt. Daher wird die Manipulation dieser und deren Logik nicht entdeckt oder gestoppt.

Auch Fragen der Autorisierung sind etwas, wo WAFs keine Hilfe sind. Ebenso wie logische Mängel sind Probleme bei der Autorisierung grundsätzliche Fehlkonfigurationen, in diesem Fall der Zugangskontrolle, und damit etwas, was die WAF unbeachtet lässt. Sie wird einfach einen befugten Benutzer sehen, der versucht, Zugang zu einer Ressource zu erhalten, zu der er Zugang haben darf.

Sie wollen mehr über Schwachstellen der Geschäftslogik wissen? Werfen Sie einen Blick in unseren jüngsten Blogbeitrag, der dies behandelt: Angriffe auf Geschäftslogik: Die Zukunft von Cyberattacken

Probleme durch benutzerdefinierte WAFs

Die meisten WAFs werden von externen Dienstleistern zur Verfügung gestellt, aber manchmal haben kleinere Services oder Anwendungen ihre eigene WAF-Implementierung. Damit eine WAF wirkungsvoll bleibt, ist eine richtige Konfiguration unerlässlich, besonders bei benutzerdefinierten Implementierungen. Häufig werden die Standardumgehungen auch mit diesen leicht fertig und können die WAF zudem dazu bringen, unerwünschte Dinge zu tun.

Diese Probleme treten oft auf, wenn die benutzerdefinierte Implementierung zusammen mit anderen Proxies eingesetzt wird. Die Proxies können Cachingdienste oder Lastenausgleichsmodule sein, die sich, sobald mit der WAF kombiniert, merkwürdig zu verhalten beginnen.

Während einer Überprüfung fiel uns eine benutzerdefinierte WAF-Implementierung auf, die sich bezüglich der eingesetzten Lastausgleichsmodule seltsam verhielt. Die IP-Adressen in den Blockierungsantworten der WAF passten nicht zu denen unserer Tester und allmählich setzten die Funktionalitäten der Site aus. Nach einer Untersuchung kam heraus, dass die WAF die Lastverteiler einen nach dem anderen ablehnte, nicht die tatsächliche Quelle der Anfrage.

Dies ist nur ein Beispiel für eine Menge unbeabsichtigter Probleme, die sich auftun können.

WAFs haben ihren Zweck, aber bleiben Sie auf der Hut

WAFs spielen in der Tat eine bedeutsame Rolle im Ökosystem der Anwendungssicherheit, sollten aber nicht als die ultimative Lösung für alle Sicherheitsfragen betrachtet werden. Die grundlegende Sicherheit der Anwendung muss belastbar sein, damit die Firewall und andere externe Schutzmechanismen so wirksam wie möglich sein können.

Um dies zu gewährleisten, sind regelmäßige Sicherheitsaudits ohne aktive WAF notwendig, damit sichergestellt werden kann, dass die Standards der Anwendung den Anforderungen genügen. Dies wird sicherstellen, dass selbst im schlimmsten Szenario, der Umgehung der WAF, die Anwendung bösartige Anfragen dennoch angemessen behandelt.

Mit der SWAT-Lösung von Outpost24 können Sie automatisch und kontinuierlich Ihre auf das Internet gerichteten Webanwendungen nach den neuesten Sicherheitslücken absuchen. Die Ergebnisse werden von unseren zertifizierten Pentestern verifiziert, um frustrierende Fehlalarme zu vermeiden. Die Lösung kann vollständig an Ihren individuellen Bedarf angepasst werden, womit unnötiger Ballast oder Risiko für sensible Umgebungen minimiert wird.

Sie können zudem direkt mit unseren Sicherheitsexperten in Austausch treten, um Anleitungen zur Validierung und Behebungsprozess zu erhalten, und all dies über ein benutzerfreundliches Portal. Buchen Sie noch heute Ihre Live-Demo.  

About the Author

Love Andren Autor Profilfoto
Love Andrén Senior Application Security Auditor, Outpost24

Love ist Senior Application Security Auditor bei Outpost24. Bekannt für seine Leidenschaft, Anwendungen an ihre Grenzen zu bringen, und für seine Liebe zum Detail, hat sich Love einen Ruf dafür erworben, konsequent schwer zu entdeckende Schwachstellen aufzuspüren.