Cloud Armor Önceden Yapılandırılmış WAF Kuralları Codelab'i

1. Giriş

Merhaba! Cloud Armor'ın önceden yapılandırılmış WAF kuralları codelab'ine hoş geldiniz.

Google Cloud Armor; geniş ölçekte DDoS koruması, WAF kural yaptırımı ve uyarlanabilirlik özellikleri sunan, Google'ın kurumsal uç ağ güvenliği çözümüdür.

Cloud Armor, OWASP İlk 10 web uygulaması güvenlik açıklarına karşı etkilerini azaltmak amacıyla önceden yapılandırılmış WAF kural gruplarını genişletmiştir. Kural kümeleri, yerel dosya ekleme (lfi), uzaktan dosya dahil etme (rfi), uzaktan kod yürütme (rce) gibi en yaygın web uygulaması güvenlik risklerinin bazılarına karşı koruma sağlamak için OWASP Modsecurity core kural grubu sürüm 3.0.2'yi temel alır.

Bu codelab'de, Google Cloud Armor WAF kurallarını kullanarak yaygın güvenlik açıklarından bazılarını azaltmayı öğreneceksiniz.

Neler öğreneceksiniz?

  • Bir hizmeti desteklemek için örnek grubu ve genel yük dengeleyici oluşturma
  • lfi, rce, tarayıcılar, protokol saldırıları ve oturum düzeltmeye karşı koruma sağlamak için önceden yapılandırılmış WAF kurallarıyla Cloud Armor güvenlik politikalarını yapılandırma
  • Cloud Armor'ın günlükleri gözlemleyerek saldırıları hafiflettiğini doğrulama.

Gerekenler

Codelab topolojisi ve kullanım alanı

119e13312f3cec25.jpeg

Şekil 1 - Cloud Armor WAF kuralları codelab topolojisi

OWASP Juice Shop uygulaması, tasarım gereği OWASP İlk 10 güvenlik açığının her birinin örneğini içerdiğinden güvenlik eğitimi ve farkındalığı için yararlıdır. Saldırganlar, test amacıyla bundan yararlanabilir. Bu codelab'de, bazı uygulama saldırılarını göstermek için bu koddan yararlanacağız. Ardından, uygulamayı Cloud Armor WAF kurallarıyla koruyacağız. Uygulama, Cloud Armor güvenlik politikasının ve kurallarının uygulanacağı bir Google Cloud Yük Dengeleyici tarafından önlenir. Herkese açık internette sunulacak ve böylece neredeyse her yerden ulaşılabilecek ve Cloud Armor ile VPC güvenlik duvarı kurallarıyla korunacak.

2. Kurulum ve Gereksinimler

Kendi hızınızda ortam kurulumu

  1. Cloud Console'da oturum açıp yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

Tüm Google Cloud projelerinde benzersiz bir ad olan proje kimliğini unutmayın (yukarıdaki ad zaten alınmış ve size uygun olmayacaktır!). Bu kod laboratuvarın ilerleyen bölümlerinde PROJECT_ID olarak adlandırılacaktır.

  1. Sonraki adımda, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir.

Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. "Temizleme" bölümündeki talimatları izlediğinizden emin olun. bölümünde, bu eğiticinin dışında faturalandırmayla karşılaşmamanız için kaynakları nasıl kapatacağınız konusunda tavsiyelerde bulunuyoruz. Yeni Google Cloud kullanıcıları, 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.

Cloud Shell'i başlatma

Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.

GCP Console'da, sağ üstteki araç çubuğunda yer alan Cloud Shell simgesini tıklayın:

bce75f34b2c53987.png

Ortamı sağlamak ve bağlamak yalnızca birkaç dakika sürer. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:

f6ef2b5f13479f3a.png

İhtiyacınız olan tüm geliştirme araçlarını bu sanal makinede bulabilirsiniz. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu laboratuvardaki tüm çalışmalarınızı yalnızca bir tarayıcıyla yapabilirsiniz.

Başlamadan önce

Cloud Shell'de proje kimliğinizin ayarlandığından emin olun

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
PROJECT_ID=[YOUR-PROJECT-NAME]
echo $PROJECT_ID

API'leri etkinleştirme

Gerekli tüm hizmetleri etkinleştirin

gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com        
gcloud services enable monitoring.googleapis.com 

3. VPC ağını oluşturma

VPC ağı oluşturma

Cloud Shell'den

gcloud compute networks create ca-lab-vpc --subnet-mode custom

Çıkış

Created
NAME        SUBNET_MODE  BGP_ROUTING_MODE  IPV4_RANGE  GATEWAY_IPV4
ca-lab-vpc  CUSTOM       REGIONAL

Alt ağ oluşturma

Cloud Shell'den

gcloud compute networks subnets create ca-lab-subnet \
        --network ca-lab-vpc --range 10.0.0.0/24 --region us-central1

Çıkış

Created 
NAME           REGION       NETWORK       RANGE
ca-lab-subnet  us-central1  ca-lab-vpc    10.0.0.0/24

VPC güvenlik duvarı kuralları oluşturma

VPC ve alt ağı oluşturduktan sonra birkaç güvenlik duvarı kuralı ayarlayacaksınız. İlk güvenlik duvarı kuralı, tüm IP'lerin, 3000 numaralı bağlantı noktası üzerinde test uygulamasının web sitesinin harici IP'sine erişmesine izin vermek için kullanılır. İkinci güvenlik duvarı kuralı, yük dengeleyicilerin kaynak IP'sinden durum denetimlerine izin vermek için kullanılır.

Cloud Shell'den

gcloud compute firewall-rules create allow-js-site --allow tcp:3000 --network ca-lab-vpc

Çıkış

Creating firewall...done.
NAME           NETWORK     DIRECTION  PRIORITY  ALLOW     DENY  DISABLED
allow-js-site  ca-lab-vpc  INGRESS    1000      tcp:3000        False

Google durum denetimi aralıklarından durum denetimlerine izin vermek için donanım yazılımı kuralları oluşturun.

Cloud Shell'den

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

Çıkış

Creating firewall...done.
NAME                NETWORK     DIRECTION  PRIORITY  ALLOW  DENY  DISABLED
allow-health-check  ca-lab-vpc  INGRESS    1000      tcp          False

4. Test uygulamasını ayarlama

Sonraki adım, test uygulamasını (bu örnekte OWASP Meyve/Sebze ve İçecek Mağazası) web sunucusunu oluşturmaktır.

Compute örneğini oluştururken, sunucunun uygun hizmetlere sahip olduğundan emin olmak için bir container görüntüsü kullanırız. Bu sunucu us-central1-c'de dağıtılacak ve durum denetimlerine izin veren bir ağ etiketine sahip olacak.

OWASP Juice Shop uygulamasını oluşturma

Güvenlik açığı içeren uygulama olarak hizmet vermek için, iyi bilinen OWASP Meyve/Sebze Suyu Dükkanı uygulamasını kullanın. Bu uygulamayı, web siteleri üzerinden OWASP güvenlik sorgulamaları gerçekleştirmek için de kullanabilirsiniz.

Cloud Shell'den

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

Çıkış

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 yük dengeleyici bileşenini ayarlama: örnek grubu

Yönetilmeyen örnek grubunu oluşturun.

Cloud Shell'den

gcloud compute instance-groups unmanaged create juice-shop-group \
    --zone=us-central1-c

Çıkış

NAME              LOCATION       SCOPE  NETWORK  MANAGED  INSTANCES
juice-shop-group  us-central1-c  zone                     0

Juice Shop GCE örneğini yönetilmeyen örnek grubuna ekleyin.

Cloud Shell'den

gcloud compute instance-groups unmanaged add-instances juice-shop-group \
    --zone=us-central1-c \
    --instances=owasp-juice-shop-app

Çıkış

Updated [https://www.googleapis.com/compute/v1/projects/<project name>/zones/us-central1-c/instanceGroups/juice-shop-group].

Adlandırılmış bağlantı noktasını Meyve Suyu Mağazası uygulamasınınkine ayarlayın.

Cloud Shell'den

gcloud compute instance-groups unmanaged set-named-ports \
juice-shop-group \
   --named-ports=http:3000 \
   --zone=us-central1-c

Çıkış

Updated [https://www.googleapis.com/compute/v1/projects/<project name>/zones/us-central1-c/instanceGroups/juice-shop-group].

Yönetilmeyen örnek grubunu oluşturduğunuza göre bir sonraki adım durum denetimi, arka uç hizmeti, URL eşlemesi, hedef proxy ve iletim kuralı oluşturmaktır.

Cloud yük dengeleyici bileşenini ayarlama: durum denetimi

Meyve Suyu Dükkanı hizmet bağlantı noktası için durum denetimini oluşturun.

Cloud Shell'den

gcloud compute health-checks create tcp tcp-port-3000 \
        --port 3000

Çıkış

Created 
NAME           PROTOCOL
tcp-port-3000  TCP

Cloud yük dengeleyici bileşenini ayarlama: arka uç hizmeti

Arka uç hizmet parametrelerini oluşturun.

Cloud Shell'den

gcloud compute backend-services create juice-shop-backend \
        --protocol HTTP \
        --port-name http \
        --health-checks tcp-port-3000 \
        --enable-logging \
        --global 

Çıkış

NAME                BACKENDS  PROTOCOL
juice-shop-backend            HTTP

Juice Shop örnek grubunu arka uç hizmetine ekleyin.

Cloud Shell'den

 gcloud compute backend-services add-backend juice-shop-backend \
        --instance-group=juice-shop-group \
        --instance-group-zone=us-central1-c \
        --global

Çıkış

Updated [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/backendServices/juice-shop-backend].

Chrome yük dengeleyici bileşenini ayarlama: URL eşlemesi

Arka uca gönderilecek URL eşlemesini oluşturun.

Cloud Shell'den

gcloud compute url-maps create juice-shop-loadbalancer \
        --default-service juice-shop-backend

Çıkış

NAME                     DEFAULT_SERVICE
juice-shop-loadbalancer  backendServices/juice-shop-backend

Chrome yük dengeleyici bileşeni: hedef proxy'yi ayarlayın

URL eşlemesinin önüne geçmek için Hedef Proxy'yi oluşturun.

Cloud Shell'den

gcloud compute target-http-proxies create juice-shop-proxy \
        --url-map juice-shop-loadbalancer

Çıkış

NAME              URL_MAP
juice-shop-proxy  juice-shop-loadbalancer

Cloud yük dengeleyici bileşenini ayarlama: iletim kuralı

Yük dengeleyici için iletim kuralı oluşturun.

Cloud Shell'den

gcloud compute forwarding-rules create juice-shop-rule \
        --global \
        --target-http-proxy=juice-shop-proxy \
        --ports=80

Çıkış

Created [https://www.googleapis.com/compute/v1/projects/cythom-host1/global/forwardingRules/juice-shop-rule].

Meyve Suyu Dükkanı hizmetinin online olduğunu doğrulama

Cloud Shell'den

PUBLIC_SVC_IP="$(gcloud compute forwarding-rules describe juice-shop-rule  --global --format="value(IPAddress)")"

Cloud Shell'den

echo $PUBLIC_SVC_IP

Çıkış

<public VIP of service>

Devam etmeden önce birkaç dakika bekleyin. Aksi takdirde HTTP/1.1 404 Bulunamadı yanıtı alabilirsiniz.

Cloud Shell'den

curl -Ii http://$PUBLIC_SVC_IP

Çıkış

HTTP/1.1 200 OK
<...>

Meyve Suyu Dükkanı'nı görüntülemek için tarayıcıya da gidebilirsiniz!

428c18eee6708c28.png

Artık Meyve/Sebze Suyu Dükkanı ile ilgili güvenlik açıklarını ve Cloud Armor WAF kural gruplarıyla bu güvenlik açıklarına karşı nasıl korunacağımızı keşfetmeye hazırız.

5. Bilinen güvenlik açıklarını gösterin

Zamandan tasarruf etmek için, Cloud Armor WAF kurallarının toplu adımlar halinde yayılmasından önceki ve sonraki durumları göstereceğiz.

LFI güvenlik açığını gözlemleme: path traversal

Yerel Dosya Dahil Etme, hassas verileri potansiyel olarak açığa çıkarmak için istekteki giriş doğrulaması eksikliğini kötüye kullanarak sunucuda mevcut olan dosyaları gözlemleme işlemidir. Aşağıda, bir yol geçişinin mümkün olduğu basitçe gösterilmektedir. Tarayıcınızda veya curl ile uygulama tarafından sunulan mevcut bir yolu gözlemleyin.

Cloud Shell'den

curl -Ii http://$PUBLIC_SVC_IP/ftp

Çıkış

HTTP/1.1 200 OK
<...>

Ayrıca, yol geçişinin de çalıştığını unutmayın:

Cloud Shell'den

curl -Ii http://$PUBLIC_SVC_IP/ftp/../

Çıkış

HTTP/1.1 200 OK
<...>

RCE güvenlik açığını gözlemleme

Uzaktan Kod Yürütme, saldırganların genellikle ayrıcalıklı kullanıcılarla sınırlı olan işletim sistemi komutlarını yürütmesine olanak tanıyan çeşitli UNIX ve Windows komut yerleştirme senaryoları içerir. Aşağıda, iletilen basit bir ls komutu yürütülmesi gösterilmektedir.

Cloud Shell'den

curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls

Çıkış

HTTP/1.1 200 OK
<...>

Tam çıkışı gözlemlemek için curl bayraklarını kaldırabilirsiniz.

Tanınan bir tarayıcının erişimini izleme

Hem ticari hem de açık kaynaklı uygulamaları, güvenlik açıklarına karşı tarama da dahil olmak üzere çeşitli amaçlarla tarar. Bu araçlar, iyi bilinen User-Agent ve diğer Üstbilgileri kullanır. Gözlem curl'ün bilinen bir User-Agent Üstbilgisi ile çalıştığını unutmayın:

Cloud Shell'den

curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"

Çıkış

HTTP/1.1 200 OK
<...>

Protokol saldırısı izleme: HTTP bölme

Bazı web uygulamaları, yanıtlardaki üstbilgileri oluşturmak için kullanıcının girdilerini kullanır. Uygulama, girişi düzgün bir şekilde filtrelemezse bir saldırgan, giriş parametresini %0d%0a dizisiyle (farklı satırları ayırmak için kullanılan CRLF dizisi) zehirleyebilir. Bu durumda yanıt, onu ayrıştıran herhangi bir şey (örneğin, bir ara proxy sunucusu) tarafından iki yanıt olarak yorumlanabilir ve bunu takip eden isteklerde yanlış içerik sunma olasılığı vardır. Giriş parametresine %0d%0a dizisini ekleyin. Bu işlem, yanıltıcı bir sayfa sunulmasına yol açabilir.

Cloud Shell'den

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>"

Çıkış

HTTP/1.1 200 OK
<...>

Oturum sabitlemesini gözlemle

Cloud Shell'den

curl -Ii http://$PUBLIC_SVC_IP -H session_id=X

Çıkış

HTTP/1.1 200 OK
<...>

6. Cloud Armor WAF kurallarını tanımlayın

Önceden yapılandırılmış WAF kurallarını listeleyin:

Cloud Shell'den

gcloud compute security-policies list-preconfigured-expression-sets

Çıkış

EXPRESSION_SET
Sqli-canary
RULE_ID
    owasp-crs-v030001-id942110-sqli
    owasp-crs-v030001-id942120-sqli
<...>

Cloud Armor güvenlik politikasını oluşturma

Cloud Shell'den:

gcloud compute security-policies create block-with-modsec-crs \
    --description "Block with OWASP ModSecurity CRS"

Güvenlik politikası varsayılan kuralını güncelleme

Varsayılan kural önceliğinin 2147483647 sayısal bir değere sahip olduğunu unutmayın.

Cloud Shell'den:

gcloud compute security-policies rules update 2147483647 \
    --security-policy block-with-modsec-crs \
    --action "deny-403"

Varsayılan kural işlem reddiyle yapılandırıldığından IP'nizden erişime izin vermemiz gerekir. Lütfen herkese açık IP'nizi (curl, ipmonkey, whatismyip vb.) bulun.

Cloud Shell'den:

MY_IP=$(curl ifconfig.me)

IP'nizden erişim izni vermek için ilk kuralı ekleyin (IPINIZI AŞAĞIYA EKLEYİN)

Cloud Shell'den:

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"

Güvenlik politikasını LFI saldırılarını engelleyecek şekilde güncelleme

Yerel dosya dahil etme işlemleri için yol geçişini engelleyen OWASP ModSecurity Core Rule Set'i uygulayın.

Cloud Shell'den:

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

Güvenlik politikasını, Uzaktan Kod Yürütmeyi (rce) engelleyecek şekilde güncelleyin

OWASP ModSecurity Core Rule Set'e göre, rce'yi arayan, komut yerleştirme dahil kurallar uygulayın. Tipik işletim sistemi komutları algılanır ve engellenir.

Cloud Shell'den:

gcloud compute security-policies rules create 9001 \
    --security-policy block-with-modsec-crs  \
    --description "block rce attacks" \
     --expression "evaluatePreconfiguredExpr('rce-stable')" \
    --action deny-403

Güvenlik tarayıcılarını, güvenlik tarayıcılarını engelleyecek şekilde güncelleme

İyi bilinen güvenlik tarayıcılarını, HTTP istemcilerini ve web tarayıcılarını komut dosyası çalıştırmayı engellemek için OWASP ModSecurity Core Rule Set'i uygulayın.

Cloud Shell'den:

gcloud compute security-policies rules create 9002 \
    --security-policy block-with-modsec-crs  \
    --description "block scanners" \
     --expression "evaluatePreconfiguredExpr('scannerdetection-stable')" \
    --action deny-403

Güvenlik politikasını protokol saldırılarını engelleyecek şekilde güncelleme

OWASP ModSecurity Core Rule Set'e göre Satır Dönüşü (CR) %0d ve Linefeed (LF) %0a karakterlerini ve diğer protokol saldırısı türlerini (ör. HTTP İstek Kaçaklığı) arayan kurallar uygulayın.

Cloud Shell'den:

gcloud compute security-policies rules create 9003 \
    --security-policy block-with-modsec-crs  \
    --description "block protocol attacks" \
     --expression "evaluatePreconfiguredExpr('protocolattack-stable')" \
    --action deny-403

Güvenlik politikasını oturum düzeltmeyi engellemek için güncelleme

OWASP ModSecurity Core Rule Set'e göre şu kuralları uygulayın:

Cloud Shell'den:

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

Güvenlik politikasını arka uç hizmetine ekleme

Cloud Shell'den:

gcloud compute backend-services update juice-shop-backend \
    --security-policy block-with-modsec-crs \
    --global

Kuralların yayılması biraz zaman alabilir (ancak 10 dakikadan fazla değil). Yeterli süre geçtiğinden emin olduktan sonra, sonraki adımda Cloud Armor WAF kurallarının zorunlu kılındığını onaylamak için daha önce gösterilen güvenlik açıklarını test edin.

7. OWASP ModSecurity Core Rule Set ile Cloud Armor korumasını gözlemleyin

LFI güvenlik açığının azaltıldığını onaylama

Cloud Shell'den

curl -Ii http://$PUBLIC_SVC_IP/?a=../

Çıkış

HTTP/1.1 403 Forbidden
<...>

RCE saldırısının hafifletildiğini onaylama

Cloud Shell'den

curl -Ii http://$PUBLIC_SVC_IP/ftp?doc=/bin/ls

Çıkış

HTTP/1.1 403 Forbidden
<..>

İyi bilinen tarayıcı algılamasını onaylayın

Cloud Shell'den

curl -Ii http://$PUBLIC_SVC_IP -H "User-Agent: blackwidow"

Çıkış

HTTP/1.1 403 Forbidden
<..>

Protokol saldırısının hafifletildiğini onaylama

OWASP ModSecurity Core Rule Set sürüm 3.0.2 uyarınca protokol saldırısı,

Cloud Shell'den

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>"

Çıkış

HTTP/1.1 403 Forbidden
<..>

Oturum düzeltme denemelerinin engellendiğini doğrulama

Cloud Shell'den

curl -Ii http://$PUBLIC_SVC_IP/?session_id=a

Çıkış

HTTP/1.1 403 Forbidden
<..>

8. Cloud Armor Güvenlik Kurallarını İnceleyin

Güvenlik politikasını oluşturduğumuza göre şimdi tam olarak hangi kuralların yapılandırıldığına bakalım.

d00e4102fc89e44f.png

Kurallar önceliğe göre değerlendirilir: Önce düşük sayılar değerlendirilir ve tetiklendikten sonra daha yüksek öncelik değerlerine sahip kurallar işlenmeye devam etmez.

  • Öncelik 9000 - LFI'ı engelle (yerel dosya dahil etme)
  • Öncelik 9001 - RCE'yi engelle (uzaktan kod yürütme/komut yerleştirme)
  • Öncelik 9002 - Engelleme Tarayıcıları Algılandı
  • Öncelik 9003 - HTTP bölme ve HTTP kaçakçılığı gibi Protokol Saldırılarını Engelle
  • Öncelik 9004 - Oturum Düzeltme Saldırılarını Engelleme
  • Öncelik 10000 - IP'nizin Web Sitesine erişmesine izin verin
  • Varsayılan Öncelikli - Reddet.

*"IP'nize izin verin" seçeneğine dikkat edin. kuralı, siteye erişim izni vermek için en yüksek öncelik sayısına göre yapılandırılır ancak herhangi bir saldırıyı engeller.

9. Cloud Armor güvenlik politikası günlüklerini inceleme

Cloud Armor Console sayfasında güvenlik politikasının ayrıntılarını görüntüleyebilir, ardından Logs sekmesini ve ardından View policy logs bağlantısını tıklayarak Cloud Logging sayfasına gidebilirsiniz. İlgili güvenlik politikasına göre otomatik olarak filtrelenir (ör. resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(block-with-modsec-crs) 403 hata yanıt kodlarını inceleyin ve zorunlu kılınan güvenlik politikasının adını, eşleşen alan değerini ve önceden yapılandırılmış ifade kimliklerini (veya imza kimliğini) gözlemlemek için günlük ayrıntılarını genişletin. Aşağıdaki ekran görüntüleri, bu codelab'de yapılandırılan zorunlu güvenlik politikaları için günlüklerin örneklerini göstermektedir.

LFI günlüğü

983a6cab0cff940d.png

RCE günlüğü

988a3a571f9d9d45.png

Tarayıcı algılama günlüğü

7ed661863ba27555.png

Protokol saldırı günlüğü

17ee3cbe0bd98939.png

Oturum sabitleme günlüğü

80d1ddfd0fe982e1.png

10. Laboratuvar Temizliği

Laboratuvarı tamamladığınıza göre artık kaynakları temizleyin.

Cloud Armor güvenlik politikasını, Yük Dengeleyici'yi, örnekleri, güvenlik duvarı kurallarını ve VPC ağını silmek için bu komutları çalıştırın.

Cloud Armor güvenlik politikasını arka uç hizmetinden kaldırma

gcloud -q compute backend-services update juice-shop-backend --security-policy "" --global

Cloud Armor güvenlik politikasını silme

Güvenlik politikası silindiğinde ilişkili kurallar otomatik olarak silinir.

gcloud -q compute security-policies delete block-with-modsec-crs

Yük dengeleyici kaynaklarını silme

Silinecek bu Yük Dengeleyici kaynakları; iletim kuralı, target-http-proxies, url-maps, arka uç, durum denetimleri ve örnek grubudur.

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

Örneği silme

gcloud -q compute instances delete owasp-juice-shop-app --zone us-central1-c

Güvenlik duvarı kurallarını, alt ağı ve VPC'yi silme

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. Tebrikler!

Tebrikler! Cloud Armor'ın önceden yapılandırılmış WAF kuralları codelab'ini tamamladınız.

İşlediklerimiz

  • Örnek grubu ve global Cloud yük dengeleyici oluşturma
  • lfi, rce, tarayıcılar, protokol saldırıları ve oturum düzeltmeye karşı koruma sağlamak için önceden yapılandırılmış WAF kurallarıyla Cloud Armor güvenlik politikalarını yapılandırma
  • Cloud Armor'ın, günlükler aracılığıyla ilk 10 OWASP saldırısından bazılarını hafiflettiğini doğrulama

Sonraki adımlar