1. Wprowadzenie
Cześć! Witamy w ćwiczeniu dotyczącym wstępnie skonfigurowanych reguł WAF Cloud Armor.
Google Cloud Armor to rozwiązanie Google do zabezpieczania sieci brzegowej klasy korporacyjnej, które zapewnia ochronę przed atakami typu DDoS, egzekwowanie reguł WAF i adaptacyjne zarządzanie na dużą skalę.
Usługa Cloud Armor rozszerzyła wstępnie skonfigurowane zbiory reguł WAF, aby ograniczać zagrożenia związane z lukami w zabezpieczeniach aplikacji internetowych wymienionymi na liście OWASP Top 10. Zestawy reguł są oparte na podstawowym zestawie reguł OWASP Modsecurity w wersji 3.0.2, aby chronić przed najczęstszymi zagrożeniami dla bezpieczeństwa aplikacji internetowych, takimi jak lokalne włączenie pliku (lfi), zdalne włączenie pliku (rfi), zdalne wykonanie kodu (rce) i wiele innych.
Z tego ćwiczenia dowiesz się, jak ograniczyć niektóre z najczęstszych luk w zabezpieczeniach za pomocą reguł zapory aplikacji internetowych Google Cloud Armor.
Czego się nauczysz
- Konfigurowanie grupy instancji i globalnego systemu równoważenia obciążenia na potrzeby usługi
- Jak skonfigurować zasady zabezpieczeń Cloud Armor ze wstępnie skonfigurowanymi regułami WAF, aby chronić przed atakami LFI, RCE, skanerami, atakami na protokoły i utrwalaniem sesji
- Jak sprawdzić, czy Cloud Armor złagodził atak, obserwując dzienniki.
Czego potrzebujesz
- Podstawowa wiedza o Google Compute Engine ( codelab)
- Podstawowa wiedza o sieciach i protokole TCP/IP
- Podstawowa znajomość wiersza poleceń w systemach Unix i Linux
- Warto wcześniej zapoznać się z sieciami w GCP, korzystając z przewodnika Networking in the Google Cloud.
- (Opcjonalnie) Wykonaj ćwiczenie Cloudnet20 Cloud Armor, aby dowiedzieć się, jak chronić zbiory zadań za pomocą reguł opartych na wstrzyknięciu kodu SQL, adresach IP i lokalizacji geograficznej.
Topologia i przypadek użycia ćwiczeń w Codelabs

Rysunek 1. Topologia ćwiczenia dotyczącego reguł WAF Cloud Armor
Aplikacja OWASP Juice Shop jest przydatna do szkolenia w zakresie bezpieczeństwa i podnoszenia świadomości, ponieważ zawiera przykłady wszystkich 10 luk w zabezpieczeniach wymienionych w publikacji OWASP Top 10. Osoba atakująca może wykorzystać tę funkcję do testowania. W tym ćwiczeniu użyjemy go do zademonstrowania niektórych ataków na aplikacje, a następnie zabezpieczymy aplikację za pomocą reguł WAF Cloud Armor. Aplikacja będzie obsługiwana przez usługę równoważenia obciążenia Google Cloud, do której zostaną zastosowane zasady zabezpieczeń i reguły Cloud Armor. Będzie ona udostępniana w internecie publicznym, a więc dostępna niemal z każdego miejsca i chroniona za pomocą Cloud Armor i reguł zapory sieciowej VPC.
2. Konfiguracja i wymagania
Samodzielne konfigurowanie środowiska
- Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail lub Google Workspace, musisz je utworzyć.



Zapamiętaj identyfikator projektu, czyli unikalną nazwę we wszystkich projektach Google Cloud (podana powyżej nazwa jest już zajęta i nie będzie działać w Twoim przypadku). W dalszej części tego laboratorium będzie on nazywany PROJECT_ID.
- Następnie musisz włączyć rozliczenia w Cloud Console, aby korzystać z zasobów Google Cloud.
Ukończenie tego laboratorium nie powinno wiązać się z dużymi kosztami, a nawet z żadnymi. Wykonaj instrukcje z sekcji „Czyszczenie”, w której znajdziesz informacje o tym, jak wyłączyć zasoby, aby uniknąć naliczenia opłat po zakończeniu tego samouczka. Nowi użytkownicy Google Cloud mogą skorzystać z programu bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
Uruchom Cloud Shell
Z Google Cloud można korzystać zdalnie na laptopie, ale w tym ćwiczeniu użyjesz Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.
W konsoli GCP kliknij ikonę Cloud Shell na pasku narzędzi w prawym górnym rogu:

Uzyskanie dostępu do środowiska i połączenie się z nim powinno zająć tylko kilka chwil. Po zakończeniu powinno wyświetlić się coś takiego:

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera również stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i usprawnia proces uwierzytelniania. Wszystkie zadania w tym laboratorium możesz wykonać w przeglądarce.
Zanim zaczniesz
W Cloud Shell sprawdź, czy identyfikator projektu jest skonfigurowany.
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] PROJECT_ID=[YOUR-PROJECT-NAME] echo $PROJECT_ID
włączyć interfejsy API,
Włącz wszystkie niezbędne usługi
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com
3. Tworzenie sieci VPC
Utwórz sieć VPC
W Cloud Shell
gcloud compute networks create ca-lab-vpc --subnet-mode custom
Wyniki
Created NAME SUBNET_MODE BGP_ROUTING_MODE IPV4_RANGE GATEWAY_IPV4 ca-lab-vpc CUSTOM REGIONAL
Tworzenie podsieci
W Cloud Shell
gcloud compute networks subnets create ca-lab-subnet \
--network ca-lab-vpc --range 10.0.0.0/24 --region us-central1
Wyniki
Created NAME REGION NETWORK RANGE ca-lab-subnet us-central1 ca-lab-vpc 10.0.0.0/24
Tworzenie reguł zapory sieciowej VPC
Po utworzeniu sieci VPC i podsieci skonfiguruj kilka reguł zapory sieciowej. Pierwsza reguła zapory sieciowej będzie używana do zezwalania wszystkim adresom IP na dostęp do zewnętrznego adresu IP witryny aplikacji testowej na porcie 3000. Druga reguła zapory sieciowej będzie używana do zezwalania na kontrolę stanu z adresu IP źródła systemów równoważenia obciążenia.
W Cloud Shell
gcloud compute firewall-rules create allow-js-site --allow tcp:3000 --network ca-lab-vpc
Wyniki
Creating firewall...done. NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED allow-js-site ca-lab-vpc INGRESS 1000 tcp:3000 False
Utwórz reguły zapory sieciowej, które zezwalają na kontrolę stanu z zakresów kontroli stanu Google.
W 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
Wyniki
Creating firewall...done. NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED allow-health-check ca-lab-vpc INGRESS 1000 tcp False
4. Konfigurowanie aplikacji testowej
Kolejnym krokiem jest utworzenie aplikacji testowej, w tym przypadku serwera WWW OWASP Juice Shop.
Podczas tworzenia instancji obliczeniowej używamy obrazu kontenera, aby mieć pewność, że serwer ma odpowiednie usługi. Ten serwer zostanie wdrożony w strefie us-central1-c i będzie miał tag sieciowy, który umożliwi przeprowadzanie kontroli stanu.
Tworzenie aplikacji OWASP Juice Shop
Użyj aplikacji OWASP Juice Shop o otwartym kodzie źródłowym jako aplikacji podatnej na ataki. Za pomocą tej aplikacji możesz też rozwiązywać wyzwania związane z bezpieczeństwem OWASP na ich stronie internetowej.
W 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
Wyniki
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
Konfigurowanie komponentu systemu równoważenia obciążenia w Cloud: grupa instancji
Utwórz niezarządzaną grupę instancji.
W Cloud Shell
gcloud compute instance-groups unmanaged create juice-shop-group \
--zone=us-central1-c
Wyniki
NAME LOCATION SCOPE NETWORK MANAGED INSTANCES juice-shop-group us-central1-c zone 0
Dodaj instancję GCE sklepu Juice Shop do niezarządzanej grupy instancji.
W Cloud Shell
gcloud compute instance-groups unmanaged add-instances juice-shop-group \
--zone=us-central1-c \
--instances=owasp-juice-shop-app
Wyniki
Updated [https://www.googleapis.com/compute/v1/projects/<project name>/zones/us-central1-c/instanceGroups/juice-shop-group].
Ustaw nazwany port na port aplikacji Juice Shop.
W Cloud Shell
gcloud compute instance-groups unmanaged set-named-ports \ juice-shop-group \ --named-ports=http:3000 \ --zone=us-central1-c
Wyniki
Updated [https://www.googleapis.com/compute/v1/projects/<project name>/zones/us-central1-c/instanceGroups/juice-shop-group].
Po utworzeniu niezarządzanej grupy instancji następnym krokiem jest utworzenie kontroli stanu, usługi backendu, mapy URL, docelowego serwera proxy i reguły przekierowania.
Skonfiguruj komponent Cloud Load Balancer: kontrola stanu
Utwórz kontrolę stanu dla portu usługi Juice Shop.
W Cloud Shell
gcloud compute health-checks create tcp tcp-port-3000 \
--port 3000
Wyniki
Created NAME PROTOCOL tcp-port-3000 TCP
Konfigurowanie komponentu systemu równoważenia obciążenia w chmurze: usługa backendu
Utwórz parametry usługi backendu.
W Cloud Shell
gcloud compute backend-services create juice-shop-backend \
--protocol HTTP \
--port-name http \
--health-checks tcp-port-3000 \
--enable-logging \
--global
Wyniki
NAME BACKENDS PROTOCOL juice-shop-backend HTTP
Dodaj grupę instancji Juice Shop do usługi backendu.
W Cloud Shell
gcloud compute backend-services add-backend juice-shop-backend \
--instance-group=juice-shop-group \
--instance-group-zone=us-central1-c \
--global
Wyniki
Updated [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/backendServices/juice-shop-backend].
Skonfiguruj komponent systemu równoważenia obciążenia Cloud: mapę URL
Utwórz mapę URL, która zostanie wysłana do backendu.
W Cloud Shell
gcloud compute url-maps create juice-shop-loadbalancer \
--default-service juice-shop-backend
Wyniki
NAME DEFAULT_SERVICE juice-shop-loadbalancer backendServices/juice-shop-backend
Skonfiguruj komponent systemu równoważenia obciążenia w Cloud: docelowy serwer proxy
Utwórz docelowy serwer proxy przed mapą URL.
W Cloud Shell
gcloud compute target-http-proxies create juice-shop-proxy \
--url-map juice-shop-loadbalancer
Wyniki
NAME URL_MAP juice-shop-proxy juice-shop-loadbalancer
Skonfiguruj komponent Cloud Load Balancer: reguła przekierowania
Utwórz regułę przekierowania dla systemu równoważenia obciążenia.
W Cloud Shell
gcloud compute forwarding-rules create juice-shop-rule \
--global \
--target-http-proxy=juice-shop-proxy \
--ports=80
Wyniki
Created [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/forwardingRules/juice-shop-rule].
Sprawdź, czy usługa Juice Shop jest dostępna online
W Cloud Shell
PUBLIC_SVC_IP="$(gcloud compute forwarding-rules describe juice-shop-rule --global --format="value(IPAddress)")"
W Cloud Shell
echo $PUBLIC_SVC_IP
Wyniki
<public VIP of service>
Zanim przejdziesz dalej, odczekaj kilka minut, w przeciwnym razie możesz otrzymać odpowiedź HTTP/1.1 404 Not Found.
W Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP
Wyniki
HTTP/1.1 200 OK <...>
Możesz też otworzyć przeglądarkę, aby wyświetlić Juice Shop.

Możemy teraz przyjrzeć się lukom w zabezpieczeniach sklepu Juice Shop i sposobom ochrony przed nimi za pomocą zestawów reguł WAF Cloud Armor.
5. wykazywać znane luki w zabezpieczeniach,
Aby zaoszczędzić czas, w skróconych krokach pokażemy stany przed i po rozpowszechnieniu reguł WAF Cloud Armor.
Obserwowanie luki w zabezpieczeniach LFI: [atak typu] path traversal
Local File Inclusion to proces obserwowania plików znajdujących się na serwerze poprzez wykorzystanie braku weryfikacji danych wejściowych w żądaniu, co może prowadzić do ujawnienia danych wrażliwych. Poniższy przykład pokazuje, że możliwy jest atak typu path traversal. W przeglądarce lub za pomocą polecenia curl sprawdź istniejącą ścieżkę obsługiwaną przez aplikację.
W Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp
Wyniki
HTTP/1.1 200 OK <...>
Zauważ też, że działa również [atak typu] path traversal:
W Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp/../
Wyniki
HTTP/1.1 200 OK <...>
Obserwowanie luki w zabezpieczeniach RCE
Zdalne wykonywanie kodu obejmuje różne scenariusze wstrzykiwania poleceń w systemach UNIX i Windows, które umożliwiają atakującym wykonywanie poleceń systemu operacyjnego zwykle ograniczonych do użytkowników z uprawnieniami. Poniżej przedstawiono prosty przykład wykonania polecenia ls.
W Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
Wyniki
HTTP/1.1 200 OK <...>
Możesz usunąć flagi curl, aby zobaczyć pełne dane wyjściowe.
Obserwowanie dostępu znanego skanera
Zarówno komercyjne, jak i open source, do różnych celów, w tym do skanowania w poszukiwaniu luk w zabezpieczeniach. Te narzędzia używają dobrze znanych ciągów User-Agent i innych nagłówków. Sprawdź, czy polecenie curl działa ze znanym nagłówkiem klienta użytkownika:
W Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"
Wyniki
HTTP/1.1 200 OK <...>
Obserwowanie ataku na protokół: rozdzielanie HTTP
Niektóre aplikacje internetowe używają danych wejściowych od użytkownika do generowania nagłówków w odpowiedziach. Jeśli aplikacja nie filtruje danych wejściowych prawidłowo, atakujący może potencjalnie zatruć parametr wejściowy sekwencją %0d%0a (sekwencja CRLF używana do oddzielania różnych wierszy). Odpowiedź może być następnie interpretowana jako 2 odpowiedzi przez dowolny element, który ją analizuje, np. pośredni serwer proxy, co może prowadzić do wyświetlania fałszywych treści w kolejnych żądaniach. Wstaw sekwencję %0d%0a do parametru wejściowego, co może spowodować wyświetlenie wprowadzającej w błąd strony.
W 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>"
Wyniki
HTTP/1.1 200 OK <...>
Obserwowanie utrwalania sesji
W Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP -H session_id=X
Wyniki
HTTP/1.1 200 OK <...>
6. Definiowanie reguł WAF Cloud Armor
Wyświetl listę wstępnie skonfigurowanych reguł WAF:
W Cloud Shell
gcloud compute security-policies list-preconfigured-expression-sets
Wyniki
EXPRESSION_SET
Sqli-canary
RULE_ID
owasp-crs-v030001-id942110-sqli
owasp-crs-v030001-id942120-sqli
<...>
Tworzenie zasady zabezpieczeń Cloud Armor
W Cloud Shell:
gcloud compute security-policies create block-with-modsec-crs \
--description "Block with OWASP ModSecurity CRS"
Aktualizowanie domyślnej reguły zasady zabezpieczeń
Pamiętaj, że domyślny priorytet reguły ma wartość liczbową 2147483647.
W Cloud Shell:
gcloud compute security-policies rules update 2147483647 \
--security-policy block-with-modsec-crs \
--action "deny-403"
Ponieważ reguła domyślna jest skonfigurowana z działaniem odrzucającym, musimy zezwolić na dostęp z Twojego adresu IP. Znajdź swój publiczny adres IP (curl, ipmonkey, whatismyip itp.).
W Cloud Shell:
MY_IP=$(curl ifconfig.me)
Dodaj pierwszą regułę, aby zezwolić na dostęp z Twojego adresu IP (WPISZ SWÓJ ADRES IP PONIŻEJ)
W 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"
Zaktualizuj zasadę zabezpieczeń, aby blokować ataki LFI
Zastosuj zestaw reguł podstawowych OWASP ModSecurity, który zapobiega [atakom typu] path traversal w przypadku dołączania plików lokalnych.
W 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
Zaktualizuj zasady bezpieczeństwa, aby zablokować zdalne wykonywanie kodu (rce)
Zgodnie z zestawem reguł podstawowych OWASP ModSecurity zastosuj reguły, które wyszukują zdalne wykonanie kodu, w tym wstrzykiwanie poleceń. Typowe polecenia systemu operacyjnego są wykrywane i blokowane.
W 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
Aktualizowanie zasady zabezpieczeń w celu blokowania skanerów zabezpieczeń
Zastosuj zestaw reguł podstawowych OWASP ModSecurity, aby blokować znane skanery zabezpieczeń, skryptowe klienty HTTP i roboty indeksujące.
W 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
Aktualizowanie zasady zabezpieczeń w celu blokowania ataków na protokoły
Zgodnie z zestawem reguł podstawowych OWASP ModSecurity stosuj reguły, które wyszukują znaki powrotu karetki (CR) %0d i znaki nowego wiersza (LF) %0a oraz inne typy ataków na protokoły, takie jak przemycanie żądań HTTP.
W 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
Aktualizowanie zasady zabezpieczeń w celu blokowania utrwalania sesji
Zgodnie z zestawem reguł podstawowych OWASP ModSecurity zastosuj reguły, które…
W 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
Dołączanie zasady zabezpieczeń do usługi backendu
W Cloud Shell:
gcloud compute backend-services update juice-shop-backend \
--security-policy block-with-modsec-crs \
--global
Rozpowszechnienie reguł może zająć trochę czasu (ale nie więcej niż 10 minut). Gdy będziesz mieć pewność, że upłynęło wystarczająco dużo czasu, przetestuj wcześniej wykryte luki w zabezpieczeniach, aby w następnym kroku potwierdzić egzekwowanie reguł WAF Cloud Armor.
7. Obserwowanie ochrony Cloud Armor za pomocą zestawu reguł podstawowych OWASP ModSecurity
Potwierdź, że luka w zabezpieczeniach LFI została usunięta
W Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/?a=../
Wyniki
HTTP/1.1 403 Forbidden <...>
Potwierdź, że atak RCE został zneutralizowany
W Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
Wyniki
HTTP/1.1 403 Forbidden <..>
Potwierdź wykrycie znanego skanera
W Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"
Wyniki
HTTP/1.1 403 Forbidden <..>
Potwierdzanie, że atak na protokół został zneutralizowany
Zgodnie z zestawem reguł podstawowych OWASP ModSecurity w wersji 3.0.2 atak protokołu jest ograniczany przez
W 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>"
Wyniki
HTTP/1.1 403 Forbidden <..>
Sprawdzanie, czy próby utrwalenia sesji są blokowane
W Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/?session_id=a
Wyniki
HTTP/1.1 403 Forbidden <..>
8. Sprawdzanie reguł zabezpieczeń Cloud Armor
Po utworzeniu zasady zabezpieczeń sprawdźmy, jakie reguły zostały skonfigurowane.

Reguły są sprawdzane według priorytetu. Najpierw sprawdzane są reguły o niższych numerach, a gdy reguła zostanie aktywowana, przetwarzanie nie jest kontynuowane w przypadku reguł o wyższych wartościach priorytetu.
- Priorytet 9000 – blokowanie LFI (dołączanie plików lokalnych)
- Priorytet 9001 – blokowanie RCE (zdalnego wykonywania kodu lub wstrzykiwania poleceń)
- Priorytet 9002 – wykryto skanery bloków
- Priorytet 9003 – blokowanie ataków na protokoły, takich jak dzielenie HTTP i przemycanie HTTP
- Priorytet 9004 – blokowanie ataków typu Session Fixation
- Priorytet 10000 – zezwól adresowi IP na dostęp do witryny
- Priorytet domyślny – odmowa.
*Zwróć uwagę, że reguła „zezwalaj na Twój adres IP” ma najwyższy priorytet, aby umożliwić dostęp do witryny, ale blokuje wszelkie ataki.
9. Obserwowanie logów zasad zabezpieczeń Cloud Armor
Na stronie konsoli Cloud Armor możesz wyświetlić szczegóły zasad zabezpieczeń. Aby przejść do strony Cloud Logging, kliknij kolejno kartę Logs i link View policy logs. Będzie on automatycznie filtrować dane na podstawie interesującej Cię zasady zabezpieczeń, np. resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(block-with-modsec-crs). Obserwuj kody odpowiedzi o błędzie 403 i rozwijaj szczegóły logu, aby zobaczyć nazwę zastosowanych zasad bezpieczeństwa, pasującą wartość pola oraz identyfikatory wstępnie skonfigurowanych wyrażeń (lub identyfikator podpisu). Na zrzutach ekranu poniżej znajdziesz przykłady logów dotyczących wymuszonych zasad bezpieczeństwa skonfigurowanych w tym samouczku.
Dziennik LFI

Log RCE

Dziennik wykrywania skanera

Dziennik ataków na protokół

Dziennik utrwalania sesji

10. Czyszczenie modułu
Po ukończeniu modułu usuń zasoby.
Uruchom te polecenia, aby usunąć zasady zabezpieczeń Cloud Armor, system równoważenia obciążenia, instancje, reguły zapory sieciowej i sieć VPC.
Usuwanie zasady zabezpieczeń Cloud Armor z usługi backendu
gcloud -q compute backend-services update juice-shop-backend --security-policy "" --global
Usuwanie zasady zabezpieczeń Cloud Armor
Usunięcie zasady zabezpieczeń spowoduje automatyczne usunięcie powiązanych reguł.
gcloud -q compute security-policies delete block-with-modsec-crs
Usuń zasoby systemu równoważenia obciążenia
Zasoby systemu równoważenia obciążenia, które mają zostać usunięte, to reguła przekierowania, docelowe serwery proxy HTTP, mapy URL, backend, kontrole stanu i grupa instancji.
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
Usuń instancję
gcloud -q compute instances delete owasp-juice-shop-app --zone us-central1-c
Usuwanie reguł zapory sieciowej, podsieci i sieci VPC
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. Gratulacje!
Gratulujemy ukończenia ćwiczenia dotyczącego wstępnie skonfigurowanych reguł WAF Cloud Armor.
Omówione zagadnienia
- Konfigurowanie grupy instancji i globalnego systemu równoważenia obciążenia w Cloud
- Jak skonfigurować zasady zabezpieczeń Cloud Armor ze wstępnie skonfigurowanymi regułami WAF, aby chronić przed atakami LFI, RCE, skanerami, atakami na protokoły i utrwalaniem sesji
- Jak sprawdzić w logach, czy Cloud Armor złagodził niektóre z 10 najczęstszych ataków OWASP
Dalsze kroki
- Chroń aplikację przed 10 najczęstszymi lukami w zabezpieczeniach OWASP za pomocą wstępnie skonfigurowanych reguł WAF Cloud Armor.
- Dostosowywanie reguł na podstawie poziomów wrażliwości
- Aby uzyskać bardziej szczegółowe informacje o egzekwowaniu zabezpieczeń, zapoznaj się z dokumentacją języka reguł niestandardowych.