Web Application Firewalls (WAFs) sind eine wichtige Ebene der modernen Web-Sicherheit und bieten die erste Verteidigungslinie einer Website gegen Schwachstellen. WAFs können verwendet werden, um versuchte Exploits abzuwehren und zu benachrichtigen, sodass Abwehrmaßnahmen schneller durchgeführt werden können, als Unternehmen anfällige Software patchen können. Diese Funktionalität muss in einer Weise implementiert werden, die leistungsabhängig für ein globales CDN ist und Antwortzeiten im Bereich von Millisekunden bietet. Als wir vor drei Jahren eine WAF-Engine für die Verizon Digital Media Services, jetzt Edgio, eingeführt haben, haben wir uns für die ModSecurity Rules Engine entschieden, die für einzelne WAF-Anwendungsfälle erstklassig ist. Darüber hinaus bot ModSecurity die Unterstützung des OWASP Core Rule Set (CRS), der leistungsstarken Regelsprache und des API-Zugriffs auf den HTTP-Datenverkehr in Echtzeit erhebliche Flexibilität.
Geben Sie waflz ein
Als jedoch die Anzahl der Kunden zunahm, die WAF verwenden, kam es zu Leistungs- und Ressourcenengpässen. Die dichte Regelsammlung von ModSecurity, die über jede Kundeninstanz hinweg verbreitet wurde, führte zu einer höheren Speicher- und CPU-Auslastung im gesamten Netzwerk, was zu höheren Betriebskosten führte. Das Testen und Bereitstellen neuer Regeln war ebenfalls schwierig, da die Regelsprache oft unhandlich und schwierig zu schreiben und zu analysieren war. Diese Probleme und die Komplexität der Entwicklung mit der bestehenden ModSecurity-Bibliothek führten zur Entwicklung von Waflz, einer Open-Source-WAF-Engine, die unter der Apache 2,0-Lizenz veröffentlicht wurde.
Für Edgio stellt waflz eine wesentliche Verbesserung bei ModSecurity dar, da:
- Es verbraucht weniger Speicher.
- Bietet bessere Leistung.
- Ist API-gesteuert.
Waflz unterstützt eine Teilmenge von ModSecurity-Funktionen, die OWASP Core-Regelsätze 2. X und 3. X und mehrere Regelsätze Dritter.
Waflz entwerfen
Waflz wurde von Grund auf für hohe Leistung und Mehrmandantenfähigkeit entwickelt. Bei Bedarf wurde die Leistung durch Flexibilität ersetzt. Letztendlich unterstützt waflz eine eingeschränkte Teilmenge von ModSecurity-Funktionen. Aus Sicherheits- und Performancegründen wurden einige ModSecurity-Anweisungen wie SecRemoteRules und InspectFile für die Ausführung an der Edge als ungeeignet erachtet.
Die Engine kann mit Regeln im ModSecurity-Format oder im JSON-Format konfiguriert werden. Das gesamte WAF-Produkt wurde als „API-First“ konzipiert. Zu diesem Zweck bietet waflz erstklassige JSON-Unterstützung als ein- und Ausgänge. Waflz verwendet intern Google Protocol-Puffer, um sowohl Konfigurations- (einschließlich Regeln) als auch Warnungsformate darzustellen. Die Auswahl von Protokollpuffern ermöglicht die Interoperabilität mit JSON-Eingängen und -Ausgängen und das Hinzufügen streng typisierter Schemas für beide.
Einige der wichtigsten technischen Herausforderungen in einem CDN sind die hohe Parallelität und Mehrmandantenfähigkeit, die durch die Bedienung Tausender von Kunden entsteht: Jeder unserer globalen Edge-Server muss in der Lage sein, Anfragen für jeden unserer Kunden so schnell wie möglich zu bearbeiten. Darüber hinaus müssen Edge-Server-Anwendungen Patching und Verarbeitung in Echtzeit für jede Kundenkonfiguration bereitstellen.
Viele WAF-Regelsätze wurden in den Speicher des laufenden HTTP-Anwendungsserverprozesses an der Peripherie geladen und stellten eine Herausforderung für die Skalierbarkeit dar. Waflz löst dieses Problem, indem die WAF-Regelsätze nur einmal im Speicher erstellt und schreibgeschützte Referenzen zwischen den Kundenkonfigurationen und Regelanpassungen freigegeben werden. Darüber hinaus wurden mehrere potenzielle Leistungsoptimierungen identifiziert, die die Verarbeitungszeiten von Anfragen verkürzten, einschließlich Platz- und Zeiteinsparungen für einige kritische interne Datenstrukturen.
Waflz verfügt außerdem über integrierte Funktionen, die die Validierung des Motorverhaltens und das Testen von einmaligen ModSecurity-Regeln vereinfachen, wodurch ein komplexer eigenständiger Testkabelbaum überflüssig wird.
Schlussfolgerung
Waflz ist Teil unserer CDN-Technologie und kann in großem Maßstab betrieben werden und ermöglicht gleichzeitig effiziente, granulare Regeltests und Anpassungen. Trotz der Herausforderungen für CDN-Anwendungen sind ModSecurity und die neue libmodsecurity fantastische, flexible Bibliotheken, die sich ideal für viele Anwendungsfälle eignen. Tatsächlich haben wir bei der Entwicklung von Waflz einen Beitrag zur ModSecurity-Entwicklung geleistet. Die neue WAF-Engine wird seit mehr als einem Jahr weltweit in der Produktion eingesetzt und unterstützt und schützt gleichzeitig Tausende verschiedener Client-Konfigurationen ohne Leistungseinbußen.
Besuchen Sie github, um weitere Beispiele für Waflz-Funktionen anzuzeigen.