Sichern von Webanwendungen mit Azure Web Application Firewall (WAF)

Sichern von Webanwendungen mit Azure Web Application Firewall (WAF)

14.01.2025

Dieser technische und lehrreiche Artikel soll Sicherheitsanalysten, IT-Administratoren und Systemingenieuren bei der Implementierung und Konfiguration der Azure Web Application Firewall (WAF) helfen, um Webanwendungen vor häufigen Angriffen zu schützen. In einer digitalen Landschaft, in der Webanwendungen das Tor zu vielen Unternehmen darstellen, sind sie zu häufigen Zielen verschiedener Cyberangriffe geworden, wie etwa SQL-Injection, Cross-Site-Scripting (XSS) und anderen OWASP-Top-10-Schwachstellen. Azure WAF bietet eine wesentliche Schutzebene zur Minderung dieser Risiken und stellt die Datenverfügbarkeit, -integrität und -vertraulichkeit sicher [1].

Einführung

Webanwendungen sind wichtige Komponenten der IT-Infrastruktur praktisch aller Unternehmen. Aufgrund ihrer Präsenz im Internet sind sie jedoch anfällig für Angriffe, die Daten kompromittieren, Dienste unterbrechen und den Ruf des Unternehmens schädigen können. Eine Web Application Firewall (WAF) fungiert als Reverse-Proxy, prüft den bei der Webanwendung ein- und ausgehenden HTTP/HTTPS-Verkehr und identifiziert und blockiert bösartige Anfragen, bevor sie den Anwendungsserver erreichen. Azure WAF, verfügbar als Funktion von Azure Application Gateway oder Azure Front Door, bietet zentralisierten und skalierbaren Schutz für Ihre Webanwendungen, die in Azure oder sogar in Hybridumgebungen gehostet werden [2].

Dieser praktische Leitfaden behandelt die grundlegenden Konzepte von Azure WAF, seine Betriebsmodi (Erkennung und Prävention), die Konfiguration von WAF-Richtlinien mit verwalteten Regelsätzen (OWASP Core Rule Set – CRS) und benutzerdefinierten Regeln. Es werden Schritt-für-Schritt-Anleitungen für die Bereitstellung von WAF mit Azure Application Gateway, das Testen seiner Wirksamkeit gegen gängige Angriffe und die Validierung der Ergebnisse bereitgestellt sowie Best Practices und Tipps zur Fehlerbehebung besprochen. Ziel ist es, den Leser in die Lage zu versetzen, Azure WAF selbstständig, professionell und zuverlässig zu konfigurieren und zu verwalten und so seine Webanwendungen vor den häufigsten Bedrohungen zu schützen.

Warum ist Azure WAF für den Schutz von Webanwendungen von entscheidender Bedeutung?

  • Umfassender Schutz: Schützt vor häufigen Webangriffen, einschließlich SQL-Injection, Cross-Site-Scripting (XSS), Dateieinschluss, Bot-Angriffen und anderen OWASP-Top-10-Schwachstellen [3].
  • Verwaltete Regeln: Verwendet verwaltete Regelsätze (z. B. OWASP CRS), die automatisch von Microsoft aktualisiert werden, um Schutz vor den neuesten Bedrohungen ohne manuelles Eingreifen zu gewährleisten.
  • Benutzerdefinierte Regeln: Ermöglicht die Erstellung benutzerdefinierter Regeln, um anwendungsspezifische Sicherheitsanforderungen zu erfüllen, bestimmte Verkehrsmuster zu blockieren oder vor Schwachstellen zu schützen, die nicht durch verwaltete Regeln abgedeckt werden.
  • Flexible Betriebsmodi: Arbeitet im Modus „Erkennung“ (überwacht und zeichnet nur Angriffe auf) oder „Prävention“ (blockiert Angriffe aktiv) und ermöglicht so eine schrittweise Kontrolle der Implementierung.
  • Native Integration mit Azure: Nahtlose Integration mit Azure Application Gateway (für interne Anwendungen) und Azure Front Door (für globale Anwendungen) und bietet eine vollständige Anwendungsbereitstellungslösung mit eingebetteter Sicherheit.
  • Skalierbarkeit und Hochverfügbarkeit: Profitieren Sie von der Skalierbarkeit und Hochverfügbarkeit der Azure-Anwendungsbereitstellungsdienste und stellen Sie sicher, dass der Schutz immer aktiv und leistungsstark ist.
  • Compliance: Hilft Unternehmen dabei, gesetzliche Anforderungen und Sicherheitsstandards einzuhalten, die den Schutz von Webanwendungen erfordern.

Voraussetzungen

Um Azure WAF zu implementieren, benötigen Sie die folgenden Elemente:

  1. Aktives Azure-Abonnement: Ein Azure-Abonnement zum Erstellen und Verwalten von Ressourcen.
  2. Administratorzugriff: Ein Konto mit den erforderlichen Berechtigungen zum Erstellen und Verwalten von Ressourcen wie Application Gateways, Front Doors und WAF-Richtlinien (z. B. „Mitarbeiter“ oder „Netzwerkadministrator“).
  3. Vorhandene Webanwendung: Eine Webanwendung (gehostet in Azure oder anderswo), die Sie schützen möchten. Für diesen Leitfaden gehen wir von einer einfachen Webanwendung aus, auf die über Application Gateway zugegriffen wird.
  4. Virtuelles Netzwerk (VNet) und Subnetze: Ein virtuelles Netzwerk und Subnetze, die für das Application Gateway und die Webanwendung konfiguriert sind.

Schritt für Schritt: Azure WAF mit Application Gateway implementieren

Lassen Sie uns Azure WAF zum Schutz von a konfigurierenWebanwendung mit Azure Application Gateway.

1. Erstellen eines Azure Application Gateway mit WAF

  1. Öffnen Sie Ihren Browser und navigieren Sie zum Azure-Portal: „https://portal.azure.com“.
  2. Melden Sie sich mit einem Konto an, das über die erforderlichen Berechtigungen verfügt.
  3. Geben Sie im oberen Suchfeld „Application Gateway“ ein und wählen Sie es aus den Ergebnissen aus.
  4. Klicken Sie auf „+ Erstellen“.

  5. Grundlagen:

    • Abonnement: Wählen Sie Ihr Abonnement aus.
    • Ressourcengruppe: Erstellen Sie eine neue Ressourcengruppe (z. B. „rg-waf-appgw“) oder wählen Sie eine vorhandene aus.
    • Name des Anwendungs-Gateways: Geben Sie einen Namen ein (z. B. „appgw-waf-01“).
    • Region: Wählen Sie die Region aus.
    • Stufe: Wählen Sie „Standard v2“ (WAF ist nur in Stufe v2 verfügbar).
    • WAF aktivieren: Wählen Sie „Ja“.
    • WAF-Richtlinienname: Geben Sie der WAF-Richtlinie einen Namen (z. B. „wafpolicy-appgw-01“).
    • WAF-Modus: Beginnen Sie mit „Erkennung“, um Regeln zu überwachen und anzupassen, bevor Sie mit „Prävention“ fortfahren.
  6. Klicken Sie auf „Weiter: Frontends“.

  7. Frontends:

    • Frontend-IP-Adresstyp: Wählen Sie „Öffentlich“.
    • Öffentliche IP-Adresse: Klicken Sie auf „+Neu hinzufügen“ und geben Sie der öffentlichen IP einen Namen (z. B. „pip-appgw-waf“).
  8. Klicken Sie auf „Weiter: Backends“.

  9. Backends:

    • Klicken Sie auf „+Backend-Pool hinzufügen“.
    • Name des Backend-Pools: Geben Sie ihm einen Namen (z. B. „app-backend-pool“).
    • Back-End-Pool ohne Ziele hinzufügen: Wählen Sie „Nein“.
    • Zieltyp: Wählen Sie „IP-Adresse oder FQDN“.
    • IP-Adresse/FQDN: Geben Sie die IP-Adresse oder den FQDN Ihrer Webanwendung ein (z. B. „10.0.0.4“ für eine VM im VNet oder den FQDN eines App Service).
    • Klicken Sie auf „Hinzufügen“.
  10. Klicken Sie auf „Weiter: Konfiguration“.

  11. Einrichtung:

    • Routing-Einstellungen: Klicken Sie auf „+Routing-Regel hinzufügen“.
    • Regelname: Geben Sie ihm einen Namen (z. B. „rule-http“).
    • Priorität: Behalten Sie die Standardeinstellung bei.
    • Zuhörer:
      • Listener-Name: Geben Sie einen Namen ein (z. B. „listener-http“).
      • Frontend-IP-Adresse: Wählen Sie die erstellte öffentliche IP aus.
      • Protokoll: Wählen Sie „HTTP“ (zum Starten können Sie später HTTPS hinzufügen).
      • Port: „80“.
    • Backend-Ziele:
      • Zieltyp: Wählen Sie „Backend-Pool“.
      • Backend-Pool: Wählen Sie „app-backend-pool“.
      • Backend-Konfiguration: Klicken Sie auf „+Neu hinzufügen“.
        • Name der Backend-Einstellung: Geben Sie ihm einen Namen (z. B. „http-setting“).
        • Backend-Protokoll: „HTTP“.
        • Backend-Port: „80“ (oder Ihr Webanwendungs-Port).
        • Benutzerdefinierte Sonde verwenden: Wählen Sie „Nein“ (für dieses einfache Beispiel).
        • Klicken Sie auf „Hinzufügen“.
    • Klicken Sie in der Routing-Regel auf „Hinzufügen“.
  12. Klicken Sie auf „Weiter: Tags“.

  13. Klicken Sie auf „Weiter: Überprüfen + erstellen“.
  14. Überprüfen Sie die Einstellungen und klicken Sie auf „Erstellen“.

    • Erklärung: Dieser Prozess erstellt ein Application Gateway mit einer zugehörigen WAF. Die WAF beginnt mit der Untersuchung des Datenverkehrs im Modus „Erkennung“.

2. Konfigurieren verwalteter und benutzerdefinierter WAF-Regeln

Nach der Bereitstellung können Sie die WAF-Richtlinie anpassen.

  1. Navigieren Sie im Azure-Portal zu Ihrem Application Gateway („appgw-waf-01“).
  2. Wählen Sie im linken Navigationsbereich unter „Einstellungen“ die Option Web Application Firewall.
  3. Klicken Sie auf den Namen Ihrer WAF-Richtlinie („wafpolicy-appgw-01“).

  4. Richtlinienmodus: Im Abschnitt „Übersicht“ können Sie den „Modus“ von „Erkennung“ auf „Prävention“ ändern, wenn Sie sicher sind, dass Ihre Regeln legitimen Datenverkehr nicht blockieren.

  5. Verwaltete Regeln:

    • Wählen Sie im linken Navigationsbereich der WAF-Richtlinie Verwaltete Regeln aus.
    • Stellen Sie sicher, dass der „OWASP-Standardregelsatz“ (z. B. „OWASP_CRS/3.2“) „Aktiviert“ ist.
    • Sie können bestimmte Regeln innerhalb des verwalteten Satzes deaktivieren, wenn sie zu Fehlalarmen führen. Gehen Sie dabei jedoch mit Vorsicht und nur nach sorgfältiger Überlegung vor.
  6. Benutzerdefinierte Regeln:

    • Wählen Sie im linken Navigationsbereich der WAF-Richtlinie Benutzerdefinierte Regeln aus.
    • Klicken Sie auf „+Benutzerdefinierte Regel hinzufügen“.
    • Regelname: Geben Sie ihm einen Namen (z. B. „BloquearIPMalicioso“).
    • Priorität: Legen Sie eine Priorität fest (kleinere Zahlen haben eine höhere Priorität).
    • TypRegel: „Match“.
    • Bedingung:
      • Variablentyp: „RemoteAddress“.
      • Betreiber: „IPMatch“.
      • Wert: Geben Sie die IP-Adresse oder den CIDR-Bereich ein, den Sie blockieren möchten (z. B. „192.168.1.10/32“).
    • Aktion: Wählen Sie „Blockieren“.

    • Erklärung: Mit benutzerdefinierten Regeln können Sie Blockierungslogik basierend auf bestimmten Kriterien wie IP-Adressen, HTTP-Headern, Abfragezeichenfolgen usw. definieren.

  7. Klicken Sie auf Hinzufügen und dann auf Speichern zur WAF-Richtlinie.

3. Überwachung der WAF und Überprüfung von Protokollen

Die Überwachung ist unerlässlich, um die Wirksamkeit der WAF zu verstehen und Richtlinien anzupassen.

  1. Navigieren Sie im Azure-Portal zu Ihrem Application Gateway („appgw-waf-01“).
  2. Wählen Sie im linken Navigationsbereich unter „Überwachung“ die Option Diagnoseprotokolle aus.
  3. Klicken Sie auf „+Diagnosekonfiguration hinzufügen“.
  4. Diagnosekonfigurationsname: Geben Sie ihm einen Namen (z. B. „diag-waf“).
  5. Protokollkategorien: Überprüfen Sie „ApplicationGatewayAccessLog“ und „ApplicationGatewayFirewallLog“.
  6. Zieldetails: Wählen Sie „An Log Analytics-Arbeitsbereich senden“ und dann Ihren Arbeitsbereich aus.
  7. Klicken Sie auf Speichern.

  8. Navigieren Sie nach einigen Minuten zu Ihrem Log Analytics-Arbeitsbereich.

  9. Wählen Sie im linken Navigationsbereich Protokolle aus.
  10. Verwenden Sie KQL-Abfragen (Kusto Query Language), um WAF-Protokolle zu analysieren:
    • So sehen Sie alle WAF-Ereignisse: „Kusto AzureDiagnostics | wobei ResourceProvider == "MICROSOFT.NETWORK" | wobei Kategorie == „ApplicationGatewayFirewallLog“ | Projekt TimeGenerated, Hostname_s, requestUri_s, Message, action_s, Policy_s | Reihenfolge nach TimeGenerated desc „
    • So zeigen Sie blockierte Angriffe an (wenn sich WAF im Modus „Prävention“ befindet): „Kusto AzureDiagnostics | wobei ResourceProvider == "MICROSOFT.NETWORK" | wobei Kategorie == „ApplicationGatewayFirewallLog“ | wobei action_s == „Blockiert“ ist | Projekt TimeGenerated, Hostname_s, requestUri_s, Message, RuleId_s | Reihenfolge nach TimeGenerated desc „

Validierung und Tests

Das Testen der WAF ist von entscheidender Bedeutung, um sicherzustellen, dass sie erwartete Angriffe blockiert und keinen legitimen Datenverkehr (False Positives) blockiert.

1. Häufige Angriffe testen (SQL-Injection, XSS)

  1. Szenario: Versuchen Sie, über das Application Gateway auf Ihre Webanwendung zuzugreifen (unter Verwendung der öffentlichen IP oder des FQDN) und simulieren Sie einen SQL-Injection-Angriff auf die URL oder einen Formularparameter.

    • Beispiel-URL mit SQL-Injection-Versuch (nicht ohne Autorisierung in der Produktion ausführen): http://<seu_ip_publico_appgw>/index.php?id=1' ODER '1'='1
    • Beispiel-URL mit XSS-Versuch: http://<seu_ip_publico_appgw>/search?query=<script>alert('XSS')</script>
  2. Erwartete Aktion (Erkennungsmodus): Wenn sich die WAF im Modus „Erkennung“ befindet, muss die Anforderung zugelassen werden, aber die WAF-Protokolle in Log Analytics müssen den Angriff und die Regel, die ihn erkannt hat, aufzeichnen.

  3. Erwartete Aktion (Präventionsmodus): Wenn sich die WAF im „Präventionsmodus“ befindet, sollte die Anfrage blockiert werden und der Browser sollte eine WAF-Fehlerseite anzeigen (normalerweise ein HTTP 403 Forbidden-Fehler).

  4. Überprüfung: Überprüfen Sie die WAF-Protokolle in Log Analytics, um zu bestätigen, dass Angriffe erkannt (im Erkennungsmodus) oder blockiert (im Präventionsmodus) wurden.

2. Benutzerdefinierte Regeln testen (IP-Blockierung)

  1. Szenario: Versuchen Sie, über die IP-Adresse, die Sie in der benutzerdefinierten IP-Blockierungsregel konfiguriert haben, auf Ihre Webanwendung zuzugreifen.
  2. Erwartete Aktion: Der Zugriff sollte blockiert werden und der Browser sollte eine WAF-Fehlerseite anzeigen.
  3. Überprüfung: Überprüfen Sie die WAF-Protokolle in Log Analytics, um zu bestätigen, dass die IP durch die benutzerdefinierte Regel blockiert wurde.

Sicherheitstipps und Best Practices

  • Im Erkennungsmodus starten: Stellen Sie die WAF zunächst immer im Erkennungsmodus bereit. Überwachen Sie die Protokolle sorgfältig, um Fehlalarme zu identifizieren und passen Sie die Regeln an, bevor Sie in den „Präventions“-Modus wechseln.
  • WAF-Tuning: Die Feinabstimmung ist entscheidend. Deaktivieren Sie bestimmte Regeln, die falsch positive Ergebnisse generieren (blockieren legitimen Datenverkehr), oder fügen Sie Ausschlussregeln für bestimmte Parameter hinzu. Vermeiden Sie es, ganze Regelsätze zu deaktivieren.
  • Benutzerdefinierte Regeln: Verwenden Sie benutzerdefinierte Regeln, um die spezifischen Sicherheitsanforderungen Ihrer Anwendung zu erfülleno oder um neu entdeckte Schwachstellen zu mindern, bevor verwaltete Regeln aktualisiert werden.
  • CRS-Updates: Halten Sie Ihren verwalteten Regelsatz (OWASP CRS) auf dem neuesten Stand, um Schutz vor den neuesten Bedrohungen zu gewährleisten. Azure WAF wird normalerweise automatisch aktualisiert, überprüfen Sie jedoch die Version.
  • Integration mit Azure Front Door: Für globale Webanwendungen oder solche, die Leistungsoptimierung und erweitertes Routing erfordern, sollten Sie die Bereitstellung von WAF auf Azure Front Door in Betracht ziehen. Dies bietet Schutz am Rande des globalen Netzwerks von Microsoft.
  • Überwachung und Warnung: Konfigurieren Sie Warnungen in Azure Monitor für WAF-Sicherheitsereignisse, wie blockierte Angriffe oder Anomalien. Integrieren Sie WAF-Protokolle mit Ihrem SIEM (z. B. Microsoft Sentinel) für eine zentrale Ansicht.
  • Regelmäßige Sicherheitstests: Führen Sie regelmäßig Penetrationstests und Schwachstellenscans an Ihren Webanwendungen durch, um neue Schwachstellen zu identifizieren und die Wirksamkeit der WAF zu validieren.
  • Prinzip der geringsten Rechte: Stellen Sie sicher, dass nur autorisierte Benutzer Berechtigungen zum Konfigurieren und Verwalten von WAF-Richtlinien haben.

Allgemeine Fehlerbehebung

  • WAF blockiert erwartete Angriffe nicht:
    • Stellen Sie sicher, dass sich die WAF im Modus „Prävention“ und nicht im Modus „Erkennung“ befindet.
    • Stellen Sie sicher, dass der verwaltete Regelsatz (OWASP CRS) aktiviert ist.
    • Überprüfen Sie die WAF-Protokolle in Log Analytics, um festzustellen, ob der Angriff erkannt wurde und welche Regel ausgelöst wurde. Möglicherweise müssen Sie die CRS-Empfindlichkeit anpassen oder eine benutzerdefinierte Regel hinzufügen.
    • Stellen Sie sicher, dass es keine Ausschlussregeln oder Whitelists gibt, die böswilligen Datenverkehr zulassen.
  • WAF blockiert legitimen Datenverkehr (False Positives):
    • Beginnen Sie mit der Analyse Ihrer WAF-Protokolle in Log Analytics, um herauszufinden, welche Regel legitimen Datenverkehr blockiert.
    • Für die identifizierte Regel können Sie:
      • Spezifische Regel deaktivieren (letzter Ausweg).
      • Fügen Sie eine Ausschlussregel für den spezifischen Parameter oder Header hinzu, der das falsch positive Ergebnis verursacht.
      • Passen Sie den Schwellenwert für die Anomaliebewertung an (bei Verwendung von CRS im Anomaliebewertungsmodus).
    • Erwägen Sie eine vorübergehende Rückkehr in den „Erkennungsmodus“, um die Regeln anzupassen.
  • Anwendungsleistung nach Aktivierung von WAF beeinträchtigt:
    • WAF verursacht aufgrund der Verkehrskontrolle eine geringe Latenz. Stellen Sie sicher, dass das Application Gateway oder die Front Door die richtige Größe hat.
    • Überprüfen Sie die Application Gateway-Leistungsprotokolle in Azure Monitor.
  • WAF ist nicht mit der richtigen Anwendung verknüpft:
    • Stellen Sie sicher, dass die WAF-Richtlinie dem richtigen Application Gateway oder Front Door zugeordnet ist.
    • Stellen Sie sicher, dass der Datenverkehr zu Ihrer Webanwendung tatsächlich über das Application Gateway/Front Door geleitet wird, wenn WAF aktiviert ist.

Fazit

Azure Web Application Firewall (WAF) ist eine unverzichtbare Verteidigung zum Schutz von Webanwendungen vor einer Vielzahl von Cyberangriffen. Durch die Bereitstellung einer Schicht zur Verkehrsprüfung und -filterung am Netzwerkrand fungiert WAF als Schutzschild und schützt vor bekannten Schwachstellen und Zero-Day-Bedrohungen. Die Flexibilität der Verwendung verwalteter und benutzerdefinierter Regelsätze sowie die native Integration mit Azure-Anwendungsbereitstellungsdiensten machen Azure WAF zu einer robusten und skalierbaren Lösung für jede Organisation. Durch sorgfältige Implementierung, Feinabstimmung von Richtlinien und kontinuierliche Überwachung können Sicherheitsexperten sicherstellen, dass ihre Webanwendungen sicher, verfügbar und konform bleiben, und so die allgemeine Sicherheitslage des Unternehmens gegenüber der sich ständig weiterentwickelnden Bedrohungslandschaft stärken.


Referenzen:

[1] Microsoft Learn. Was ist Azure Web Application Firewall?. Verfügbar unter: https://learn.microsoft.com/pt-br/azure/web-application-firewall/overview [2] Microsoft Learn. Web Application Firewall (WAF) auf Azure Application Gateway. Verfügbar unter: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/ag-overview [3] OWASP-Stiftung. OWASP Top 10. Verfügbar unter: https://owasp.org/www-project-top-ten/ [4] Microsoft Learn. Erstellen Sie Firewall-Richtlinienl Web Application Gateway (WAF) für Azure Application Gateway. Verfügbar unter: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/create-waf-policy-ag [5] Microsoft Learn. WAF CRS-Regeln und Regelgruppen. Verfügbar unter: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/application-gateway-waf-collection-rules [6] Microsoft Learn. WAF-Überwachung und Protokollierung. Verfügbar unter: https://learn.microsoft.com/pt-br/azure/web-application-firewall/ag/waf-diagnostics