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

ics

Vanilyalı Dondurma Değil, Endüstriyel Felaket: Air-Gap Yalanı ve PLC’lerin Korunmasız Dünyası

Fabrikalarımızı internetten kopardık, artık güvendeyiz diyenlerin uykusunu kaçıracak bir yazı. Endüstriyel kontrol sistemlerindeki (ICS) gerçek tehlikeler, Modbus'un zayıf karnı ve neden sadece 'gözlemlemek' yetmiyor, konuşuyoruz.

Sedat Özdemir
· 4 dk okuma

Selam millet, bugün biraz canınızı sıkmaya, o çok güvendiğiniz endüstriyel kalelerinizin surlarında aslında ne kadar büyük delikler olduğunu göstermeye geldim. Konumuz: Endüstriyel Kontrol Sistemleri (ICS) ve Operasyonel Teknoloji (OT) güvenliği.

Önce şu meşhur 'Air-Gap' (Hava Boşluğu) meselesiyle başlayalım. Sektörde kiminle konuşsam, 'Sedat abi, bizim sistemler internete kapalı, izole ağdayız, bize bir şey olmaz' diyor. Bak güzel kardeşim, bu siber güvenlik dünyasındaki en büyük ve en tehlikeli yalanlardan biri. Herkes 'Air-Gap' övüyor ama o kutsal izole ağa, üzerinde binbir çeşit malware barındıran o paslı bakım laptopunun bağlandığı an, senin tüm savunman bir iskambil kulesi gibi yıkılıyor. Prod ortamında 'Air-Gap'e güvenmek, sadece kendini kandırmaktır; çünkü veri akışı bir şekilde (USB, seri port, bakım tünelleri) her zaman devam eder.

Neden OT Dünyası Bu Kadar 'Kırılgan'?

IT dünyasında biz yamalarla, EDR'larla, karmaşık yetkilendirme mekanizmalarıyla uğraşırken; OT dünyasında zaman 1990’larda durmuş gibi. Bir PLC (Programmable Logic Controller) ile konuşurken kullanılan protokollerin çoğu (Modbus, S7Comm, BACnet) tasarlanırken 'güvenlik' kelimesi sözlükte bile yoktu. Bu protokollerin ortak özelliği nedir biliyor musunuz? Güven (Trust). Bir paket gelirse, PLC onun 'doğru' yerden geldiğine inanır. Kimlik doğrulama yok, şifreleme yok, bütünlük kontrolü yok.

Şimdi size bir Red Teamer gözüyle, bir Modbus paketinin ne kadar 'masum' ama bir o kadar da 'ölümcül' olabileceğini göstereyim.

Modbus Üzerinden Hayali Bir Felaket Senaryosu

Modbus/TCP, endüstriyel dünyanın ortak dilidir. TCP 502 portundan konuşur. Eğer bir şekilde (mesela bir VPN sızıntısı veya o meşhur bakım laptopu üzerinden) bu ağa sızdıysam, özel bir yazılıma bile ihtiyacım yok. Python ve pymodbus kütüphanesi ile sistemin canına okuyabilirim.

İşte bir saldırganın (veya bizim sızma testlerinde zafiyeti göstermek için kullandığımız) basit bir register manipülasyonu kodu:

# EĞİTİM AMAÇLI: Bir PLC üzerindeki sıcaklık değerini manipüle eden sahte kod
from pymodbus.client import ModbusTcpClient

# Hedef PLC (Zararsızlaştırılmış IP)
target_plc_ip = "127.0.0.1"
client = ModbusTcpClient(target_plc_ip, port=502)

def check_and_manipulate():
    if client.connect():
        # Holding Register 100'ü oku (Örn: Kazan Sıcaklığı)
        result = client.read_holding_registers(100, 1)
        if not result.isError():
            current_temp = result.registers[0]
            print(f"[*] Mevcut Sıcaklık: {current_temp} Derece")
            
            # Kritik eşiği aşacak şekilde değeri değiştir (Hardening testi)
            # Gerçek bir saldırıda bu, soğutma sistemini kapatabilir
            new_temp = 9999 
            client.write_register(100, new_temp)
            print(f"[!] Kritik müdahale: Sıcaklık {new_temp} olarak set edildi!")
        client.close()
    else:
        print("[-] PLC bağlantısı başarısız.")

# check_and_manipulate()

Yukarıdaki kod ne yapıyor? Hiçbir şifre sormadan, hiçbir 'Sen kimsin?' demeden çat diye PLC'nin register değerini değiştiriyor. Eğer bu register bir türbinin devir sayısını veya bir kazanın basınç valfini kontrol ediyorsa, fiziksel dünyada ne olacağını hayal edin. İşte biz buna 'Cyber-to-Physical' saldırı diyoruz.

'Sadece İzlemek' Yetmez

Şimdi birçok güvenlik yöneticisi diyecek ki: 'Ama bizim X markalı pasif izleme cihazımız var, trafiği görüyoruz.' Harika! Evinize bir hırsız girdiğinde, sadece kameradan onun gümüşleri çalışını izlemek sizi ne kadar korursa, pasif izleme de o kadar korur. OT ağlarında alarm yandığında genelde her şey için çok geçtir.

Gerçek bir savunma için 'Deep Packet Inspection' (DPI) yapabilen endüstriyel firewall'lara ihtiyacımız var. Sadece '502 portuna izin ver' demek yetmez; 'Bu IP adresinden gelen paket SADECE şu register'ı OKUYABİLİR, asla YAZAMAZ' diyebilmek zorundayız.

testCompany'de Ne Yapıyoruz? (Hardening Stratejileri)

Endüstriyel güvenliği sağlamak için sahada uyguladığımız birkaç 'geek' tavsiyesini buraya bırakayım:

  1. Mikro-Segmentasyon: OT ağını tek bir düz (flat) ağ olarak bırakmayın. Her üretim bandını, her PLC grubunu kendi VLAN'ına hapsedin. Aradaki trafiği sadece 'Industrial Protocol Aware' firewall'lar üzerinden geçirin.
  2. Unidirection Gateway (Data Diode): Veriyi OT'den IT'ye (izleme için) aktarırken fiziksel olarak tek yönlü veri iletimi sağlayan cihazlar kullanın. Yani veri dışarı çıksın ama içeri hiçbir komut giremesin.
  3. Endpoint Hardening: PLC'lerin önündeki HMI (Human Machine Interface) panelleri genelde güncellenmemiş Windows XP veya Windows 7'lerdir. Buralardaki USB portlarını epoksi ile kapatmak bile bir siber güvenlik önlemidir şaka yapmıyorum.
  4. Logging (Ama Gerçekten): PLC loglarını SIEM'e aktarmak zordur ama imkansız değildir. Sıradışı bir Write_Single_Register komutu geldiğinde alarm üretmiyorsanız, o ağı yönetmiyorsunuzdur.

Tehdit Aktörleri Artık PLC Programlıyor

Bakın, artık karşımızda sadece 'dosya şifreleyen' fidye yazılımları yok. Industroyer veya TRITON gibi zararlı yazılımlar doğrudan PLC'nin lojiğini değiştirmek için tasarlanıyor. Yani saldırgan sadece sistemi kapatmıyor, sistemi 'yanlış çalışmaya' zorluyor. Operatör ekranında her şey normal görünürken arka tarafta bir şeyler eriyor olabilir.

Bu yüzden, 'Bizim fabrikaya kim sızacak abi?' demeyi bırakın. Shodan'a girip 'port:502' diye arattığınızda karşınıza çıkan binlerce korumasız cihazdan biri olmamanız için savunma derinliği (defense-in-depth) şart.

OT güvenliği, IT güvenliğinden daha streslidir çünkü burada 'Mavi Ekran' almazsınız; burada dumanlar çıkar, makineler bozulur veya en kötüsü insanlar zarar görür. O yüzden o 'Air-Gap' masallarına inanmayı bırakıp, protokol seviyesinde ne olup bittiğine odaklanma vakti geldi.

Siz siz olun, kabloyu çekmenin güvenliğin sadece başlangıcı (ve bazen bir yanılsaması) olduğunu unutmayın. Güvenli kalın!

İlgili yazılar