İçeriğe geç
Sedat Özdemir
Yazılar

ics-security

Vanalar Kendi Kendine Dönmeye Başladığında: Endüstriyel Sistemlerde 'Air-Gap' Masalı ve Acı Gerçekler

Endüstriyel kontrol sistemlerinde (ICS) güvenlik, sadece bir firewall koyup 'burası kapalı devre' demekle bitmiyor. Fabrika sahasındaki o tozlu PLC'lerin dünyasına giriyoruz.

Sedat Özdemir
· 4 dk okuma

Fabrika bandı durduğunda o soğuk terin sırtından aşağı süzülüşünü mü, yoksa 'hava boşluğu' (air-gap) dediğin o izole sistemde tanımadığın bir IP adresi gördüğündeki o ani kalp çarpıntısını mı daha çok seviyorsun?

Selam dostum, bugün biraz tozlu, gürültülü ve bir o kadar da tehlikeli bir bölgeye; operasyonel teknoloji (OT) ve endüstriyel kontrol sistemlerinin (ICS) kalbine giriyoruz. Bizim Red Team dünyasında 'kırılması en zevkli ama en riskli' yer burasıdır. Neden mi? Çünkü burada yapacağın küçük bir 'syntax' hatası, sadece bir sunucunun çökmesine değil, gerçek dünyada devasa bir kazanın yaşanmasına veya milyon dolarlık bir üretim bandının hurdaya dönmesine neden olabilir.

O Meşhur 'Air-Gap' Yalanı

Hadi itiraf edelim. Hepimiz bir noktada 'Abi o sistem internete kapalı, oraya kimse giremez' cümlesini duyduk veya kurduk. Ama biliyorsun ki, o sistem hiçbir zaman gerçekten kapalı değil. Bakım için içeri sokulan 'temiz' olduğu iddia edilen USB bellekler, müteahhit firmanın PLC'ye bağlanmak için kullandığı ve içinde üç tane RAT barındıran o eski laptop, ya da panonun arkasına gizlice takılmış 'uzaktan teknik destek' amaçlı 4G modemler...

Siber güvenlikte 'Hava Boşluğu' (Air-Gap) artık teknik bir terimden çok, bir pazarlama sloganı haline geldi. Gerçek hayatta, IT (Bilgi Teknolojileri) ve OT (Operasyonel Teknoloji) dünyaları artık birbirine göbekten bağlı. ERP sistemin üretim bandından veri almıyorsa, o fabrikayı yönetemezsin. Ve işte o bağlantı noktası, bizim için giriş bileti demek.

PLC'lerin Naif Dünyası: Modbus Neden Bu Kadar 'Kibar'?

Endüstriyel protokollerin çoğu (Modbus, Profinet, EtherNet/IP) tasarlandıkları dönemde güvenlik kaygısı güdülerek değil, 'çalışsın yeter' mantığıyla üretildi. Mesela Modbus TCP... Bu protokolde kimlik doğrulama (authentication) diye bir kavram yok. Eğer ağın içine sızdıysan ve PLC'ye (Programmable Logic Controller) ulaşabiliyorsan, ona her şeyi yaptırabilirsin.

Bir düşün; PLC'ye 'Şu vanayı aç' diyorsun ve o da 'Tabii efendim, hemen açıyorum' diyor. Sorgulamıyor, kimsin demiyor, yetkin var mı bakmıyor. İşte bu naiflik, bizim 'testCompany' laboratuvarlarımızda en çok simüle ettiğimiz zafiyetlerden biri.

Aşağıda, bir PLC üzerindeki dijital çıkışı (coil) değiştirmeye yönelik basit ve zararsızlaştırılmış bir Python örneği bıraktım. Bu kodun amacı, protokolün ne kadar savunmasız olduğunu göstermek:

# GÜVENLİK UYARISI: Bu kod sadece eğitim amaçlıdır.
# Zararsızlaştırılmış (Defanged) Modbus Yazma Örneği

from pymodbus.client import ModbusTcpClient
import logging

# Hedef PLC IP adresi (Simülasyon için localhost)
PLC_IP = '127.0.0.1' 
PORT = 502

def check_and_manipulate_valve(address, status):
    # Bağlantı denemesi
    client = ModbusTcpClient(PLC_IP, port=PORT)
    
    try:
        if client.connect():
            print(f"[+] {PLC_IP} adresindeki PLC'ye bağlanıldı.")
            
            # Mevcut durumu oku
            current_val = client.read_coils(address, 1)
            print(f"[*] Vana (Address: {address}) Mevcut Durum: {current_val.bits[0]}")
            
            # Durumu değiştir (Örn: Kapalıysa Aç)
            # Gerçek bir OT ortamında bu işlem felakete yol açabilir!
            # client.write_coil(address, status) 
            print(f"[!] Savunma Testi: Adres {address} için {status} komutu gönderildi (Simüle edildi).")
            
            client.close()
        else:
            print("[-] Bağlantı başarısız.")
    except Exception as e:
        print(f"[!] Hata: {str(e)}")

# Adres 0001'deki vanayı 'True' (Açık) yapmaya çalışalım
check_and_manipulate_valve(1, True)

Neden Nmap ile Sahaya Dalmamalısın?

Bir Red Teamer olarak IT ağında nmap -A -T4 çalıştırmak günlük bir iş olabilir. Ama bir fabrikada, 1990'lardan kalma bir RTU (Remote Terminal Unit) cihazına bu kadar agresif bir paket yağmuru gönderirsen, cihazın TCP stack'i şişer ve cihaz 'donar'. O cihaz donduğunda, hattaki basıncı kontrol eden sensör verisi gelmez olur. Sonrası... Pek hoş senaryolar değil.

OT güvenliğinde 'Passive Discovery' (Pasif Keşif) her şeydir. Ağı dinle, paketleri analiz et (Wireshark dostundur), ama asla cihazlara 'bağırma'. Onlara fısıldaman gerekir.

Savunma Hattını Nasıl Kurarız?

'Peki Sedat, her şey bu kadar kırılgansa nasıl hayatta kalıyoruz?' dediğini duyar gibiyim. Çözüm, o meşhur Purdue Modelini tozlu raflardan indirip doğru düzgün uygulamaktan geçiyor.

  1. Mikro-Segmentasyon: IT ve OT ağını sadece bir firewall ile değil, katı kuralları olan bir DMZ (Demilitarized Zone) ile ayır. RDP trafiği fabrikadan ofise ya da tam tersi yöne asla doğrudan akmamalı.
  2. DPI (Deep Packet Inspection): Standart firewall'lar sadece IP ve port bakar. OT dünyasında bize 'Modbus trafiği geçiyor mu?' sorusu yetmez. Bize 'Bu IP adresi, PLC'ye neden WRITE komutu gönderiyor?' sorusunun cevabı lazım. Bu yüzden endüstriyel protokolleri anlayan IPS/IDS sistemleri şart.
  3. Endpoint Hardening: HMI (Human Machine Interface) panelleri genellikle Windows tabanlıdır. Ve genelde 'aman bozulmasın' diye güncellenmezler. Bu cihazları USB girişlerine kapatmak ve sadece gerekli servislerin çalışmasını sağlamak (Hardening) hayati önem taşır.
  4. Honey-Potlar: Fabrika ağına yerleştirilecek birkaç sahte PLC (Conpot gibi araçlarla), saldırganın gerçek hedeflere ulaşmadan önce kendini ele vermesini sağlar.

Gerçek Hayattan Bir Kesit

Bir keresinde bir enerji tesisinde sızma testi yaparken, sistem odasındaki bir mühendisin 'Dışarıdan erişim yok' dediği sisteme, duvardaki akıllı TV'nin bağlı olduğu misafir Wi-Fi ağı üzerinden ulaştığımızı fark ettik. TV'nin bağlı olduğu switch, fabrikadaki kritik SCADA ağıyla bir şekilde 'konuşuyordu'. Küçük bir konfigürasyon hatası, tüm fabrikayı kucağımıza bırakmıştı. İşte bu yüzden, güvenliği bir ürün değil, bir süreç olarak görmeliyiz.

ICS dünyası şakaya gelmez. Eğer bu alanda kendini geliştirmek istiyorsan, sadece Kali Linux komutlarını değil, aynı zamanda elektrik devrelerini, vana mantığını ve o tozlu makinelerin ruhunu da anlaman gerekiyor.

Güvende kalın, ama en önemlisi sistemlerinizi 'gerçekten' izole edin ya da her an izleyin. Bir dahaki sefere vanaların neden kendi kendine döndüğünü merak etmek istemezsin, değil mi?

İlgili yazılar