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

industrial-security

PLC'yi Durduran O Paket: OT Dünyasında 'Air-Gap' Masalları ve Gerçekler

Endüstriyel kontrol sistemleri (ICS) dünyasında siber güvenlik, sadece bir firewall kuralı eklemekten çok daha fazlasıdır. Modbus paketlerinden Purdue modeline, OT dünyasının karanlık ve fiziksel köşelerine iniyoruz.

Sedat Özdemir
· 4 dk okuma

Modbus TCP paketindeki 'Function Code 05' (Write Single Coil) isteğini Wireshark üzerinde yakaladığında, eğer bu yetkisiz bir IP adresinden geliyorsa, sahadaki o fiziksel valfin veya motorun artık senin kontrolünde olmadığını anlaman saniyeler sürer. OT (Operational Technology) dünyasında 'Error 404' almazsın; bir şeyler ya patlar, ya durur ya da olması gerekenden çok daha hızlı döner.

Beyler, bugün biraz 'IT güvenliği' konfor alanımızdan çıkıp, gürültülü makinelerin, yağ kokusunun ve 20 yıldır güncellenmemiş Windows XP'lerin hüküm sürdüğü endüstriyel sahalara giriyoruz. testCompany bünyesinde yaptığımız simülasyonlarda gördük ki; bir PLC'yi (Programmable Logic Controller) manipüle etmek, bir web uygulamasında SQL Injection bulmaktan çok daha yıkıcı sonuçlar doğurabiliyor.

'Air-Gap' Sadece Bir Teselli İkramiyesidir

Yıllarca endüstriyel sistemlerin internete bağlı olmadığı, dolayısıyla 'hacklenemez' olduğu masalı anlatıldı. 'Hava boşluğu' (Air-gap) dediğimiz şey, artık günümüzde sadece bir illüzyon. Bir teknisyenin sahaya getirdiği o 'içinde müzik olan' USB bellek, bir bakım mühendisinin PLC'ye bağlanmak için kullandığı ve akşam evde dizi izlediği laptopu veya sahadaki sensör verilerini buluta aktarmak için 'çaktırmadan' kurulan o 4G modem... Hepsi o meşhur hava boşluğunu delik deşik ediyor.

Endüstriyel sistemlerin en büyük sorunu 'Insecure by Design' olmalarıdır. Yani bu protokoller (Modbus, Profinet, S7comm, EtherNet/IP) tasarlanırken, 'Acaba biri buraya sahte paket gönderir mi?' diye düşünülmedi. 1970'lerde Modbus protokolü geliştirilirken öncelik güvenlik değil, verinin o incecik kablolardan karşı tarafa hatasız ulaşmasıydı. Bugün hala aynı protokolü kullanıyoruz ve üzerine sadece bir TCP katmanı giydirdik.

Bir PLC Nasıl 'Konuşturulur'?

Bir Red Teamer gözüyle bakınca, IT ağından OT ağına sızdıktan sonra işler çok 'lineer' ilerler. Şifreleme yok, yetkilendirme mekanizması çoğu zaman yok, handshake süreci ise çocuk oyuncağı.

Örneğin, standart bir Modbus paket yapısını ele alalım. Zararsızlaştırılmış (defanged) bir senaryoda, bir coil'i (röleyi) kapatmak için gönderilecek olan o kritik paket şuna benzer:

# Modbus TCP - Write Single Coil (Zararsızlaştırılmış Örnek)
Transaction ID: 0x0001
Protocol ID: 0x0000
Length: 0x0006
Unit ID: 0x01
Function Code: 05 (Write Single Coil)
Reference Number: 0x0064 (Vana ID'si)
Data: 0x0000 (Kapatma komutu - 0xFF00 açar)

Eğer elinde pymodbus gibi kütüphaneler varsa, bu işlemi yapmak için dahi olmana gerek yok. İşte test ortamlarında (testCompany labları gibi) kullandığımız o basit ama tehlikeli Python mantığı:

# EĞİTİM AMAÇLI: Bir PLC register'ına veri yazma denemesi
from pymodbus.client import ModbusTcpClient

def check_industrial_valve(target_ip):
    # Zararsızlaştırılmış hedef: 127.0.0.1 veya internal lab IP
    client = ModbusTcpClient(target_ip, port=502)
    if client.connect():
        print(f"[+] Bağlantı başarılı: {target_ip}")
        # 100 numaralı coil'i (röleyi) kapatıyoruz
        # Gerçek hayatta bu bir su pompasını durdurabilir.
        result = client.write_coil(100, False)
        print(f"[!] Komut gönderildi: {result}")
        client.close()
    else:
        print("[-] PLC'ye ulaşılamadı.")

# check_industrial_valve('127.0.0.1')

Bu kodun çalıştığı bir dünyada, saldırganın tek yapması gereken IP taraması yapıp 502 portunu bulmaktır. 'Authentication' nerede? Yok. 'Encryption' nerede? Hak getire.

Purdue Modeli Öldü mü?

OT güvenliğinin kutsal kitabı olan Purdue Modeli, sistemleri seviyelere (Level 0'dan Level 5'e) ayırır. Teoriye göre, Level 0 (Sensörler/Aktüatörler) ile Level 5 (Enterprise Network) arasında aşılmaz duvarlar olmalıdır. Ancak modern üretim tesislerinde 'Akıllı Fabrikalar' (Industry 4.0) yüzünden bu seviyeler birbirine girdi.

Artık ERP sistemin (Level 4), sahadaki üretim hattından (Level 1) anlık veri çekmek istiyor. Bu durum, IT tarafındaki bir fidye yazılımının (ransomware) kolayca OT tarafına sıçrayıp tüm fabrikayı durdurmasına yol açıyor. Colonial Pipeline olayını hatırlayın; adamlar sadece faturalama sistemleri (IT) hacklendiği için boru hattını (OT) kapatmak zorunda kaldılar çünkü ne kadar yakıt sattıklarını ölçemiyorlardı.

Peki Ne Yapacağız? (Defensive Mindset)

Sadece 'nmap' atarak OT güvenliği sağlanmaz. Hatta sakın ha, eski bir PLC'ye agresif bir nmap -sV taraması atmayın; cihazın network stack'i bunu kaldıramayıp kilitlenebilir ve üretimi durdurabilirsiniz. (Evet, başımıza geldi, tecrübe konuşuyor).

  1. Deep Packet Inspection (DPI): Sıradan bir firewall '502 portuna izin ver' der ve geçer. Ama endüstriyel bir firewall, o paketin içine bakıp 'Bu IP adresi bu PLC'ye neden WRITE komutu gönderiyor? Sadece READ yapabilmeliydi!' diyebilmeli.
  2. Pasif İzleme: OT ağında asla aktif tarama yapmayın (zorunlu olmadıkça). Switch'lerden 'span port' alıp trafiği pasif olarak dinleyen ve anormal bir komut geçtiğinde alarm üreten sistemler (IDS) hayat kurtarır.
  3. Network Segmentation (Gerçek Anlamda): IT ve OT arasına sadece bir firewall koymak yetmez. 'Demilitarized Zone' (DMZ) katmanları oluşturulmalı ve veriler 'Data Diode' gibi tek yönlü donanımlarla akmalıdır.
  4. Endpoint Hardening: O sahadaki HMI (Human Machine Interface) ekranları var ya... Onların çoğu üzerinde internet explorer çalışan standart Windows'lar. USB portlarını fiziksel olarak kapatmak, gereksiz servisleri devre dışı bırakmak 'temel' değil 'hayati' önemdedir.

Gece Rahat Uyumanın Yolu

Eğer bir gün sabahın 4'ünde telefonun çalıyorsa ve 'Sahadaki basınç valfleri rastgele açılıp kapanıyor' deniyorsa, o an log analizi yapmaya başlamak için çok geçtir. OT güvenliği, o paket ağa girmeden önce kurgulanması gereken bir mimaridir.

Endüstriyel sahalarda Red Team çalışmaları yaparken biz 'sistemi kırmayı' değil, 'fiziksel süreci anlamayı' hedefleriz. Çünkü bir hacker için bir IP adresi sadece bir hedeftir, ama bir mühendis için o IP adresi bir şehrin suyunu sağlayan pompadır.

Unutmayın, IT ağında veri çalınır, OT ağında can yanar. Güvenli kalın, ama daha önemlisi; o PLC'lerin register'larına sahip çıkın.

İlgili yazılar