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

1. Giriş

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

Google Cloud Armor, Google'ın kurumsal uç ağ güvenliği çözümüdür. Bu çözüm, DDoS koruması, WAF kuralı zorunluluğu ve ölçekte uyarlanabilir yönetilebilirlik sağlar.

Cloud Armor, OWASP Top 10 web uygulaması güvenlik açıklarına karşı koruma sağlamak için önceden yapılandırılmış WAF kural kümelerini genişletti. Kural kümeleri, yerel dosya dahil etme (lfi), uzak dosya dahil etme (rfi), uzaktan kod yürütme (rce) gibi en yaygın web uygulaması güvenlik risklerinden bazılarına karşı koruma sağlamak için OWASP Modsecurity Core Rule Set sürüm 3.0.2'ye dayanmaktadır.

Bu codelab'de, Google Cloud Armor WAF kurallarını kullanarak yaygın güvenlik açıklarından bazılarını nasıl azaltacağınızı öğ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 sabitlemeye karşı koruma sağlamak için önceden yapılandırılmış WAF kurallarıyla Cloud Armor güvenlik politikalarını yapılandırma
  • Günlükleri inceleyerek Cloud Armor'ın bir saldırıyı hafiflettiğini doğrulama

Gerekenler

  • Google Compute Engine hakkında temel bilgiler ( codelab)
  • Temel ağ iletişimi ve TCP/IP bilgisi
  • Temel düzeyde Unix/Linux komut satırı bilgisi
  • Google Cloud'da Ağ İletişimi ile GCP'de ağ iletişimi turunu tamamlamış olmanız faydalıdır.
  • (İsteğe bağlı) İş yüklerini SQL ekleme, IP tabanlı ve coğrafi tabanlı kurallarla korumayı öğrenmek için Cloudnet20 Cloud Armor laboratuvarını tamamlayın.

Codelab topolojisi ve kullanım alanı

119e13312f3cec25.jpeg

Şekil 1: Cloud Armor WAF kuralları codelab topolojisi

OWASP Juice Shop uygulaması, OWASP İlk 10 güvenlik açığının her birini tasarım gereği içerdiğinden güvenlik eğitimi ve farkındalığı için faydalıdır. Saldırganlar, bu özelliği test amacıyla kullanabilir. Bu codelab'de, bazı uygulama saldırılarını göstermek ve ardından uygulamayı Cloud Armor WAF kurallarıyla korumak için bu aracı kullanacağız. Uygulamanın önünde, Cloud Armor güvenlik politikasının ve kurallarının uygulanacağı bir Google Cloud Load Balancer bulunur. Herkese açık internette sunulacağı için neredeyse her yerden erişilebilir ve Cloud Armor ile VPC güvenlik duvarı kuralları kullanılarak korunur.

2. Kurulum ve Gereksinimler

Yönlendirmesiz ortam kurulumu

  1. Cloud Console'da oturum açın ve 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

Proje kimliğini unutmayın. Bu kimlik, tüm Google Cloud projelerinde benzersiz bir addır (Yukarıdaki ad zaten alınmış olduğundan sizin için çalışmayacaktır). Bu codelab'in ilerleyen kısımlarında PROJECT_ID olarak adlandırılacaktır.

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

Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırma ücreti alınmaması için kaynakları nasıl kapatacağınız konusunda size tavsiyelerde bulunan "Temizleme" bölümündeki talimatları uyguladığınızdan emin olun. Google Cloud'un yeni kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.

Cloud Shell'i başlatma

Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak 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 Cloud Shell simgesini tıklayın:

bce75f34b2c53987.png

Ortamın temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır. İşlem tamamlandığında aşağıdakine benzer bir sonuç görürsünüz:

f6ef2b5f13479f3a.png

Bu sanal makine, ihtiyaç duyacağınız tüm geliştirme araçlarını içerir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu laboratuvardaki çalışmalarınızın tamamını yalnızca bir tarayıcı kullanarak 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 test uygulamasının web sitesinin harici IP'sine 3000 numaralı bağlantı noktasından erişmesine izin vermek için kullanılır. İkinci güvenlik duvarı kuralı, yük dengeleyicilerin kaynak IP'sinden gelen 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 gelen durum denetimlerine izin vermek için güvenlik duvarı 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

Bir sonraki adım, test uygulamasını (bu örnekte OWASP Juice Shop web sunucusu) oluşturmaktır.

Bilgi işlem örneği oluştururken, sunucuda uygun hizmetlerin bulunmasını sağlamak için bir container görüntüsü kullanıyoruz. Bu sunucu us-central1-c bölgesinde dağıtılacak ve durum denetimlerine izin veren bir ağ etiketine sahip olacaktır.

OWASP Juice Shop uygulamasını oluşturma

Güvenlik açığı olan uygulama olarak, iyi bilinen açık kaynaklı OWASP Juice Shop uygulamasını kullanın. Bu uygulamayı, web sitesi üzerinden OWASP güvenlik zorluklarını çözmek 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 Load Balancer 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ı Juice Shop uygulamasının bağlantı noktası olarak 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 yönlendirme kuralı oluşturmaktır.

Cloud Load Balancer bileşenini ayarlama: durum denetimi

Juice Shop hizmet bağlantı noktası için durum denetimi 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 Load Balancer bileşenini ayarlama: arka uç hizmeti

Arka uç hizmeti 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].

Cloud 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

Cloud yük dengeleyici bileşenini (hedef proxy) ayarlama

URL eşlemesinin önüne geçecek 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 Load Balancer bileşenini ayarlama: iletim kuralı

Yük dengeleyici için iletim kuralını 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].

Juice Shop hizmetinin çevrimiçi olduğunu doğrulayın

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 Not Found yanıtı alabilirsiniz.

Cloud Shell'den

curl -Ii http://$PUBLIC_SVC_IP

Çıkış

HTTP/1.1 200 OK
<...>

Ayrıca, tarayıcıya giderek Juice Shop'u görüntüleyebilirsiniz.

428c18eee6708c28.png

Artık Juice Shop güvenlik açıklarını ve Cloud Armor WAF kural kümeleriyle bunlara karşı nasıl korunacağımızı incelemeye hazırız.

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

Zamandan tasarruf etmek için Cloud Armor WAF kuralları yayılmadan önceki ve sonraki durumları özetlenmiş adımlarla göstereceğiz.

LFI güvenlik açığını gözlemleme: dosya yolu manipülasyonu

Yerel dosya dahil etme, hassas verileri açığa çıkarma ihtimali olan istekte giriş doğrulama eksikliğinden yararlanarak sunucuda bulunan dosyaları gözlemleme işlemidir. Aşağıda, yalnızca bir dosya yolu manipülasyonunun mümkün olduğu 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 dosya yolu manipülasyonunun da çalıştığını gözlemleyin:

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 OS komutlarını yürütmesine olanak tanıyan çeşitli UNIX ve Windows komut yerleştirme senaryolarını içerir. Aşağıda, iletilen basit bir ls komutunun 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 çıktıyı görmek için curl işaretlerini kaldırabilirsiniz.

Tanınmış bir tarayıcının erişimini gözlemleme

Güvenlik açığı taraması da dahil olmak üzere çeşitli amaçlar için hem ticari hem de açık kaynaklı tarama uygulamaları. Bu araçlar, iyi bilinen kullanıcı aracısı ve diğer başlıkları kullanır. curl'ün iyi bilinen bir kullanıcı aracısı başlığıyla çalıştığını gözlemleyin:

Cloud Shell'den

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

Çıkış

HTTP/1.1 200 OK
<...>

Protokol saldırısını gözlemleme: HTTP bölme

Bazı web uygulamaları, yanıtlardaki üst bilgileri oluşturmak için kullanıcıdan alınan girişleri kullanır. Uygulama girişi düzgün şekilde filtrelemezse saldırgan, giriş parametresini %0d%0a dizisiyle (farklı satırları ayırmak için kullanılan CRLF dizisi) bozabilir. Bu durumda yanıt, ayrıştıran her şey (ör. aracı proxy sunucusu) tarafından iki yanıt olarak yorumlanabilir ve sonraki isteklerde yanlış içerik sunulabilir. Giriş parametresine %0d%0a dizisini eklemek yanıltıcı bir sayfanın yayınlanmasına neden olabilir.

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 sabitleme işlemini gözlemleme

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ımlama

Ö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ının varsayılan kuralını güncelleme

Varsayılan kural önceliğinin sayısal değerinin 2147483647 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, "deny" (reddet) işlemiyle yapılandırıldığından IP adresinizden erişime izin vermemiz gerekir. Lütfen herkese açık IP'nizi bulun (curl, ipmonkey, whatismyip vb.).

Cloud Shell'den:

MY_IP=$(curl ifconfig.me)

IP'nizden erişime izin vermek için ilk kuralı ekleyin (IP'NİZİ 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"

LFI saldırılarını engellemek için güvenlik politikasını güncelleyin

Yerel dosya eklemeleri için dosya yolu manipülasyonunu önleyen 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üncelleme

OWASP ModSecurity Core Rule Set'e göre, komut ekleme dahil olmak üzere RCE'yi arayan 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ı engellemek için güvenlik politikasını güncelleme

OWASP ModSecurity Core Rule Set'i uygulayarak iyi bilinen güvenlik tarayıcılarını, HTTP istemcilerini ve web tarayıcılarını engelleyin.

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

Protokol saldırılarını engellemek için güvenlik politikasını güncelleyin

OWASP ModSecurity Core Rule Set'e göre, satır başı (CR) %0d ve satır sonu (LF) %0a karakterlerinin yanı sıra HTTP istek kaçakçılığı gibi diğer protokol saldırılarını 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

Oturum sabitlemeyi engellemek için güvenlik politikasını güncelleme

OWASP ModSecurity Core Rule Set'e göre aşağıdaki 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 dağıtılması biraz zaman alabilir (ancak 10 dakikadan fazla sürmez). Yeterli zamanın geçtiğinden emin olduktan sonra, bir sonraki adımda Cloud Armor WAF kuralı uygulaması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özlemleme

LFI güvenlik açığının giderildiğini onaylayın

Cloud Shell'den

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

Çıkış

HTTP/1.1 403 Forbidden
<...>

RCE saldırısının azaltıldığını onaylayın

Cloud Shell'den

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

Çıkış

HTTP/1.1 403 Forbidden
<..>

Bilinen tarayıcı algılamasını onaylama

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 azaltıldığını onaylama

OWASP ModSecurity Core Rule Set ver.3.0.2'ye göre protokol saldırısı şu şekilde azaltılır:

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 sabitleme girişimlerinin engellendiğini doğrulayın

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ı inceleme

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

d00e4102fc89e44f.png

Kurallar önceliğe göre değerlendirilir: Daha küçük numaralı kurallar önce değerlendirilir ve tetiklendikten sonra, daha yüksek öncelik değerlerine sahip kurallar için işlem devam etmez.

  • 9000 önceliği: LFI'yi (yerel dosya dahil etme) engelleme
  • Öncelik 9001 - RCE'yi (uzaktan kod yürütme/komut yerleştirme) engelleme
  • Öncelik 9002 - Blok Tarayıcılar Algılandı
  • 9003 önceliği: HTTP bölme ve HTTP kaçakçılığı gibi protokol saldırılarını engelleme
  • Öncelik 9004 - Oturum Sabitleme Saldırılarını Engelleme
  • Öncelik 10000: IP'nizin web sitesine erişmesine izin verin
  • Öncelik Varsayılanı - Reddet.

*Siteye erişime izin vermek için "IP'nize izin ver" kuralının en yüksek öncelik numarasıyla yapılandırıldığına ancak saldırıları engellediğine dikkat edin.

9. Cloud Armor güvenlik politikası günlüklerini gözlemleme

Cloud Armor Console sayfasında güvenlik politikasının ayrıntılarını görüntüleyebilir ve Cloud Logging sayfasına yönlendirilmek için Logs sekmesini, ardından View policy logs bağlantısını tıklayabilirsiniz. İlgili güvenlik politikasına (ör. resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(block-with-modsec-crs)) göre otomatik olarak filtreleme yapar. 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 daha aşağıda önceden yapılandırılmış ifade kimliklerini (veya imza kimliğini) incelemek için günlük ayrıntılarını genişletin. Aşağıdaki ekran görüntülerinde, bu codelab'de yapılandırılan zorunlu güvenlik politikalarının günlüklerine ilişkin örnekler gösterilmektedir.

LFI günlüğü

983a6cab0cff940d.png

RCE günlüğü

988a3a571f9d9d45.png

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

7ed661863ba27555.png

Protokol saldırısı günlüğü

17ee3cbe0bd98939.png

Oturum sabitleme günlüğü

80d1ddfd0fe982e1.png

10. Lab Cleanup

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

Cloud Armor güvenlik politikasını, yük dengeleyiciyi, ö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ının silinmesi, ilişkili kuralların da otomatik olarak silinmesine neden olur.

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

Yük dengeleyici kaynaklarını silme

Silinecek bu yük dengeleyici kaynakları arasında yönlendirme kuralı, hedef-http-proxy'ler, URL haritaları, arka uç, durum denetimleri ve örnek grubu yer alır.

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!

Cloud Armor önceden yapılandırılmış WAF kuralları codelab'ini tamamladığınız için tebrik ederiz.

İşlediğimiz konular

  • Örnek grubu ve global Cloud Load Balancer'ı ayarlama
  • LFI, RCE, tarayıcılar, protokol saldırıları ve oturum sabitlemeye 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'un, OWASP'a göre en sık karşılaşılan 10 saldırıdan bazılarını günlükler aracılığıyla nasıl azalttığını doğrulama

Sonraki adımlar