Zum Inhalt springen

ALB WAF Funktionen

Zuletzt aktualisiert am

Dieses Dokument beschreibt die zentralen Funktionen und Konfigurationen der STACKIT Application Load Balancer Web Application Firewall (ALB WAF).

Die folgende Tabelle zeigt, welche Funktionen der ALB WAF verfügbar sind und welche sich noch in Entwicklung befinden:

Um die ALB WAF zu nutzen, müssen Sie einen aktiven STACKIT Application Load Balancer (ALB) konfiguriert haben. Die ALB WAF schützt Ihre Backend-Anwendungen direkt auf Ebene des Load Balancers. Sie prüft eingehenden Layer-7-Traffic, bevor dieser Ihre Target Pools erreicht.

Eine Konfiguration für die ALB WAF (waf_config) muss mit der API oder dem SDK erstellt werden. Nach der Erstellung können Sie sie über unsere API, das SDK oder Terraform an Ihre ALB-Listener anbinden. Verweisen Sie dazu im Setup-Block Ihres Listeners auf den Namen der Konfiguration.

Managed Rule Sets sind vorkonfigurierte Sammlungen von Regeln. Sie tragen dazu bei, Ihre Infrastruktur zu schützen. Sie müssen keine Regeln manuell erstellen.

Das OWASP Core Rule Set (CRS) ist die erste Managed Rule Collection, die von der ALB WAF unterstützt wird. Es schützt vor verwundbaren Angriffsvektoren, die in den OWASP Top 10 aufgeführt sind. Zu diesen Vektoren gehören SQL Injection, Cross-Site Scripting (XSS) und das Ausführen von Schadcode aus der Ferne.

Die ALB WAF bietet Kontrolle über einzelne Regeln innerhalb dieses Managed Sets. Über die API können Sie den Zustand bestimmter Regeln anpassen:

  • Enable: Den Traffic aktiv prüfen und die Regel anwenden.
  • Disable: Die Regel umgehen, ohne sie zu protokollieren.
  • Log only: Die Regel umgehen, sie aber protokollieren.

Sie können spezialisierte Rule Groups mithilfe von Custom Rule Groups einrichten. Jede Gruppe enthält mehrere eigene Regeln. In der JSON-Konfiguration sind diese Regeln wie folgt aufgebaut:

  • Rule ID (automatisch vergeben): Jeder eigenen Regel innerhalb einer Gruppe wird automatisch eine Kennung zugewiesen. Diese Kennung liegt im Bereich von 1 bis 99999.
  • Behaviors: Legt fest, welche Aktion bei einem Treffer ausgeführt wird:
    • Disruptive Actions: Aktionen wie deny stoppen die Verarbeitung des Requests. Sie senden eine strikte Antwort mit dem Statuscode 403 Forbidden an den Client zurück.
    • Logging: Wenn log auf true gesetzt ist, muss eine log_msg angegeben werden. Diese Nachricht reichert die nachgelagerten Logs an. Das erleichtert Security-Teams das Debugging.
  • Severity Levels: Traffic kann anhand von Regeln mit bestimmten Schweregrad-Kennzeichen versehen werden (zum Beispiel severity: "CRITICAL").
  • Conditions: Ein einzelnes Kriterium oder mehrere Kriterien, die nacheinander ausgewertet werden:
    • Variables: Zielen auf bestimmte Bereiche des Requests (zum Beispiel REQUEST_HEADERS) und Schlüssel (zum Beispiel Host).
    • Transformations: Normalisieren die Eingabedaten vor der Analyse (zum Beispiel lowercase oder none).
    • Operators: Vergleichen die transformierten Daten mit einem String oder Muster (zum Beispiel die Prüfung, ob der Wert mit @beginsWith einem erlaubten Wert beginnt).