BLOG

Wo passt eine WAF in den Datenpfad?

Lori MacVittie Miniaturbild
Lori MacVittie
Veröffentlicht am 19. Oktober 2017

Proxybasierte Web Application Firewalls (WAFs) sind ein integraler Bestandteil des Anwendungsschutzes. WAFs sind nicht nur eine Voraussetzung für die Einhaltung des PCI-DSS, sondern bieten auch einen hervorragenden Schutz vor den OWASP Top 10. Sie sind außerdem eine Lösung zur Behebung von Zero-Day-Schwachstellen, entweder durch die schnelle Veröffentlichung von Signaturaktualisierungen oder in einigen Fällen durch die Verwendung programmgesteuerter Funktionen zum virtuellen Patchen von Anwendungen, während eine langfristige Lösung bereitgestellt wird.

Die Frage ist, wo man einen solchen Schutz anbringt?

Es gibt natürlich Optionen. Der Datenpfad enthält mehrere Einfügepunkte, an denen eine WAF bereitgestellt werden kann. Das bedeutet jedoch nicht, dass jeder Einfügepunkt eine gute Idee ist. Manche sind weniger effizient als andere, manche weisen inakzeptable Schwachstellen auf und wieder andere führen zu architektonischen Schulden, die im Laufe der Zeit zu hohen Zinsstrafen führen.

Idealerweise stellen Sie eine WAF hinter Ihrer Lastausgleichsebene bereit. Dadurch werden Nutzung, Leistung und Zuverlässigkeit optimiert und gleichzeitig der notwendige Schutz für alle Apps gewährleistet – insbesondere aber für jene, die im Internet verfügbar sind.

Empfohlene Platzierung: WAF hinter der Load Balancing-Ebene
Verwendung

Der Ressourcenbedarf (CPU usw.) zur Entscheidung über den Lastausgleich ist minimal. Aus diesem Grund kann ein LB im Allgemeinen Millionen von Benutzern gleichzeitig unterstützen, während WAFs eine stärkere Auslastung erfordern – weil sie die gesamte Nutzlast prüfen und anhand von Signaturen und Richtlinien bewerten, um zu ermitteln, ob die Anforderung gültig und sicher ist.

Moderne Rechenzentrumsmodelle orientieren sich stark an der Cloud und ihrer nutzungsbasierten Kostenstruktur. Die Auslastung wird zum Schlüsselfaktor der Betriebskosten. Eine höhere Auslastung führt zu einem zusätzlichen Ressourcenbedarf, der Budgets aufzehrt. Daher ist die Nutzungsoptimierung eine sinnvolle Strategie zur Kostenbegrenzung sowohl im Rechenzentrum als auch in öffentlichen Cloud-Umgebungen.

Zuverlässigkeit

Es ist üblich, WAFs horizontal zu skalieren. Das heißt, Sie verwenden den LB, um WAFs zu skalieren. Diese architektonische Entscheidung steht in direktem Zusammenhang mit der Nutzung. Obwohl viele WAFs gut skalierbar sind, können sie dennoch durch Flash-Verkehr oder Angriffe überlastet werden. Wenn die WAF vor dem LB positioniert ist, benötigen Sie entweder eine weitere LB-Stufe, um sie separat zu skalieren, oder Sie riskieren, Leistung und Verfügbarkeit zu beeinträchtigen.

Alternative Platzierung: WAF vor einer Load Balancing-Ebene ... und hinter einer anderen
Leistung

In einer Anwendungsökonomie ist die Leistung ein zentrales Anliegen . Angesichts der vielen Variablen und Systeme, die auf dem Weg der Daten mit diesen interagieren, kann es frustrierend sein, genau herauszufinden, wo die Leistung nachlässt, ganz zu schweigen davon, jede einzelne Variable zu optimieren, ohne die anderen zu beeinträchtigen. Wie bereits mehrfach erwähnt, verringert sich die Leistung eines Systems mit zunehmender Belastung. Dies ist eine der unbeabsichtigten Folgen einer fehlenden Auslastungsoptimierung und ein Hauptgrund dafür, warum erfahrene Netzwerkarchitekten bei der Auslastung von Netzwerkgeräten einen Schwellenwert von 60 % festlegen.

Durch die Bereitstellung einer WAF hinter der LB-Ebene erübrigt sich eine vorgelagerte, ausgewiesene WAF-Lastausgleichsebene, wodurch eine ganze Netzwerkebene aus der Gleichung entfernt wird. Die eingesparte Verarbeitungszeit erscheint zwar nicht groß, doch die wertvollen Mikrosekunden, die für die Verbindungsverwaltung und Skalierung von WAF-Diensten sowie die anschließende erneute Ausführung zum Auswählen einer Ziel-App-Instanz/eines Zielservers aufgewendet werden, sind von Bedeutung. Durch die Eliminierung dieser Ebene durch die Bereitstellung der WAF hinter der LB-Ebene werden wertvolle Mikrosekunden zurückgewonnen, die die heutigen Benutzer nicht nur bemerken, sondern auch schätzen werden.

Sichtbarkeit

Sichtbarkeit ist eine zentrale Voraussetzung für Sicherheitslösungen im Datenpfad. Ohne die Möglichkeit, den gesamten Fluss – einschließlich der Nutzlast – zu überprüfen, werden viele Sicherheitsfunktionen einer WAF hinfällig. Schließlich befindet sich der meiste Schadcode in der Nutzlast und nicht in den Protokollheadern. Durch die Positionierung einer WAF hinter der LB-Ebene kann SSL/TLS entschlüsselt werden, bevor der Datenverkehr zur Überprüfung an die WAF weitergeleitet wird. Dies ist eine wünschenswertere Architektur, da der Load Balancer wahrscheinlich ohnehin Einblick in den gesicherten Datenverkehr benötigt, um zu bestimmen, wie Anforderungen richtig weitergeleitet werden.

Empfohlene Konfiguration: Entschlüsselung und Überprüfung für zusätzliche Sicherheit

Abgesehen davon passt eine WAF praktisch überall in den Datenpfad, wo Sie sie haben möchten. Es handelt sich um einen L7- Proxy-basierten Sicherheitsdienst, der als Vermittler im Netzwerkpfad eingesetzt wird. Wenn Sie das wollten, könnte es scheinbar am Rand des Netzwerks sitzen. Wenn Sie Ihre Architektur jedoch gleichzeitig hinsichtlich Leistung, Zuverlässigkeit und Auslastung optimieren möchten, positionieren Sie die WAF am besten hinter der Lastausgleichsebene, näher an der Anwendung, die sie schützt.

Mit den richtigen Tools können Sie durch eine umfassende WAF-Abdeckung Ihr Risiko sowie Ihre Betriebskosten erheblich senken. Erfahren Sie mit den On-Demand-Webinaren von F5 mehr darüber, wie Sie Ihre Apps vor den OWASP Top 10 und anderen Bedrohungen schützen können, und erkunden Sie die vielen Möglichkeiten, wie Sie die WAF-Funktionen von F5 einsetzen können, einschließlich des cloudbasierten verwalteten Silverline WAF- Dienstes des Unternehmens.

Der F5-Sicherheitsarchitekt Brian McHenry und der Principal Threat Research Evangelist David Holmes haben zu diesem Artikel beigetragen. Kleinere Änderungen im August 2019 vorgenommen.