HMI adalah titik interaksi manusia dengan proses industri — sekaligus salah satu titik paling rentan dalam sistem SCADA. Karena HMI berjalan di atas OS umum (Windows) dan memerlukan antarmuka pengguna yang kaya, ia memiliki attack surface yang lebih besar dari PLC.
- Berjalan di OS Windows — Mewarisi semua kerentanan Windows yang ada, sering tidak di-patch
- Terhubung ke banyak sistem — HMI berkomunikasi dengan PLC, historian, printer, kadang internet
- Digunakan banyak orang — Operator shift berbeda, kadang akun shared, kata sandi lemah
- Sering punya USB aktif — Untuk transfer data, update, atau charge HP
- Software lama tidak ter-update — SCADA vendor tidak mendukung patch OS terbaru, memaksa pakai OS lama
- Akses ke kontrol proses — Siapapun yang menguasai HMI bisa mengontrol seluruh proses industri
| VEKTOR SERANGAN | METODE | DAMPAK |
|---|---|---|
| Malware via USB | USB device terinfeksi dicolokkan ke HMI (charge HP, transfer data) | Ransomware, keylogger, backdoor di HMI |
| Credential Theft | Shared account, password tertempel di monitor, shoulder surfing | Akses tidak sah ke kontrol proses |
| Remote Desktop Exploit | RDP/VNC dengan password lemah atau exposed ke network | Remote takeover HMI oleh attacker |
| SCADA Client Vulnerability | Bug pada software WinCC, iFIX, Ignition yang belum di-patch | Arbitrary code execution di context SCADA client |
| Man-in-the-Middle | Intercept komunikasi HMI-PLC di jaringan OT yang tidak terenkripsi | Tampilkan data palsu ke operator, suntikkan perintah |
| Physical Access | Tamu tidak diawasi di control room, USB boot device | Instal malware, exfil data, manipulasi setting |
OS Hardening adalah proses mengurangi attack surface dengan menonaktifkan semua yang tidak diperlukan. Untuk HMI, pendekatan ini mengikuti prinsip "Kiosk Mode" — HMI hanya bisa menjalankan satu fungsi: SCADA client.
══ SERVICES YANG HARUS DINONAKTIFKAN ══ ✗ Disable Print Spooler (PrintNightmare CVE-2021-34527) ✗ Disable Windows Update Auto (patch manual, tervalidasi vendor SCADA) ✗ Disable Remote Registry (akses registry dari jaringan) ✗ Disable Telnet / FTP (protokol plaintext) ✗ Disable NetBIOS over TCP/IP (lateral movement vector) ✗ Disable SMBv1 (EternalBlue exploit, WannaCry) ✗ Disable LLMNR / NBT-NS (credential harvesting) ✗ Disable Windows Remote Mgmt (WinRM — remote PowerShell) ✗ Disable Bluetooth (jika tidak dibutuhkan) ✗ Disable WiFi adapter (HMI harus wired only) ══ PORT YANG HARUS DIBLOKIR (Host Firewall) ══ ✗ Block TCP 135,137,138,139,445 (SMB/NetBIOS) ✗ Block TCP 23 (Telnet), 21 (FTP), 20 (FTP-data) ✗ Block TCP 5985,5986 (WinRM) ✓ Allow TCP 502 (Modbus ke PLC — outbound only) ✓ Allow TCP 44818 (EtherNet/IP ke PLC — outbound only) ✓ Allow TCP 3389 (RDP — dari Jump Server saja, source-restricted) ══ KONFIGURASI KEAMANAN TAMBAHAN ══ ✓ Enable Windows Defender (atau AWL sebagai pengganti) ✓ Enable Windows Firewall (host-based) ✓ Enable Audit Policy (login, object access, policy change) ✓ Enable BitLocker disk encryption (jika hardware support) ✓ Disable AutoRun / AutoPlay untuk semua media ✓ Lock BIOS password + disable boot dari USB/CD ✓ Set Screen lock timeout = 5 menit (tidak aktif → terkunci) ✓ Configure Account lockout: 5 attempt → 30 min lockout
Kiosk Mode mengkonfigurasi HMI agar hanya bisa menjalankan SCADA client dan tidak bisa melakukan aktivitas OS umum. Ini adalah pendekatan paling kuat untuk mengamankan HMI legacy.
- Shell Replacement — Ganti Explorer.exe dengan SCADA client sebagai shell langsung. HMI boot langsung ke SCADA tanpa desktop Windows.
- Group Policy Restriction — Blokir Task Manager, Command Prompt, PowerShell, Run Dialog, semua control panel
- AppLocker / WDAC — Hanya SCADA client yang boleh jalan; seluruh executable lain diblokir
- Read-Only OS — System drive di-mount read-only atau dilindungi write-filter (Enhanced Write Filter pada Windows Embedded)
RBAC mendefinisikan hak akses berdasarkan peran, bukan berdasarkan individu. Setiap operator mendapat akses sesuai tanggung jawab pekerjaannya — tidak lebih. Prinsip ini disebut Least Privilege.
SHIFT
OT
PROSES
SCADA
| METODE | KEKUATAN | COCOK UNTUK | CATATAN OT |
|---|---|---|---|
| Username + Password | Rendah — dicuri, ditebak, dibagikan | Baseline minimum, semua akses | Wajib: panjang ≥12, complexity, ganti 90 hari, tidak shared |
| Smart Card / Badge | Tinggi — fisik + PIN | Operator yang sering login/logout | Badge sudah ada di pabrik — manfaatkan infrastruktur yang ada |
| OTP / TOTP | Tinggi — satu kali pakai | Aksi kritis: download PLC, ubah setpoint besar | Bisa via smartphone atau dedicated token (RSA SecurID) |
| Biometrik (sidik jari) | Tinggi — tidak bisa dibagi | Control room dengan banyak operator shift | Pertimbangkan: sarung tangan, kondisi lapangan kotor |
| Two-Person Integrity | Sangat Tinggi — butuh 2 orang | Aksi paling kritis: override safety, mute SIS | Standar industri nuklir dan industri berbahaya tinggi |
Centang item-item di bawah ini untuk melacak progres hardening HMI Anda. Klik pada setiap item untuk menandainya selesai.
Audit trail adalah rekaman kronologis semua aksi yang terjadi pada sistem SCADA. Ini adalah komponen kritis untuk forensik insiden, investigasi, dan bukti kepatuhan regulasi.
- Timestamp akurat — Sinkronisasi NTP ke sumber waktu tunggal. Tanpa ini, korelasi event antar sistem tidak mungkin.
- Identitas pengguna — Username unik, bukan shared account. Tidak bisa membuktikan siapa pelakunya jika akun dibagi.
- Aksi dan objek — Apa yang dilakukan, pada komponen apa, nilai sebelum dan sesudah perubahan.
- Write-once / tamper-evident — Log tidak boleh bisa dimodifikasi atau dihapus oleh user yang sama. Kirim ke SIEM eksternal secara real-time.
- Retention ≥1 tahun — Insiden sering baru diketahui bulan-bulan kemudian. Log yang sudah dihapus tidak berguna.
- Alert untuk event kritis — Sistem harus memberi notifikasi otomatis saat terjadi: login gagal berulang, setpoint di luar batas, login dari IP tidak dikenal.
Sistem alarm pada HMI SCADA bukan hanya alat operasional — ini juga merupakan target serangan. Attacker dapat menonaktifkan alarm untuk menyembunyikan aktivitas berbahaya, atau membanjiri alarm (alarm flood) agar operator kewalahan dan mengabaikan alarm kritis yang sebenarnya.
- Alarm Suppression (MITRE T0878) — Attacker menonaktifkan alarm spesifik agar kondisi berbahaya yang mereka ciptakan tidak terdeteksi operator
- Alarm Flood — Memicu ratusan alarm tidak kritis sekaligus agar operator kewalahan dan mengabaikan alarm kritis di antaranya (seperti serangan BlackEnergy yang mematikan telepon customer service)
- False Alarm Injection — Kirim data sensor palsu yang memicu alarm di area yang tidak bermasalah, mengalihkan perhatian dari area yang sedang diserang
- Disable Alarm Sirens — Akses fisik ke control room untuk menonaktifkan alarm audible/visual sehingga operator tidak sadar ada kejadian kritis
| KONTROL KEAMANAN ALARM | IMPLEMENTASI |
|---|---|
| Alarm Suppression Access Control | Hanya Supervisor atau Engineer yang boleh suppress/disable alarm. Operator biasa tidak bisa menonaktifkan alarm — hanya acknowledge. |
| Alarm Suppression Audit | Setiap alarm yang di-suppress harus dicatat: siapa, kapan, alasan, durasi. Auto-re-enable setelah batas waktu. |
| Alarm Integrity Monitoring | OT IDS memantau jika ada perubahan mendadak pada konfigurasi alarm (MITRE T0878 detection) |
| Critical Alarm Redundancy | Alarm kritis (safety interlock) memiliki jalur independen ke panel fisik — tidak hanya lewat HMI software |
| Alarm Rate Monitoring | Jika alarm rate melebihi threshold (misal: >10 alarm/menit), sistem memberi alert ke supervisor — potensi alarm flood attack |
KONDISI AWAL (SEBELUM HARDENING): ✗ 6 HMI workstation — 3 masih Windows 7 SP1 (EOL) ✗ Semua operator pakai akun "admin" dengan password "pltu123" ✗ USB port terbuka — operator sering charge HP ✗ Tidak ada audit log selain Event Viewer Windows (tidak dikirim ke mana pun) ✗ Tidak ada timeout screen lock ✗ TeamViewer terinstal di 2 HMI untuk remote support vendor LANGKAH HARDENING (dilakukan dalam 4 bulan): BULAN 1 — AKSES & AUTENTIKASI: ✓ Buat 12 akun unik untuk semua operator (shift A/B/C, supervisor, engineer) ✓ Implementasi RBAC di WinCC: 4 role (Viewer, Operator, Supervisor, Engineer) ✓ Password policy: min 12 karakter, complexity, change 90 hari ✓ Screen lock timeout 5 menit + badge/swipe untuk unlock (smart card) ✓ Account lockout: 5 attempt → 15 menit BULAN 2 — OS HARDENING: ✓ Disable 23 Windows services tidak diperlukan (SMBv1, Telnet, WinRM, dll) ✓ Disable USB storage via Group Policy + BIOS lock ✓ Deploy Trend Micro Safe Lock AWL di semua 6 HMI ✓ Uninstall TeamViewer → ganti dengan secure Jump Server di DMZ ✓ Host-based firewall rules: permit hanya komunikasi OT yang dibutuhkan BULAN 3 — MONITORING & AUDIT: ✓ Konfigurasi Windows Audit Policy penuh ✓ Deploy Splunk UF — kirim semua Windows event log + WinCC log ke SIEM ✓ Buat alert rules di SIEM: login gagal 3x, setpoint di luar batas, login di luar jam kerja ✓ NTP sync semua HMI + PLC ke server NTP terpusat ✓ Log retention policy: 2 tahun di SIEM, 6 bulan lokal BULAN 4 — ALARM SECURITY & TRAINING: ✓ Konfigurasi alarm suppress hanya untuk Supervisor+ (RBAC alarm) ✓ Alarm integrity monitoring via Nozomi (deteksi perubahan config alarm) ✓ Training security awareness 4 jam untuk semua operator ✓ Tabletop exercise: simulasi insiden "operator menemukan setpoint diubah" HASIL TERUKUR: Attack Surface : Turun 78% (layanan tidak perlu, USB, remote tools dihilangkan) Audit Coverage : Dari 0% → 100% semua aksi operator tercatat Incident Detection: MTTD dari "tidak ada" → estimasi <15 menit untuk event kritis Compliance : 82% kontrol NIST SP 800-82 terpenuhi (sebelumnya 21%)