telnet 192.168.1.100 komutunu girdiğinde karşına çıkan 'Login:' istemine admin:admin yazıp içeri girdiğin an, o cihazın tüm karizması yerle bir olur. Eğer cihaz bir kamera ise artık senin gözündür, bir PLC ise artık o fabrikanın valfleri senin elindedir. IoT dünyasında 'güvenlik', genellikle pazarlama broşürlerinde kalan bir kelimeden ibaret.
Plastik Kutuların İçindeki Karanlık
Sahada yaptığımız testlerde, özellikle testCompany bünyesinde karşılaştığımız IoT cihazlarının ortak bir sorunu var: Cihazı üreten firma, donanımı tasarlarken harcadığı eforun yüzde birini bile yazılım güvenliğine harcamıyor. Karşımızda genellikle kernel sürümü 2.6'da kalmış, üzerinde gereksiz ne kadar servis varsa (Telnet, FTP, HTTP, UPnP) açık gelen bir yapı oluyor.
Red Team operasyonlarında bir kurumsal ağa sızmak için bazen günlerce uğraşırız ama koridordaki o 'akıllı' kahve makinesi veya toplantı odasındaki IP telefon, bize içeriye giden altın anahtarı sunuverir. Neden mi? Çünkü kimse o cihazın şifresini değiştirmez, kimse o cihazın firmware güncellemesini takip etmez.
MQTT: Herkesin Duyduğu Fısıltılar
IoT cihazlarının birbiriyle konuşmak için kullandığı MQTT (Message Queuing Telemetry Transport) protokolü, Red Teamer'lar için tam bir açık büfe. Eğer broker (merkezi sunucu) düzgün konfigüre edilmemişse ve kimlik doğrulama zayıfsa (ya da hiç yoksa), ağa dahil olan herkes tüm trafiği dinleyebilir.
Şu basit komutu bir düşün:
# Tüm başlıklara (topics) abone ol ve veriyi oku
mosquitto_sub -h 127.0.0.1 -p 1883 -t "#" -v
Bu komutu çalıştırdığında ekrandan akan veriler arasında testCompany/sub-station-01/power_status: ON gibi kritik bilgiler veya daha kötüsü, cihazların yönetim arayüzlerine ait session tokenları geçebilir. MQTT trafiği TLS ile şifrelenmediği sürece, o ağda 'packet sniffing' yapan herkes cihazların ne konuştuğunu, ne zaman aktif olduğunu ve hangi komutları aldığını görebilir.
Firmware Forensics: İçeride Ne Var?
Bir IoT cihazını hacklemek istiyorsan, önce onun beynine, yani firmware'ine inmen gerekir. Çoğu üretici, firmware dosyalarını kendi sitelerinde 'destek' bölümünde açıkça paylaşır. İndirdiğin o .bin dosyasını binwalk ile açtığında, karşında koca bir dosya sistemi bulursun.
# Firmware içindeki dosya sistemini ayıkla
binwalk -e firmware_v1.0.bin
# Ayıklanan klasöre gir ve hassas dosyaları ara
cd _firmware_v1.0.bin.extracted/squashfs-root/
grep -r "password" .
grep -r "key" .
Burada neler mi buluyoruz? Hardcoded API anahtarları, cihazın fabrikasyon root şifreleri (genellikle hashlenmiş olsa da kırması kolaydır), arka kapı (backdoor) olarak bırakılmış test scriptleri ve bazen de başka sistemlere bağlanmak için kullanılan sertifikalar. Yani saldırganın cihazı fiziksel olarak ele geçirmesine bile gerek yok; internetten indirdiği bir dosya üzerinden cihazın tüm zaafiyet haritasını çıkarabilir.
Donanıma Dokunmak: UART ve JTAG
Eğer cihazın yazılım arayüzü çok kapalıysa, o zaman tornavidayı eline alma vakti gelmiş demektir. Cihazın kasasını açtığında anakart üzerinde genellikle dört tane yan yana dizilmiş pin görürsün: VCC, GND, TX, RX. İşte bu UART (Universal Asynchronous Receiver-Transmitter) portudur.
Bir USB-to-TTL dönüştürücü ile bu pinlere bağlandığında, cihazın boot sürecini izleyebilir ve çoğu zaman şifresiz bir 'root shell' ekranına düşebilirsin.
# UART üzerinden gelen log örneği
Booting Linux...
Mounting /dev/sda1 on /etc...
Starting telnetd...
testCompany-IoT login: root (No password required)
# whoami
root
Bu aşamadan sonra cihaz artık senin emrindedir. Cihazın içine bir busybox veya socat atarak, o cihazı tüm iç ağa sızmak için bir 'pivot point' (atlama tahtası) olarak kullanabilirsin.
Savunma Hattını Nasıl Kurarız?
IoT güvenliği sadece karmaşık şifreler koymaktan ibaret değildir. Sahadan edindiğimiz tecrübelere dayanarak, şu adımları atmak hayat kurtarır:
- Network Segmentation (Ağ Bölümleme): IoT cihazlarını asla ve asla kurumsal ana ağınızda (Domain Controller'ın, dosya sunucularının olduğu ağ) barındırmayın. Onlar için izole bir VLAN oluşturun ve bu VLAN'dan ana ağa erişimi sıkı firewall kurallarıyla kapatın.
- Gereksiz Servisleri Kapatın: Bir akıllı termostatın neden Telnet servisine ihtiyacı olsun? Cihazın üzerindeki portları tarayın (
nmap -sC -sV 127.0.0.1) ve gereksiz olanları kapatın veya cihazın ayarlarından devre dışı bırakın. - Default Şifreleri Öldürün: İlk kurulum anında şifre değiştirmeyi zorunlu kılmayan hiçbir cihazı networke almayın.
admin:1234kombinasyonu hala dünyadaki en büyük zafiyetlerden biri. - MQTT ve HTTP Güvenliği: Veri trafiğini mutlaka TLS ile şifreleyin. Broker üzerinde 'Access Control List' (ACL) kullanarak, hangi cihazın hangi konuya (topic) yazabileceğini veya okuyabileceğini kısıtlayın.
- Düzenli Firmware Analizi: Aldığınız cihazların firmware'lerini güvenlik ekiplerine verin. İçinde gizli anahtarlar veya bilinen zafiyetler barındıran kütüphaneler var mı kontrol etsinler.
Unutmayın, o 'zararsız' görünen kahve makinesi, bir sabah tüm şirketin verilerinin şifrelenmesine giden yolu açan ilk domino taşı olabilir. IoT dünyasında paranoya bir tercih değil, hayatta kalma mekanizmasıdır.
