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

cybersecurity

Akıllı Ampuller, Aptal Şifreler: IoT Dünyasının Arka Kapıları

IoT cihazlarının hayatımıza girmesiyle birlikte saldırı yüzeyinin nasıl genişlediğini ve bu 'küçük' kutuların nasıl devasa güvenlik açıklarına dönüştüğünü sahadan tecrübelerle inceliyoruz.

Sedat Özdemir
· 4 dk okuma

Yıllar önce, 'akıllı ev' furyasına ilk kapıldığım zamanlarda aldığım o meşhur akıllı prizi hiç unutmam. Ofise gelip telefonumdan evdeki kahve makinesini çalıştırmak muazzam bir lükstü. Bir akşam, 'Bakalım bizim ufaklık dış dünyaya ne fısıldıyor?' diyerek Wireshark’ı açtım. Gördüğüm manzara karşısında kahvem boğazımda kaldı. Bizim 'akıllı' priz, evdeki Wi-Fi şifresini düz metin (cleartext) olarak Çin’deki bir sunucuya 'log' niyetine gönderiyordu. Kendi evime Truva atını kendi ellerimle, üstelik 20 dolara almıştım. O gün anladım ki, IoT dünyasında 'S' harfi 'Security'yi temsil ediyor ve ne yazık ki IoT kelimesinde 'S' harfi yok.

Nesnelerin İnterneti mi, Nesnelerin Zafiyeti mi?

Selam millet, bugün biraz 'akıllı' diye tabir edilen ama güvenlik söz konusu olduğunda sınıfta kalan o küçük kutuları konuşacağız. İş yerinde, evde, fabrikada her yerdeler. Ama bir Red Teamer gözüyle baktığımızda, bu cihazlar bizim için kurumsal ağa sızmak için kullanılan en konforlu atlama tahtalarıdır. Neden mi? Çünkü kimse bir IP kamerasının veya akıllı termostatın 'root' şifresini değiştirmez.

Bir sızma testinde (testCompany bünyesinde yaptığımız bir simülasyonu düşünün), günlerce uğraşıp kıramadığımız o 'hardened' sunuculara, dinlenme odasındaki akıllı buzdolabının üzerindeki zafiyet barındıran bir kütüphane sayesinde girdiğimizi bilirim. Komik değil mi? Milyon dolarlık güvenlik yatırımı, bir buzdolabı yüzünden çöp oluyor.

İlk Adım: Keşif ve Shodan Gerçeği

IoT güvenliğinde ilk kural şudur: Eğer internete bağlıysa, birileri onu çoktan bulmuştur. Shodan veya Censys gibi platformlar, bu cihazların 'Google’ı' gibidir. Bir saldırganın ilk yaptığı iş, hedef şirketin IP bloklarında standart dışı portları aramaktır.

Örneğin, MQTT (Message Queuing Telemetry Transport) protokolü IoT dünyasının dilidir. 1883 portunda çalışan bu protokol, şifreleme (TLS) kullanılmadığında tam bir felakettir.

Bir keşif taraması komutu genelde şuna benzer (tabii ki 127.0.0.1 üzerinden örneklendiriyorum):

# Hedef ağdaki MQTT portlarını ve versiyonlarını tarayalım
nmap -sV -p 1883,8883 --script mqtt-subscribe 127.0.0.1

Eğer sistem yöneticisi 'Aman canım, alt tarafı sıcaklık verisi gidiyor' diyerek kimlik doğrulamayı kapattıysa, tüm ağ trafiğini şu basit komutla dinleyebiliriz:

# Herhangi bir kimlik doğrulama istemeyen broker'dan tüm kanalları dinle
mosquitto_sub -h example.com -t "#" -v

Buradan akan veriler arasında bazen cihazların konfigürasyon dosyaları, hatta bazen admin paneli giriş bilgileri bile çıkabiliyor.

Firmware Analizi: Kutunun İçine Bakmak

IoT cihazları genelde kısıtlı kaynaklara sahip olduğu için, yazılımcılar güvenlikten feragat ederler. Cihazın fiziksel erişimine sahipsek veya internetten firmware dosyasını indirebiliyorsak, işin rengi değişir. binwalk bu noktada bizim en yakın dostumuz.

# Firmware içindeki dosya sistemini ayıklayalım
binwalk -e firmware_v1_0.bin

Dosya sistemini açtığımızda karşımıza çıkan /etc/shadow dosyası genellikle 'hardcoded' şifrelerle doludur. Üreticinin 'servis ekipleri için' bıraktığı o gizli arka kapı, bizim için ana giriş kapısı olur.

Şu tarz bir pseudo-kod ile cihazın giriş mekanizmasını simüle edebiliriz:

# Defanged exploit mantığı
import requests

def check_backdoor(ip):
    # Üreticinin unuttuğu o meşhur 'superadmin' girişi
    payload = {"user": "vendor_admin", "pass": "12345_magic_string"}
    r = requests.post(f"http://{ip}/login", data=payload)
    if "welcome" in r.text:
        print("Buldum! Cihaz kontrolü bizde.")

check_backdoor("127.0.0.1")

Peki, Nasıl Savunacağız? (Defensive Mindset)

Buraya kadar hep 'nasıl kırarız' kısmına değindik ama asıl amacımız savunma. Red Team tecrübesiyle söylüyorum; en iyi savunma, 'güvenmiyorum' prensibidir.

  1. Ağ Segmentasyonu (VLAN): IoT cihazlarını ana iş ağınızdan ayırın. Akıllı ampul ile domain controller aynı ağda olmamalı. Ampul hacklense bile saldırganın gidebileceği yer sınırlı kalsın.
  2. UPnP'yi Kapatın: Cihazların kendi başlarına firewall'da delik açmasına izin vermeyin.
  3. Default Şifreler Ölümcüldür: Kurulum anında şifre değiştirmeyi zorunlu kılmayan hiçbir cihazı ağınıza sokmayın.
  4. MQTT TLS: Veri paketlerini şifreleyin. mosquitto kullanıyorsanız mutlaka sertifika tabanlı kimlik doğrulama yapın.
  5. Gereksiz Servisleri Budayın: Telnet açık mı? Kapat. SSH şifreyle mi giriliyor? Anahtar (key-based) kullanıma geç.

Gerçek Hayattan Bir Senaryo: 'Akıllı' Güvenlik Kamerası

Bir keresinde bir kurumun 'çok güvenli' fiziksel bölgesindeki kameraları inceliyorduk. Kameraların web arayüzü günceldi ama fark ettik ki kamera, RTSP yayını için şifre istemiyordu. Sadece portu (554) bilmeniz yeterliydi. VLC Player'ı açıp rtsp://127.0.0.1:554/live.sdp yazdığımızda, güvenlik odasındaki personelin ne izlediğini biz de izlemeye başladık. Bilgi toplama (reconnaissance) aşamasında bir saldırgan için bundan daha kıymetli bir şey olamaz; fiziksel nöbet değişim saatleri, kapı şifreleri, her şey ekrandaydı.

Kapanış Notu

IoT dünyası, hızla büyüyen ama güvenliğin 'sonradan eklenen bir özellik' (afterthought) olarak görüldüğü vahşi bir batı gibi. Bir Red Teamer olarak tavsiyem; aldığınız o şirin cihazın bir gün size karşı kullanılabileceğini asla unutmayın. Cihaz 'akıllı' olabilir ama siz ondan daha akıllı olun.

Unutmayın, en güvenli IoT cihazı, kutusundan hiç çıkarılmamış ve internete hiç bağlanmamış olandır. Ama madem kullanıyoruz, o zaman kapıları sıkı kapatalım.

Bir sonraki yazıda, bu cihazların içindeki mikrodenetleyicilere (MCU) nasıl daha derinden dalarız onu konuşuruz belki. O zamana kadar, paketleriniz şifreli, loglarınız temiz kalsın!

İlgili yazılar