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

ics

Vanalar Kendi Kendine Döndüğünde: Endüstriyel Sistemlerin Karanlık Odaları

Fabrika sahasındaki o sessiz PLC'lerin aslında ne kadar gürültülü saldırılara açık olduğunu ve Modbus paketlerinin içinde saklanan tehlikeleri konuştuğumuz teknik bir derin dalış.

Sedat Özdemir
· 4 dk okuma

Saat gece yarısını çoktan geçmiş, 02:14'ü gösteriyordu. Telefonumun o kendine has 'kritik hata' tonuyla uyanmam saniyeler sürmedi. Ekranda 'testCompany' bünyesindeki bir üretim bandının basınç değerlerinin anormal yükseldiğine dair bir alarm yanıp sönüyordu. İşin garibi, fiziksel bir arıza görünmüyordu; sensörler her şeyin yolunda olduğunu söylüyordu ama mekanik emniyet valfleri çoktan devreye girmişti. Sahaya ulaştığımızda, kontrol odasındaki monitörlerde her şey yeşil görünürken, gerçek dünyada makinelerin 'can çekiştiğini' gördük. Birileri PLC (Programmable Logic Controller) mantığını manipüle etmiş, SCADA ekranına ise her şeyin yolunda olduğu illüzyonunu beslemişti. İşte o an, endüstriyel güvenliğin (OT) sadece 'firewall kur geç' işi olmadığını bir kez daha iliklerime kadar hissettim.

Hava Boşluğu (Air-Gap) Efsanesi ve Acı Gerçekler

Siber güvenlik dünyasında en büyük yalanlardan biri 'Sistemimiz internete bağlı değil, o yüzden güvendeyiz' cümlesidir. Endüstriyel kontrol sistemleri (ICS) dünyasında buna 'air-gap' diyoruz. Ancak gerçek şu ki; o hava boşluğu, bir teknisyenin cebindeki virüslü bir USB bellek, uzaktan bakım için açılan geçici bir VPN tüneli veya unutulmuş bir 4G modem kadar incedir. Stuxnet'i hatırlayın, hiçbir şey internete bağlı değildi ama bir şekilde o santrifüjler parçalandı.

OT dünyası, IT dünyasına benzemez. IT'de 'Gizlilik' (Confidentiality) ön plandadır; OT'de ise 'Kullanılabilirlik' (Availability) ve 'Güvenlik' (Safety) her şeydir. Bir sunucuyu resetlemek IT'de 5 dakika kesinti demektir, bir fabrikayı resetlemek ise milyonlarca dolar zarar ve potansiyel can kaybı demektir.

Protokollerin Masumiyeti: Modbus Üzerinden Bir Saldırı Anatomisi

Endüstriyel sistemlerin çoğu, 1970'lerden kalma protokolleri kullanır. Mesela Modbus. Bu protokolün en büyük sorunu, içinde herhangi bir kimlik doğrulama (authentication) veya şifreleme (encryption) barındırmamasıdır. Eğer ağa sızdıysanız, PLC'ye 'Şu vanayı aç' derseniz, PLC size 'Sen kimsin?' diye sormaz; sadece 'Emredersiniz' der.

Şimdi, zararsızlaştırılmış bir senaryo üzerinden bir saldırganın Modbus TCP paketini nasıl manipüle edebileceğine bakalım. Diyelim ki hedefimiz 127.0.0.1 (defanged IP) üzerindeki bir PLC'nin 10. register'ındaki değeri değiştirmek.

# Gerekli kütüphane: pymodbus (Eğitim amaçlı simülasyon)
# Bu kod sadece yerel test ortamında (127.0.0.1) çalışacak şekilde tasarlanmıştır.

from pymodbus.client import ModbusTcpClient
import logging

# Hedef PLC (Simüle edilmiş)
PLC_IP = '127.0.0.1'
PORT = 502

def manipulate_industrial_process():
    client = ModbusTcpClient(PLC_IP, port=PORT)
    connection = client.connect()
    
    if connection:
        print(f"[+] Bağlantı başarılı: {PLC_IP}")
        
        # Kritik bir basınç değerini tutan register (Örn: Register 10)
        # Normal değeri 50 olan bir şeyi 1000'e çekmek sistemi kilitleyebilir.
        target_register = 10
        unsafe_value = 1000
        
        print(f"[*] Register {target_register} değeri {unsafe_value} olarak değiştiriliyor...")
        client.write_register(target_register, unsafe_value)
        
        client.close()
    else:
        print("[-] PLC'ye ulaşılamadı.")

# manipulate_industrial_process()

Yukarıdaki basit Python betiği, hiçbir şifre sormadan doğrudan endüstriyel sürece müdahale edebilir. Saldırgan bunu bir döngüye sokarsa (Man-in-the-Middle), operatör ekranı düzeltse bile saniyeler içinde değer eski haline (saldırganın istediği değere) döner.

Man-in-the-Middle: Operatörü Kör Etmek

O gece yaşadığımız krizdeki en büyük sorun, operatörlerin ekranında her şeyin normal görünmesiydi. Buna 'False Data Injection' deniyor. Saldırgan, PLC ile SCADA (izleme ekranı) arasına girerek, PLC'den gelen 'basınç 1000' verisini yakalayıp ekrana 'basınç 50' olarak yansıtıyordu.

Bunu ağ seviyesinde ARP Poisoning ile yaparlar. Bir defanged örnek üzerinden ağdaki trafiği nasıl görebileceklerini anlayalım:

# DİKKAT: Bu komutlar sadece laboratuvar ortamında analiz amaçlıdır.
# Ağ trafiğini dinlemek için kullanılan basit bir tcpdump filtresi

tcpdump -i eth0 -n port 502 -A

Eğer trafiği şifrelemiyorsanız (ki Modbus şifrelemez), tüm proses verisi plaintext olarak saldırganın elindedir. Operatör 'Vana Kapalı' görürken, aslında vana sonuna kadar açık olabilir.

Peki, Ne Yapmalı? (Defensive Hardening)

Endüstriyel sistemleri korumak, 'Next-Gen Firewall' alıp kutusundan çıkarmaktan fazlasını gerektirir. Sahadaki tecrübelerime dayanarak şu adımları kritik görüyorum:

  1. Ağ Segmentasyonu (Purdue Modeli): Kurumsal ağ (IT) ile üretim ağını (OT) birbirinden tamamen izole edin. Arada mutlaka bir 'Industrial DMZ' (IDMZ) bulunmalı. Hiçbir ofis bilgisayarı doğrudan bir PLC'ye 'ping' atamamalı.
  2. DPI (Deep Packet Inspection) Destekli Firewallar: Standart bir firewall 'Port 502 açık mı?' diye bakar. Endüstriyel bir firewall ise 'Bu Modbus paketinin içindeki yazma komutu normal mi?' diye bakmalıdır. Eğer normalde saniyede 1 paket gidiyorken saniyede 100 paket gitmeye başlarsa bunu bloklamalıdır.
  3. Log Analizi ve SIEM: PLC'lerin log üretme kabiliyeti kısıtlıdır ama switchler ve gatewayler yalan söylemez. 'Unusual traffic' tespiti için OT odaklı SIEM çözümleri hayat kurtarır.
  4. Fiziksel Güvenlik: USB portlarını fiziksel olarak kapatın. Sahadaki panoların kilitli olduğundan emin olun. Siber saldırı her zaman kablo üzerinden gelmez, bazen bir 'insider' eliyle fabrikaya girer.

O geceki krizi, ağdaki anormal trafiği fark eden eski usul bir network mühendisinin 'Bu switch neden bu kadar ısınıyor?' diye sormasıyla çözmüştük. Saldırgan, PLC register'larını o kadar hızlı manipüle ediyordu ki, switch paket yükünden dolayı darboğaz yaşıyordu.

Unutmayın, OT güvenliği sadece bitler ve baytlar değil, aynı zamanda dönen çarklar ve akan kimyasallardır. Siber dünyadaki bir hata, gerçek dünyada bir patlamaya dönüşebilir. Güvende kalın, ama en çok da 'bağlı' kalırken dikkatli olun.

İlgili yazılar