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

industrial-security

Fabrikadaki Sessiz Katil: OT Sistemlerinde 'Force Coil' Komutunun Soğuk Yüzü

Endüstriyel kontrol sistemleri (ICS/OT) dünyasında güvenliğin neden sadece bir firewall meselesi olmadığını, Modbus protokolünün zayıflıklarından Purdue modeline kadar teknik bir perspektifle inceliyoruz.

Sedat Özdemir
· 4 dk okuma

modbus_client --host 127.0.0.1 --port 502 --write-coil 1001 1 --address 10

Bu satırı bir terminale yapıştırıp enter tuşuna bastığında, eğer karşı taraftaki PLC (Programmable Logic Controller) herhangi bir kimlik doğrulama mekanizmasına sahip değilse -ki endüstriyel dünyada %90 ihtimalle yoktur- sahadaki fiziksel bir valfi açtın, bir motoru durdurdun veya bir fırının sıcaklık limitlerini devre dışı bıraktın demektir. IT dünyasında bir sunucuyu hacklediğinde veri sızdırırsın, OT (Operational Technology) dünyasında bir sistemi hacklediğinde ise bir şeyler fiziksel olarak patlayabilir, yanabilir veya bir şehrin suyu kesilebilir. İşin şakası yok; burada 'mavi ekran' demek, fiziksel bir felaket demek.

Hava Boşluğu (Air-Gap) Masalı

Yıllardır sahadaki mühendislerden duyduğumuz o meşhur savunma mekanizması: "Bizim sistemler internete kapalı, hava boşluğu var." Hadi ama beyler, birbirimizi kandırmayalım. Modern dünyada o 'hava boşluğu' artık bir efsaneden ibaret. Bir yazılım güncellemesi için içeri sokulan USB bellek, bakım için VPN ile bağlanan dış servis sağlayıcı veya sadece sahadaki veriyi 'dashboard'da görmek isteyen yöneticinin kurdurduğu o masum köprü... Bir şekilde o IT ve OT ağları birbirine temas ediyor. TestCompany bünyesinde yaptığımız simülasyonlarda gördük ki, en 'izole' denilen sistemlerde bile yanlış yapılandırılmış bir dual-homed makine (iki ağa birden bağlı bilgisayar) tüm fabrikanın anahtarını bize teslim edebiliyor.

Modbus/TCP: Güvenliğin Unutulduğu Protokol

1979 yılında geliştirilen Modbus protokolü, bugün hala endüstriyel tesislerin kalbinde atıyor. Sorun ne mi? Bu protokol tasarlandığında 'güvenlik' diye bir kavram lügatlarında yoktu. Kimlik doğrulama yok, şifreleme yok, yetkilendirme yok. Paketi yakalayan herkes, PLC'ye emir verebilir.

Örnek bir Modbus TCP paket yapısına bakalım (Zararsızlaştırılmış/Pseudo):

[Transaction ID: 2 bytes][Protocol ID: 2 bytes][Length: 2 bytes][Unit ID: 1 byte][Function Code: 1 byte][Data: N bytes]

Buradaki Function Code kısmına 0x05 (Write Single Coil) yazdığında ve Data kısmına ilgili register adresini girdiğinde, PLC sana "Sen kimsin?" diye sormaz. Sadece emri uygular. Red Team operasyonlarında en sevdiğimiz (ve aslında en korkutucu olan) nokta budur. Sahadaki bir HMI (Human Machine Interface) paneline sızdığında, aslında fiziksel dünyaya dokunma yetkisi kazanmış olursun.

Purdue Modeli Neden Hala Kritik?

OT güvenliğinden bahsedip Purdue Modelinden bahsetmemek olmaz. Bu modeli bilmeyen birinin endüstriyel ağda güvenlik yapması imkansız. Ağ katmanlarını Level 0'dan (fiziksel sensörler) Level 5'e (kurumsal ağ) kadar böleriz. Bizim amacımız, Level 4 (IT) ile Level 3 (Üretim Operasyonları) arasına aşılması zor, 'Industrial DMZ' dediğimiz bir bariyer dikmektir.

Eğer bir mühendis, ofisindeki bilgisayardan direkt olarak sahadaki PLC'nin 502 portuna erişebiliyorsa, orada büyük bir mimari hata vardır. Arada mutlaka bir jump-server, sıkılaştırılmış bir VPN ve en önemlisi 'Deep Packet Inspection' (DPI) yapabilen bir firewall olmalı. DPI burada neden kritik? Çünkü standart bir firewall 502 portuna izin verir, ama DPI yapabilen bir cihaz o porttan geçen trafiğin 'Sadece veri oku (Read-Only)' mu yoksa 'Sistemi durdur (Stop CPU)' mu olduğunu anlar ve zararlı komutu bloklar.

PLC Logic Manipülasyonu: Görünmez Saldırı

Saldırganlar artık sadece register değerlerini değiştirmiyor. Daha sofistike bir yöntem olan 'Logic Manipulation' kullanıyorlar. PLC'nin içindeki çalışma mantığını (Ladder Logic) değiştiriyorlar. Şöyle düşün: Sensör sıcaklığı 100 derece olarak okuyor ama saldırgan araya bir kod parçası ekleyerek HMI ekranına her zaman '40 derece' bilgisini gönderiyor. Operatör her şeyin normal olduğunu sanırken, fırın aslında erime noktasına ulaşıyor.

Bunu tespit etmek, standart IT araçlarıyla imkansızdır. Burada devreye 'Asset Inventory' ve 'Configuration Monitoring' araçları giriyor. PLC kodunda 1 byte'lık bir değişiklik bile olsa alarm çalmalı.

Savunma Reçetesi (Hardening)

Sadece 'firewall koyduk, bitti' demekle bu iş olmuyor. İşte sahadan birkaç teknik öneri:

  1. Gereksiz Servisleri Kapat: Birçok PLC üzerinde default olarak açık gelen HTTP, FTP veya Telnet gibi servisler vardır. Bunlar saldırgan için giriş kapısıdır. Kullanmıyorsan kapat.
  2. Fiziksel Güvenlik: PLC'nin üzerindeki 'Run/Stop' anahtarı fiziksel bir güvenlik önlemidir. Eğer anahtar 'Run' modunda kilitliyse, ağ üzerinden kod yüklenmesini engelleyen modeller mevcuttur.
  3. Network Segmentation: IT ve OT ağlarını VLAN'lar ile değil, fiziksel firewall'lar ve endüstriyel protokolleri anlayan (Modbus, S7Comm, BACnet) IDS/IPS sistemleri ile ayır.
  4. Default Şifreler: Hala sahada 'admin/admin' veya '1234' şifreli HMI panelleri var. Şaka yapmıyorum. İlk işiniz bunları değiştirmek olsun.

Son Söz Yerine

Siber güvenlikte 'mutlak güven' yoktur, hele ki OT dünyasında bu durum daha da sancılıdır. Eskiden 'çalışıyorsa dokunma' mantığı endüstriyel tesislerin mottosuydu. Ancak artık o sistemler internetin vahşi dünyasına bir şekilde dokunuyor. Red Team olarak biz içeri girdiğimizde, sadece bir IP adresini değil, bir fabrikanın üretim hattını hedef alıyoruz. Bu yüzden, savunma tarafındaki arkadaşların 'network' katmanından çok 'protokol' ve 'proses' katmanına odaklanması gerekiyor.

Endüstriyel ağlarda siber güvenlik, sadece bir IT projesi değil, bir iş sürekliliği ve çalışan güvenliği meselesidir. Bir dahaki sefere o 'izole' dediğiniz ağa bir laptop bağlarken iki kez düşünün. O taktığınız ethernet kablosu, aslında fabrikanın sinir sistemine uzanan bir damar yolu olabilir.

İlgili yazılar