1. Einführung
Hallo! Willkommen beim Codelab zu vorkonfigurierten WAF-Regeln in Cloud Armor.
Google Cloud Armor ist die Edge-Netzwerksicherheitslösung von Google für Unternehmen, die DDoS-Schutz, WAF-Regelerzwingung und adaptive Verwaltung im großen Maßstab bietet.
Cloud Armor hat die vorkonfigurierten WAF-Regelsätze erweitert, um die Sicherheitslücken der OWASP-Top-10-Webanwendungen zu verringern. Die Regelsätze basieren auf dem OWASP Modsecurity Core Rule Set Version 3.0.2 und schützen sie vor einigen der häufigsten Sicherheitsrisiken für Webanwendungen, darunter lokale Dateieinschluss (lfi), Remote File Inclusion (rfi), Remote Code Execution (rce) und vieles mehr.
In diesem Codelab erfahren Sie, wie Sie einige der häufigen Sicherheitslücken mithilfe von Google Cloud Armor-WAF-Regeln minimieren können.
Aufgaben in diesem Lab
- Eine Instanzgruppe und einen globalen Load Balancer zur Unterstützung eines Dienstes einrichten
- Cloud Armor-Sicherheitsrichtlinien mit vorkonfigurierten WAF-Regeln konfigurieren, um sie vor lfi, rce, Scannern, Protokollangriffen und Sitzungskorrektur zu schützen
- Hier erfahren Sie, wie Sie prüfen, ob Cloud Armor einen Angriff durch Beobachtung von Logs abschwächen kann.
Voraussetzungen
- Grundkenntnisse der Google Compute Engine ( Codelab)
- Grundkenntnisse in den Bereichen Netzwerk und TCP/IP
- Grundkenntnisse zu Unix/Linux-Befehlszeilen
- Es ist hilfreich, eine Tour zum Thema Netzwerk in der GCP mit dem Kurs Networking in the Google Cloud zu absolvieren.
- (Optional) Absolvieren Sie das Lab Cloudnet20 Cloud Armor zum Schutz von Arbeitslasten mit SQL-Injection sowie IP- und geobasierten Regeln.
Codelab-Topologie und Anwendungsfall
Abbildung 1: Codelab-Topologie für Cloud Armor-WAF-Regeln
Die OWASP Juice Shop App ist nützlich für Sicherheitsschulungen und das Bewusstsein, da sie standardmäßig Instanzen jeder der OWASP Top-10-Sicherheitslücken enthält. Ein Angreifer kann sie zu Testzwecken ausnutzen. In diesem Codelab zeigen wir Ihnen einige Anwendungsangriffe, gefolgt vom Schutz der Anwendung mit Cloud Armor-WAF-Regeln. Vor der Anwendung steht ein Google Cloud-Load-Balancer, auf den die Cloud Armor-Sicherheitsrichtlinie und die Cloud Armor-Regeln angewendet werden. Sie wird über das öffentliche Internet bereitgestellt und ist somit von fast jedem Ort aus erreichbar. Außerdem wird sie durch Cloud Armor- und VPC-Firewallregeln geschützt.
2. Einrichtung und Anforderungen
Umgebung für das selbstbestimmte Lernen einrichten
- Melden Sie sich in der Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.
Notieren Sie sich die Projekt-ID, also den projektübergreifend nur einmal vorkommenden Namen eines Google Cloud-Projekts. Der oben angegebene Name ist bereits vergeben und kann leider nicht mehr verwendet werden. Sie wird in diesem Codelab später als PROJECT_ID
bezeichnet.
- Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Google Cloud-Ressourcen nutzen zu können.
Dieses Codelab sollte möglichst wenig kosten. Folgen Sie der Anleitung im Abschnitt „Bereinigen“, . Hier erfahren Sie, wie Sie Ressourcen herunterfahren, damit Ihnen über dieses Tutorial hinaus keine Kosten entstehen. Neue Google Cloud-Nutzer haben Anspruch auf eine kostenlose Testversion mit 300$Guthaben.
Cloud Shell starten
Sie können Google Cloud zwar von Ihrem Laptop aus der Ferne bedienen, in diesem Codelab verwenden Sie jedoch Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Klicken Sie in der GCP Console oben rechts in der Symbolleiste auf das Cloud Shell-Symbol:
Die Bereitstellung und Verbindung mit der Umgebung dauert nur einen Moment. Wenn er abgeschlossen ist, sollten Sie in etwa Folgendes sehen:
Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Es bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud, wodurch die Netzwerkleistung und Authentifizierung erheblich verbessert werden. Sie können alle Aufgaben in diesem Lab ganz einfach in einem Browser erledigen.
Hinweis
Prüfen Sie in Cloud Shell, ob Ihre Projekt-ID eingerichtet ist
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] PROJECT_ID=[YOUR-PROJECT-NAME] echo $PROJECT_ID
APIs aktivieren
Alle erforderlichen Dienste aktivieren
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com
3. VPC‑Netzwerk erstellen
VPC-Netzwerk erstellen
Von Cloud Shell
gcloud compute networks create ca-lab-vpc --subnet-mode custom
Ausgabe
Created NAME SUBNET_MODE BGP_ROUTING_MODE IPV4_RANGE GATEWAY_IPV4 ca-lab-vpc CUSTOM REGIONAL
Subnetz erstellen
Von Cloud Shell
gcloud compute networks subnets create ca-lab-subnet \ --network ca-lab-vpc --range 10.0.0.0/24 --region us-central1
Ausgabe
Created NAME REGION NETWORK RANGE ca-lab-subnet us-central1 ca-lab-vpc 10.0.0.0/24
VPC-Firewallregeln erstellen
Nachdem Sie die VPC und das Subnetz erstellt haben, können Sie einige Firewallregeln einrichten. Die erste Firewallregel wird verwendet, um allen IP-Adressen den Zugriff auf die externe IP-Adresse der Website der Testanwendung über Port 3000 zu ermöglichen. Die zweite Firewallregel wird verwendet, um Systemdiagnosen von den Quell-IP-Adressen der Load-Balancer zuzulassen.
Von Cloud Shell
gcloud compute firewall-rules create allow-js-site --allow tcp:3000 --network ca-lab-vpc
Ausgabe
Creating firewall...done. NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED allow-js-site ca-lab-vpc INGRESS 1000 tcp:3000 False
FW-Regeln erstellen, um Systemdiagnosen aus den Google-Systemdiagnosebereichen zuzulassen
Von Cloud Shell
gcloud compute firewall-rules create allow-health-check \ --network=ca-lab-vpc \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-healthcheck \ --rules=tcp
Ausgabe
Creating firewall...done. NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED allow-health-check ca-lab-vpc INGRESS 1000 tcp False
4. Testanwendung einrichten
Im nächsten Schritt erstellen Sie die Testanwendung, in diesem Fall den OWASP Juice Shop-Webserver.
Beim Erstellen der Compute-Instanz wird ein Container-Image verwendet, damit der Server über die entsprechenden Dienste verfügt. Dieser Server wird in us-central1-c bereitgestellt und hat ein Netzwerk-Tag, das Systemdiagnosen ermöglicht.
OWASP Juice Shop-Anwendung erstellen
Verwenden Sie die bekannte Open-Source-Anwendung OWASP Juice Shop, um als anfällige Anwendung zu fungieren. Sie können diese Anwendung auch verwenden, um OWASP-Sicherheitsherausforderungen über die Website durchzuführen.
Von Cloud Shell
gcloud compute instances create-with-container owasp-juice-shop-app --container-image bkimminich/juice-shop \ --network ca-lab-vpc \ --subnet ca-lab-subnet \ --private-network-ip=10.0.0.3 \ --machine-type n1-standard-2 \ --zone us-central1-c \ --tags allow-healthcheck
Ausgabe
NAME ZONE MACHINE_TYPE PREEMPTIBLE owasp-juice-shop-app us-central1-c n1-standard-2 INTERNAL_IP EXTERNAL_IP STATUS 10.0.0.3 <public IP> RUNNING
Cloud-Load-Balancer-Komponente einrichten: Instanzgruppe
Erstellen Sie die nicht verwaltete Instanzgruppe.
Von Cloud Shell
gcloud compute instance-groups unmanaged create juice-shop-group \ --zone=us-central1-c
Ausgabe
NAME LOCATION SCOPE NETWORK MANAGED INSTANCES juice-shop-group us-central1-c zone 0
Fügen Sie der nicht verwalteten Instanzgruppe die Juice Shop GCE-Instanz hinzu.
Von Cloud Shell
gcloud compute instance-groups unmanaged add-instances juice-shop-group \ --zone=us-central1-c \ --instances=owasp-juice-shop-app
Ausgabe
Updated [https://www.googleapis.com/compute/v1/projects/<project name>/zones/us-central1-c/instanceGroups/juice-shop-group].
Legen Sie den benannten Port auf den Port der Juice Shop-Anwendung fest.
Von Cloud Shell
gcloud compute instance-groups unmanaged set-named-ports \ juice-shop-group \ --named-ports=http:3000 \ --zone=us-central1-c
Ausgabe
Updated [https://www.googleapis.com/compute/v1/projects/<project name>/zones/us-central1-c/instanceGroups/juice-shop-group].
Nachdem Sie die nicht verwaltete Instanzgruppe erstellt haben, erstellen Sie im nächsten Schritt eine Systemdiagnose, einen Back-End-Dienst, eine URL-Zuordnung, einen Zielproxy und eine Weiterleitungsregel.
Cloud-Load-Balancer-Komponente einrichten: Systemdiagnose
Erstellen Sie die Systemdiagnose für den Dienstport von Juice Shop.
Von Cloud Shell
gcloud compute health-checks create tcp tcp-port-3000 \ --port 3000
Ausgabe
Created NAME PROTOCOL tcp-port-3000 TCP
Cloud-Load-Balancer-Komponente einrichten: Back-End-Dienst
Erstellen Sie die Parameter für den Back-End-Dienst.
Von Cloud Shell
gcloud compute backend-services create juice-shop-backend \ --protocol HTTP \ --port-name http \ --health-checks tcp-port-3000 \ --enable-logging \ --global
Ausgabe
NAME BACKENDS PROTOCOL juice-shop-backend HTTP
Fügen Sie dem Back-End-Dienst die Juice Shop-Instanzgruppe hinzu.
Von Cloud Shell
gcloud compute backend-services add-backend juice-shop-backend \ --instance-group=juice-shop-group \ --instance-group-zone=us-central1-c \ --global
Ausgabe
Updated [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/backendServices/juice-shop-backend].
Richten Sie die Cloud-Load-Balancer-Komponente: URL-Zuordnung ein.
Erstellen Sie die URL-Zuordnung, die an das Back-End gesendet werden soll.
Von Cloud Shell
gcloud compute url-maps create juice-shop-loadbalancer \ --default-service juice-shop-backend
Ausgabe
NAME DEFAULT_SERVICE juice-shop-loadbalancer backendServices/juice-shop-backend
Richten Sie die Cloud-Load-Balancer-Komponente: Zielproxy ein.
Erstellen Sie den Zielproxy für die URL-Zuordnung.
Von Cloud Shell
gcloud compute target-http-proxies create juice-shop-proxy \ --url-map juice-shop-loadbalancer
Ausgabe
NAME URL_MAP juice-shop-proxy juice-shop-loadbalancer
Cloud-Load-Balancer-Komponente einrichten: Weiterleitungsregel
Erstellen Sie die Weiterleitungsregel für den Load-Balancer.
Von Cloud Shell
gcloud compute forwarding-rules create juice-shop-rule \ --global \ --target-http-proxy=juice-shop-proxy \ --ports=80
Ausgabe
Created [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/forwardingRules/juice-shop-rule].
Prüfen, ob der Juice Shop-Dienst online ist
Von Cloud Shell
PUBLIC_SVC_IP="$(gcloud compute forwarding-rules describe juice-shop-rule --global --format="value(IPAddress)")"
Von Cloud Shell
echo $PUBLIC_SVC_IP
Ausgabe
<public VIP of service>
Warten Sie einige Minuten, bevor Sie fortfahren. Andernfalls erhalten Sie möglicherweise die Antwort „HTTP/1.1 404 Not Found“.
Von Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP
Ausgabe
HTTP/1.1 200 OK <...>
Du kannst auch den Browser öffnen, um den Saft-Shop aufzurufen!
Wir sind jetzt bereit, die Sicherheitslücken von Juice Shop zu untersuchen und zu erfahren, wie Sie sich mit Cloud Armor-WAF-Regelsätzen davor schützen können.
5. Bekannte Sicherheitslücken aufzeigen
Um Zeit zu sparen, werden wir die Status vor und nach der Übertragung der Cloud Armor-WAF-Regeln in zusammengefassten Schritten darstellen.
LFI-Sicherheitslücken beobachten: Path Traversal
Die lokale Dateiaufnahme ist der Prozess der Beobachtung von Dateien, die auf dem Server vorhanden sind, indem die fehlende Eingabevalidierung in der Anfrage ausgenutzt wird, um potenziell sensible Daten preiszugeben. Im Folgenden wird einfach gezeigt, wie ein Pfaddurchlauf möglich ist. Beobachten Sie im Browser oder mit curl einen vorhandenen Pfad, der von der Anwendung bereitgestellt wird.
Von Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp
Ausgabe
HTTP/1.1 200 OK <...>
Beachten Sie auch, dass der Pfaddurchlauf ebenfalls funktioniert:
Von Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp/../
Ausgabe
HTTP/1.1 200 OK <...>
RCE-Sicherheitslücken beobachten
Die Remote-Codeausführung umfasst verschiedene Szenarien für das Einschleusen von UNIX- und Windows-Befehlen, mit denen Angreifer Betriebssystembefehle ausführen können, die normalerweise privilegierten Benutzern vorbehalten sind. Im Folgenden sehen Sie eine einfache Ausführung des Befehls „ls“, die übergeben wurde.
Von Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
Ausgabe
HTTP/1.1 200 OK <...>
Sie können die curl-Flags entfernen, um die vollständige Ausgabe zu beobachten.
Zugriff eines bekannten Scanners beobachten
Sowohl kommerzielle als auch Open-Source-Scananwendungen für verschiedene Zwecke, einschließlich zum Scannen auf Sicherheitslücken. Diese Tools verwenden bekannte User-Agent-Header und andere Header. Sehen Sie sich an, wie curl mit einem bekannten User-Agent-Header funktioniert:
Von Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"
Ausgabe
HTTP/1.1 200 OK <...>
Protokollangriff beobachten: HTTP-Splitting
Einige Webanwendungen verwenden Eingaben des Nutzers, um die Header in den Antworten zu generieren. Wenn die Anwendung die Eingabe nicht ordnungsgemäß filtert, kann ein Angreifer den Eingabeparameter möglicherweise mit der Sequenz %0d%0a (der CRLF-Sequenz, die zum Trennen verschiedener Zeilen verwendet wird) manipulieren. Die Antwort könnte dann von einem beliebigen Parsing-Vorgang als zwei Antworten interpretiert werden, z. B. durch einen zwischengeschalteten Proxyserver, der bei nachfolgenden Anfragen möglicherweise falsche Inhalte liefert. Fügen Sie die Sequenz %0d%0a in den Eingabeparameter ein, was dazu führen kann, dass eine irreführende Seite angezeigt wird.
Von Cloud Shell
curl -Ii "http://$PUBLIC_SVC_IP/index.html?foo=advanced%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2035%0d%0a%0d%0a<html>Sorry,%20System%20Down</html>"
Ausgabe
HTTP/1.1 200 OK <...>
Sitzungskorrektur beobachten
Von Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP -H session_id=X
Ausgabe
HTTP/1.1 200 OK <...>
6. Cloud Armor-WAF-Regeln definieren
Listen Sie die vorkonfigurierten WAF-Regeln auf:
Von Cloud Shell
gcloud compute security-policies list-preconfigured-expression-sets
Ausgabe
EXPRESSION_SET Sqli-canary RULE_ID owasp-crs-v030001-id942110-sqli owasp-crs-v030001-id942120-sqli <...>
Cloud Armor-Sicherheitsrichtlinie erstellen
In Cloud Shell:
gcloud compute security-policies create block-with-modsec-crs \ --description "Block with OWASP ModSecurity CRS"
Standardregel für Sicherheitsrichtlinien aktualisieren
Beachten Sie, dass die Priorität der Standardregel den numerischen Wert 2147483647 hat.
In Cloud Shell:
gcloud compute security-policies rules update 2147483647 \ --security-policy block-with-modsec-crs \ --action "deny-403"
Da die Standardregel mit „Aktion ablehnen“ konfiguriert ist, müssen wir den Zugriff über Ihre IP-Adresse zulassen. Ermitteln Sie Ihre öffentliche IP-Adresse (curl, ipmonkey, whatismyip usw.).
In Cloud Shell:
MY_IP=$(curl ifconfig.me)
Fügen Sie die erste Regel hinzu, um den Zugriff über Ihre IP-Adresse zuzulassen (IHRE IP-Adresse UNTEN EINFÜGEN)
In Cloud Shell:
gcloud compute security-policies rules create 10000 \ --security-policy block-with-modsec-crs \ --description "allow traffic from my IP" \ --src-ip-ranges "$MY_IP/32" \ --action "allow"
Sicherheitsrichtlinie aktualisieren, um LFI-Angriffe zu blockieren
Wenden Sie den OWASP ModSecurity Core Rule Set an, das einen Pfaddurchlauf für lokale Dateieinschlüsse verhindert.
In Cloud Shell:
gcloud compute security-policies rules create 9000 \ --security-policy block-with-modsec-crs \ --description "block local file inclusion" \ --expression "evaluatePreconfiguredExpr('lfi-stable')" \ --action deny-403
Sicherheitsrichtlinie aktualisieren, um Remote Code Execution (rce) zu blockieren
Wenden Sie gemäß dem OWASP ModSecurity Core Rule Set Regeln an, die nach rce suchen, einschließlich Command Injection. Typische Betriebssystembefehle werden erkannt und blockiert.
In Cloud Shell:
gcloud compute security-policies rules create 9001 \ --security-policy block-with-modsec-crs \ --description "block rce attacks" \ --expression "evaluatePreconfiguredExpr('rce-stable')" \ --action deny-403
Sicherheitsrichtlinie aktualisieren, um Sicherheitsscanner zu blockieren
Wenden Sie das OWASP ModSecurity Core Rule Set an, um bekannte Sicherheitsscanner, Skripting-HTTP-Clients und Web-Crawler zu blockieren.
In Cloud Shell:
gcloud compute security-policies rules create 9002 \ --security-policy block-with-modsec-crs \ --description "block scanners" \ --expression "evaluatePreconfiguredExpr('scannerdetection-stable')" \ --action deny-403
Sicherheitsrichtlinie aktualisieren, um Protokollangriffe zu blockieren
Wenden Sie gemäß dem OWASP ModSecurity Core Rule Set Regeln an, die nach den Zeichen Wagenrücklauf (CR) %0d und Linefeed (LF) %0a und anderen Arten von Protokollangriffen wie HTTP Request Smuggling suchen.
In Cloud Shell:
gcloud compute security-policies rules create 9003 \ --security-policy block-with-modsec-crs \ --description "block protocol attacks" \ --expression "evaluatePreconfiguredExpr('protocolattack-stable')" \ --action deny-403
Sicherheitsrichtlinie aktualisieren, um die Sitzungskorrektur zu blockieren
Wenden Sie gemäß dem OWASP ModSecurity Core Rule Set Regeln an, die...
In Cloud Shell:
gcloud compute security-policies rules create 9004 \ --security-policy block-with-modsec-crs \ --description "block session fixation attacks" \ --expression "evaluatePreconfiguredExpr('sessionfixation-stable')" \ --action deny-403
Sicherheitsrichtlinie an den Back-End-Dienst anhängen
In Cloud Shell:
gcloud compute backend-services update juice-shop-backend \ --security-policy block-with-modsec-crs \ --global
Es kann einige Zeit dauern, bis Regeln wirksam werden (aber nicht länger als 10 Minuten). Wenn ausreichend Zeit verstrichen ist, testen Sie die zuvor nachgewiesenen Sicherheitslücken, um die Erzwingung der Cloud Armor-WAF-Regel im nächsten Schritt zu bestätigen.
7. Cloud Armor-Schutz mit OWASP ModSecurity Core Rule Set beobachten
Prüfen, ob die LFI-Sicherheitslücke abgeschwächt ist
Von Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/?a=../
Ausgabe
HTTP/1.1 403 Forbidden <...>
Prüfen, ob der RCE-Angriff abgemildert wird
Von Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
Ausgabe
HTTP/1.1 403 Forbidden <..>
Erkennung von bekannten Scannern bestätigen
Von Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"
Ausgabe
HTTP/1.1 403 Forbidden <..>
Prüfen, ob ein Protokollangriff abgemildert wird
Gemäß dem OWASP ModSecurity Core Rule Set Version 3.0.2 wird der Protokollangriff durch
Von Cloud Shell
curl -Ii "http://$PUBLIC_SVC_IP/index.html?foo=advanced%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2035%0d%0a%0d%0a<html>Sorry,%20System%20Down</html>"
Ausgabe
HTTP/1.1 403 Forbidden <..>
Prüfen, ob Versuche zur Sitzungskorrektur blockiert werden
Von Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/?session_id=a
Ausgabe
HTTP/1.1 403 Forbidden <..>
8. Cloud Armor-Sicherheitsregeln überprüfen
Nachdem Sie die Sicherheitsrichtlinie erstellt haben, sehen wir uns nun an, welche Regeln konfiguriert wurden.
Regeln werden nach Priorität ausgewertet: Niedrigere Zahlen werden zuerst ausgewertet. Nach dem Auslösen wird die Verarbeitung für Regeln mit höheren Prioritätswerten nicht fortgesetzt.
- Priorität 9000 – LFI blockieren (Aufnahme lokaler Dateien)
- Priorität 9001 – RCE blockieren (Remote-Codeausführung/Befehlseinschleusung)
- Priorität 9002 – Blockscanner erkannt
- Priorität 9003 – Blockprotokollangriffe wie HTTP-Splitting und HTTP-Smuggling
- Priorität 9004 – Angriffe auf Sitzungsprobleme blockieren
- Priorität 10000 – Ihrer IP-Adresse den Zugriff auf die Website erlauben
- Standardeinstellung für Priorität – Ablehnen.
*Beachten Sie, dass die Meldung "Ihre IP-Adresse zulassen" ist mit der höchsten Priorität konfiguriert, um den Zugriff auf die Website zu ermöglichen, blockiert jedoch Angriffe.
9. Logs der Cloud Armor-Sicherheitsrichtlinie beobachten
Auf der Seite der Cloud Armor Console können Sie Details zur Sicherheitsrichtlinie ansehen. Klicken Sie auf den Tab Logs
und dann auf den Link View policy logs
, um zur Cloud Logging-Seite zu gelangen. Die automatische Filterung erfolgt auf der Grundlage der gewünschten Sicherheitsrichtlinie, z.B. resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(block-with-modsec-crs)
Sehen Sie sich die 403-Fehlerantwortcodes an und maximieren Sie die Protokolldetails, um den Namen der erzwungenen Sicherheitsrichtlinie, den übereinstimmenden Feldwert und weiter unten die vorkonfigurierten Ausdruck-IDs (oder die Signatur-ID) zu sehen. Die folgenden Screenshots zeigen Beispiele für die Logs für die erzwungenen Sicherheitsrichtlinien, die in diesem Codelab konfiguriert wurden.
LFI-Protokoll
RCE-Log
Scanner-Erkennungsprotokoll
Protokollangriffslog
Protokoll zur Sitzungsfixierung
10. Lab-Bereinigung
Nachdem Sie das Lab abgeschlossen haben, bereinigen Sie die Ressourcen.
Führen Sie die folgenden Befehle aus, um die Cloud Armor-Sicherheitsrichtlinie, den Load-Balancer, die Instanzen, die Firewallregeln und das VPC-Netzwerk zu löschen.
Entfernen Sie die Cloud Armor-Sicherheitsrichtlinie aus dem Back-End-Dienst
gcloud -q compute backend-services update juice-shop-backend --security-policy "" --global
Cloud Armor-Sicherheitsrichtlinie löschen
Durch das Löschen der Sicherheitsrichtlinie werden die zugehörigen Regeln automatisch gelöscht.
gcloud -q compute security-policies delete block-with-modsec-crs
Load-Balancer-Ressourcen löschen
Zu diesen Load-Balancer-Ressourcen gehören die Weiterleitungsregel, HTTP-Zielproxys, URL-Zuordnungen, das Backend, die Systemdiagnosen und die Instanzgruppe.
gcloud -q compute forwarding-rules delete juice-shop-rule --global gcloud -q compute target-http-proxies delete juice-shop-proxy gcloud -q compute url-maps delete juice-shop-loadbalancer gcloud -q compute backend-services delete juice-shop-backend \ --global gcloud -q compute health-checks delete tcp-port-3000 gcloud -q compute instance-groups unmanaged delete juice-shop-group --zone=us-central1-c
Instanz löschen
gcloud -q compute instances delete owasp-juice-shop-app --zone us-central1-c
Firewallregeln, Subnetz und VPC löschen
gcloud -q compute firewall-rules delete allow-health-check gcloud -q compute firewall-rules delete allow-js-site gcloud -q compute networks subnets delete ca-lab-subnet --region us-central1 gcloud -q compute networks delete ca-lab-vpc
11. Glückwunsch!
Sie haben das Codelab zu vorkonfigurierten WAF-Regeln in Cloud Armor abgeschlossen.
Behandelte Themen
- Instanzgruppe und globalen Cloud-Load-Balancer einrichten
- Cloud Armor-Sicherheitsrichtlinien mit vorkonfigurierten WAF-Regeln konfigurieren, um sie vor lfi, rce, Scannern, Protokollangriffen und Sitzungskorrektur zu schützen
- So validieren Sie, ob Cloud Armor einige der OWASP-Top-10-Angriffe über Logs abgewehrt hat
Weiteres Vorgehen
- Anwendung mit vorkonfigurierten Cloud Armor-WAF-Regeln vor den OWASP-Top-10-Sicherheitslücken schützen
- Regeln anhand von Empfindlichkeitsstufen optimieren
- In der Referenz zur Sprache für benutzerdefinierte Regeln finden Sie Informationen zur genaueren Sicherheitsdurchsetzung.