1. Wprowadzenie
Cześć! Witamy w samouczku dotyczącym wstępnie skonfigurowanych reguł WAF w 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ł zapory sieciowej aplikacji internetowych i adaptacyjne zarządzanie na dużą skalę.
Usługa Cloud Armor rozszerzyła wstępnie skonfigurowane zestawy reguł WAF, aby zapobiegać lukom w zabezpieczeniach aplikacji internetowych wymienionym w dokumencie 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 przewodnika dowiesz się, jak ograniczyć niektóre z najczęstszych luk w zabezpieczeniach za pomocą reguł zapory aplikacji internetowych 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ć się 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 przewodnikiem po sieciach w GCP, takim jak 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 ćwiczeń z programowania dotyczących reguł WAF w Cloud Armor
Aplikacja OWASP Juice Shop jest przydatna do szkolenia w zakresie bezpieczeństwa i podnoszenia świadomości, ponieważ zawiera przykłady wszystkich 10 najważniejszych luk w zabezpieczeniach OWASP. Osoba atakująca może wykorzystać tę funkcję do celów testowych. W tym ćwiczeniu z programowania pokażemy kilka ataków na aplikację, a potem zabezpieczymy ją za pomocą reguł zapory WAF Cloud Armor. Aplikacja będzie obsługiwana przez system równoważenia obciążenia Google Cloud, do którego zostaną zastosowane zasady zabezpieczeń i reguły Cloud Armor. Będzie on udostępniany w internecie publicznym, a więc dostępny niemal z każdego miejsca i chroniony 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 ani 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 konsoli Cloud, 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 bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
Uruchamianie Cloud Shell
Z Google Cloud można korzystać zdalnie na laptopie, ale w tym module praktycznym będziesz używać 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 module 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
Z 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
Z 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 systemu równoważenia obciążenia.
Z 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.
Z 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
Następnym 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 kontrole 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.
Z 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.
Z 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.
Z 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.
Z 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 systemu równoważenia obciążenia w Cloud: kontrola stanu
Utwórz kontrolę stanu dla portu usługi Juice Shop.
Z 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.
Z 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.
Z 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, aby wysłać ją do backendu.
Z 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.
Z 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.
Z 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
Z Cloud Shell
PUBLIC_SVC_IP="$(gcloud compute forwarding-rules describe juice-shop-rule --global --format="value(IPAddress)")"
Z 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.
Z 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 w Cloud Armor.
5. wykazywać znane luki w zabezpieczeniach,
Aby zaoszczędzić czas, pokażemy stany przed i po propagacji reguł WAF Cloud Armor w skróconych krokach.
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ę.
Z Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp
Wyniki
HTTP/1.1 200 OK <...>
Zauważ też, że działa też [atak typu] path traversal:
Z Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp/../
Wyniki
HTTP/1.1 200 OK <...>
Obserwowanie luki w zabezpieczeniach, która umożliwia zdalne wykonanie kodu
Wykonywanie kodu zdalnego 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.
Z 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’owe aplikacje do skanowania służą do różnych celów, w tym do wykrywania 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 z dobrze znanym nagłówkiem klienta użytkownika:
Z Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"
Wyniki
HTTP/1.1 200 OK <...>
Obserwowanie ataku na protokół: dzielenie 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). W takim przypadku odpowiedź może zostać zinterpretowana jako 2 odpowiedzi przez dowolny element, który ją analizuje, np. pośredni serwer proxy, co może spowodować, że w kolejnych żądaniach będą wyświetlane fałszywe treści. Wstaw sekwencję %0d%0a do parametru wejściowego, co może spowodować wyświetlenie wprowadzającej w błąd strony.
Z 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
Z 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 wstępnie skonfigurowane reguły WAF:
Z 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 blokować 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 internetowe.
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 zastosuj 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
Zaktualizuj zasadę zabezpieczeń, aby blokować utrwalanie 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
Z Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/?a=../
Wyniki
HTTP/1.1 403 Forbidden <...>
Potwierdź, że atak RCE został zneutralizowany
Z Cloud Shell
curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls
Wyniki
HTTP/1.1 403 Forbidden <..>
Potwierdź wykrycie znanego skanera
Z 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 na protokół jest ograniczany przez
Z 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
Z 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 zasad 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 po wywołaniu reguły przetwarzanie nie jest kontynuowane w przypadku reguł o wyższych wartościach priorytetu.
- Priorytet 9000 – blokowanie LFI (local file inclusion)
- Priorytet 9001 – blokowanie RCE (zdalnego wykonania kodu lub wstrzyknięcia polecenia)
- Priorytet 9002 – wykryto skanery bloków
- Priorytet 9003 – blokowanie ataków na protokoły, takich jak dzielenie i przemyt HTTP
- Priorytet 9004 – blokowanie ataków typu Session Fixation
- Priorytet 10000 – zezwól Twojemu adresowi IP na dostęp do witryny
- Priorytet domyślny – odmowa.
*Zwróć uwagę, że reguła „Zezwól 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 bezpieczeństwa. Aby przejść do strony Cloud Logging, kliknij kolejno kartę Logs i link View policy logs. Będzie on automatycznie filtrować wyniki na podstawie interesującej Cię zasady zabezpieczeń, np. resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(block-with-modsec-crs). Obserwuj kody odpowiedzi błędu 403 i rozwijaj szczegóły logu, aby zobaczyć nazwę wymuszonych zasad bezpieczeństwa, pasującą wartość pola i dalej 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 laboratorium.
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 z kodem dotyczącego wstępnie skonfigurowanych reguł WAF w 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ć się przed atakami LFI, RCE, skanerami, atakami na protokoły i utrwalaniem sesji
- Jak sprawdzić w logach, czy Cloud Armor złagodził skutki niektórych ataków z listy OWASP Top 10
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.