Arsitektur SCADA modern mengikuti model hierarki yang dikenal sebagai Purdue Model atau ISA-95 Reference Architecture. Model ini membagi sistem menjadi beberapa level (zona) dengan fungsi yang berbeda dan batas keamanan yang jelas.
Setiap level harus dipisahkan oleh firewall atau network segmentation. Ini mencegah serangan dari jaringan IT (level 4-5) langsung menjangkau perangkat kontrol (level 0-1). Konsep ini disebut Defense-in-Depth yang akan dipelajari di Sesi 6.
RTU dan PLC sering dianggap sama, padahal memiliki karakteristik yang berbeda. Pemahaman perbedaan ini penting dalam merancang sistem SCADA yang tepat.
| ASPEK | RTU (Remote Terminal Unit) | PLC (Programmable Logic Controller) |
|---|---|---|
| Fokus Utama | Pengumpulan data jarak jauh, monitoring | Kontrol logika dan otomasi sekuensial |
| Lokasi | Remote/terpencil — substasi, pompa, valve | Pabrik, panel kontrol — dekat proses |
| Komunikasi | Dirancang untuk WAN jarak jauh (radio, fiber, satelit) | Umumnya LAN industrial (Profibus, EtherNet/IP) |
| Power | Bisa beroperasi dengan solar/baterai | Butuh catu daya AC/DC stabil |
| Autonomous | Ya — bisa jalan mandiri tanpa koneksi | Terbatas — umumnya butuh komunikasi |
| Pemrograman | Konfigurasi berbasis parameter | IEC 61131-3: Ladder Diagram, FBD, ST, SFC |
| Protokol | DNP3, IEC 101/104 (serial/TCP) | Modbus, Profibus, EtherNet/IP, OPC |
| Penggunaan | Utilitas (PLN, PDAM), minyak & gas pipeline | Manufaktur, otomasi pabrik, food & beverage |
| Contoh Produk | Schneider SCADAPack, ABB RTU560, GE D20 | Schneider M340/M580, Siemens S7-1200, AB CompactLogix |
PLC diprogram menggunakan 5 bahasa standar berdasarkan IEC 61131-3:
// Contoh Ladder Diagram sederhana: Start/Stop Motor // Rung 1: Logika Start Motor dengan Seal-In START_PB STOP_PB OVERLOAD MOTOR_OUT ───┤ ├─────────┤ /├──────────┤ /├──────────────────( )─── │ │ MOTOR_OUT │ ───┤ ├───────────────────────────────────────────────────┘ (Seal-in contact) // Rung 2: Indikator Running MOTOR_OUT RUN_LAMP ───┤ ├─────────────────────────────────────────────( )─── // Keterangan: // ┤ ├ = Normally Open Contact (N.O.) // ┤ /├ = Normally Closed Contact (N.C.) // ( ) = Output Coil // OVERLOAD = N.C. kontak thermal overload relay
HMI (Human Machine Interface) adalah antarmuka yang memungkinkan operator berinteraksi dengan sistem kontrol industri. HMI modern berbasis komputer dengan tampilan grafis yang menampilkan status proses secara real-time.
| SOFTWARE | VENDOR | KEUNGGULAN |
|---|---|---|
| Ignition SCADA | Inductive Automation | Open-source friendly, berbasis web, lisensi flat-rate. Sangat fleksibel untuk sistem besar. |
| Wonderware InTouch | AVEVA (Schneider) | Industri standar, ekosistem AVEVA lengkap, kuat untuk enterprise. |
| iFIX | GE Digital | Banyak digunakan di industri oil & gas, memiliki fitur historian yang kuat. |
| TIA Portal / WinCC | Siemens | Integrasi sempurna dengan PLC Siemens S7. Engineering environment terpadu. |
| Machine Expert SCADA | Schneider Electric | Terintegrasi dengan Modicon PLC Schneider, digunakan di Machine Expert-Basic. |
- OS Lama — Banyak HMI berjalan di Windows XP/7 yang tidak mendapat patch keamanan
- Akses Fisik Tidak Terkontrol — HMI di control room yang mudah diakses oleh semua staf
- Remote Access Tidak Aman — VNC/RDP tanpa enkripsi atau password lemah
- USB Port Terbuka — Risiko malware dari flashdisk (vektor serangan Stuxnet)
Modbus adalah protokol komunikasi serial yang dikembangkan oleh Modicon (sekarang Schneider Electric) pada tahun 1979. Meskipun sudah berusia 45+ tahun, Modbus masih menjadi protokol paling banyak digunakan di industri — terdapat jutaan perangkat Modbus di seluruh dunia.
ADDRESS
CODE
ADDR HI
ADDR LO
REG HI
REG LO
LO
HI
| FC (HEX) | NAMA | FUNGSI | RISIKO KEAMANAN |
|---|---|---|---|
| 01 (0x01) | Read Coils | Baca status digital output (bit) | Membaca status semua output — bisa mapping sistem |
| 02 (0x02) | Read Discrete Inputs | Baca status digital input (bit) | Membaca semua sensor digital tanpa autentikasi |
| 03 (0x03) | Read Holding Registers | Baca nilai register 16-bit (analog/parameter) | Membaca semua nilai proses — suhu, tekanan, dll. |
| 04 (0x04) | Read Input Registers | Baca register input analog | Sama seperti FC03 |
| 05 (0x05) | Write Single Coil | Tulis 1 digital output | BERBAHAYA! Bisa matikan/nyalakan motor, valve |
| 06 (0x06) | Write Single Register | Tulis 1 nilai register | Bisa ubah setpoint, kecepatan, tekanan |
| 0F (0x0F) | Write Multiple Coils | Tulis banyak digital output | SANGAT BERBAHAYA — kontrol massal |
| 10 (0x10) | Write Multiple Registers | Tulis banyak register | SANGAT BERBAHAYA — ubah banyak parameter |
Modbus tidak memiliki:
- Autentikasi — Siapapun yang bisa kirim frame Modbus TCP ke port 502 bisa langsung membaca dan menulis nilai register
- Enkripsi — Semua data terkirim dalam plaintext, mudah di-sniff dengan Wireshark
- Authorization — Tidak ada role-based access. Tidak ada bedanya request dari operator vs attacker
- Integrity check — Hanya CRC untuk deteksi error transmisi, bukan keamanan
Untuk keamanan, harus menggunakan network-level protection: firewall, VPN, IDS/IPS yang memahami protokol Modbus.
DNP3 (Distributed Network Protocol 3) dikembangkan oleh Westronic Inc. (sekarang GE Harris) pada awal 1990-an khusus untuk industri utilities (listrik dan air). DNP3 lebih andal dari Modbus untuk lingkungan yang menggunakan media komunikasi yang tidak handal (radio, serial line panjang).
| KARAKTERISTIK | DETAIL |
|---|---|
| Standar | IEEE 1815-2012, sebelumnya DNP3 User Group |
| Penggunaan Utama | Substation listrik, pengolahan air, SCADA utilitas |
| Media Komunikasi | Serial (RS-232/485), radio, fiber optik, TCP/IP (DNP3/TCP port 20000) |
| Keunggulan | Time stamping presisi, data integrity, partial data reporting, unsolicited response |
| Keamanan (dasar) | Tidak ada autentikasi di versi awal. DNP3 Secure Authentication (SA) v5 menambahkan challenge-response authentication |
- Unsolicited Response — RTU bisa mengirim data ke master TANPA diminta (event-driven), lebih efisien bandwidth
- Time Stamping — Setiap data event memiliki timestamp akurat (Sequence of Events recording)
- Data Integrity — Checksums lebih kuat, multi-level error detection
- Partial Data Report — Hanya mengirim data yang berubah, bukan semua register
OPC UA (OPC Unified Architecture) adalah standar komunikasi industri yang dikembangkan oleh OPC Foundation dan diterbitkan sebagai standar IEC 62541. OPC UA dirancang untuk menggantikan protokol OPC klasik (OPC DA, OPC HDA, OPC A&E) dengan arsitektur yang lebih modern, service-oriented, dan aman.
| FITUR KEAMANAN | MODBUS TCP | OPC UA |
|---|---|---|
| Enkripsi | ✗ Tidak ada | ✓ TLS/AES-256 |
| Autentikasi | ✗ Tidak ada | ✓ Certificate/User/Password |
| Otorisasi | ✗ Tidak ada | ✓ Role-based |
| Integritas Data | ~ CRC saja | ✓ Digital signature |
| Audit Trail | ✗ Tidak ada | ✓ Logging built-in |
IEC 61850 adalah standar internasional untuk komunikasi di substation (gardu induk) listrik. Standar ini dirancang untuk memungkinkan interoperabilitas antara perangkat dari vendor berbeda dalam sistem proteksi dan otomasi substation.
| ASPEK | DETAIL |
|---|---|
| Penerbit | IEC (International Electrotechnical Commission), edisi pertama 2003 |
| Penggunaan | Substation automation, proteksi relay, SCADA sistem transmisi/distribusi listrik |
| Perangkat | IED (Intelligent Electronic Device) — relay proteksi, bay controller, merging unit |
| Layanan Utama | GOOSE (Generic Object Oriented Substation Event), MMS (Manufacturing Message Specification), Sampled Values |
| Media | Ethernet 100Mbps/1Gbps, fiber optik untuk substation |
| Keunggulan | Latensi sangat rendah untuk GOOSE (millidetik), menggantikan hardwiring antar relay |
Pesan GOOSE (digunakan untuk trip signal relay proteksi) tidak memiliki enkripsi atau autentikasi di versi dasar. Attacker yang dapat mengakses jaringan substation dapat:
- Mengirim pesan GOOSE palsu untuk me-trip circuit breaker secara tidak semestinya
- Men-replay pesan GOOSE lama untuk menyebabkan trip berulang
IEC 62351 (security untuk IEC 61850) menambahkan autentikasi dan enkripsi, namun adopsinya masih terbatas.
╔═══════════════════════════════════════════════════════════════╗ ║ SCADA PLTU (Pembangkit Listrik Tenaga Uap) ║ ╚═══════════════════════════════════════════════════════════════╝ LEVEL 4 (IT Network): [PLN Pusat Kontrol Nasional] ←→ [ERP/SAP] ←→ [Internet] │ [FIREWALL KORPORAT] │ LEVEL 3 (Site Operations): [SCADA Historian] ←→ [MES System] ←→ [Reporting Server] │ [INDUSTRIAL DMZ / FIREWALL] │ LEVEL 2 (Supervisory): [MTU SCADA Server 1 (Primary)] ←HA→ [MTU SCADA Server 2 (Standby)] [HMI Workstation 1] [HMI Workstation 2] [Engineering WS] │ [OT Network - Isolated VLAN] │ LEVEL 1 (Control): [Boiler PLC - Schneider M580] ←Modbus TCP→ [MTU] [Turbine DCS - Emerson] ←OPC UA→ [MTU] [Generator Exciter PLC] ←DNP3→ [MTU] │ LEVEL 0 (Field): [Sensor Suhu 0-600°C] [Sensor Tekanan] [Flow Meter] [Valve Elektrik] [Motor Pompa] [Level Sensor]
// Sistem SCADA untuk Instalasi Pengolahan Air (IPA) PDAM KOMPONEN UTAMA: 1. INTAKE STATION (Pos Intake) RTU Schneider SCADAPack 47x ├── Sensor: Level air baku, turbidity, pH ├── Pompa Raw Water (2 pompa redundan) └── Komunikasi: DNP3/Serial → Radio Link → Control Center 2. TREATMENT PLANT (Bangunan Pengolahan) PLC Schneider M340 + HMI Panel ├── Koagulasi: Dosing pump NaOCl + Alum (Flow Proportional) ├── Sedimentasi: Monitoring turbidity effluent ├── Filtrasi: Tekanan filter (backwash otomatis) └── Disinfeksi: Chlorine dosing KRITIS → target 0.2-0.5 mg/L 3. RESERVOIR + DISTRIBUSI RTU di setiap booster pump station ├── Level reservoir (ultrasonic sensor) ├── Tekanan distribusi (pressure transmitter) └── Flow meter distribusi (electromagnetic) 4. CONTROL CENTER MTU: Ignition SCADA Server (redundant) HMI: 2 workstation operator Historian: Data logging setiap 1 menit PROTOKOL KOMUNIKASI: Intake → Control Center : DNP3 over Radio (VHF) Treatment PLC → MTU : Modbus TCP (Ethernet) Booster Stations → MTU : DNP3/TCP over Fiber MTU → HMI : OPC UA
Pada kasus WTP Oldsmar, attacker mengeksploitasi TeamViewer yang dipasang di HMI untuk remote access. Tidak ada MFA, password lemah. Karena Modbus TCP tidak ada autentikasi, setelah masuk ke jaringan OT, attacker langsung bisa mengirim perintah write ke PLC untuk mengubah setpoint dosis sodium hydroxide dari 111 ppm → 11,100 ppm.
Pelajaran: Bahkan remote access yang sah (TeamViewer) bisa menjadi backdoor jika tidak diamankan dengan benar.