İçeriğe atla
Yazılar

Firmware Analizi 101: binwalk ile Bir İmajın İçini Açmak

Elinde ham bir firmware imajı var. İçinde bootloader, kernel, dosya sistemi ve belki de sabit kodlanmış sırlar gizli. binwalk, o kutuyu açan ilk anahtar.

3 dk okuma
firmware.bin içindeki bootloader, kernel, root dosya sistemi ve NVRAM katmanlarını ve binwalk’ın bu imajdan çıkardığı U-Boot, LZMA, Linux kernel ve SquashFS ofsetlerini gösteren şema.
Bir firmware imajı katmanlıdır; binwalk imza taraması ve entropi ile bu katmanları ayrıştırır.
İçindekiler
  1. Bir firmware imajı neye benzer?
  2. binwalk nasıl çalışır?
  3. Root dosya sistemine ulaşmak
  4. Entropi tuzağı: şifreli firmware
  5. Adli bütünlük ve tekrarlanabilirlik
  6. Adli bilişim açısı
  7. Kapanış

Firmware analizinde en heyecan verici an, ham bir .bin dosyasının içindekini ilk kez görmektir. Önceki yazılarda o imajı nasıl çıkaracağını (kart okuyucu, UART, chip-off, flash dump) konuştuk. Şimdi elimizde imaj var ve soru şu: içinde ne var?

Bu yazı, gömülü analizin giriş aracı olan binwalk üzerinden bir firmware imajının nasıl katman katman açıldığını, nelere dikkat edileceğini ve ilk bulguların nerede aranacağını anlatıyor.

Bir firmware imajı neye benzer?

Tipik bir Linux tabanlı gömülü firmware imajı katmanlı bir yapıdır:

  • Bootloader (ör. U-Boot) — cihazı başlatan ilk kod
  • Kernel — genelde sıkıştırılmış bir Linux çekirdeği
  • Root dosya sistemi — SquashFS, JFFS2, UBIFS gibi gömülü formatlarda
  • NVRAM / config — cihaza özel ayarlar, bazen kimlik bilgileri

Bu katmanlar tek bir ikili dosyada arka arkaya durur. binwalk’ın işi, bu bloğu tarayıp “burada bir SquashFS başlıyor, şurada bir LZMA sıkıştırma var” diyerek haritayı çıkarmaktır.

binwalk nasıl çalışır?

binwalk iki temel şey yapar: imza taraması ve entropi analizi.

İmza taraması, dosya içinde bilinen “sihirli bayt” desenlerini arar — her dosya formatının kendine has bir başlangıç imzası vardır. Entropi analizi ise verinin rastgeleliğini ölçer; yüksek entropi (~1.0’a yakın) sıkıştırma ya da şifreleme işareti, düşük entropi ise düz veri/kod işaretidir.

# 1) Haritayı çıkar: içeride hangi formatlar var?
binwalk firmware.bin
# 2) Entropiye bak: şifreli/sıkıştırılmış bölgeler nerede?
binwalk -E firmware.bin
# 3) Çıkarılabilenleri ayıkla (dikkatli - çok dosya üretebilir)
binwalk -e firmware.bin

İlk komutun çıktısı genelde şuna benzer bir harita verir: ofset, tespit edilen tür ve açıklama. Bu haritadan bootloader’ın, kernel’in ve dosya sisteminin nerede başladığını okuyabilirsin.

Root dosya sistemine ulaşmak

Asıl hazine genelde root dosya sistemindedir. binwalk -e ile çıkardıysa, açılan klasörde tanıdık bir Linux dizin yapısı görürsün. Bakılacak yerler:

  • /etc/ — servis yapılandırmaları, başlangıç betikleri, sabit ayarlar
  • /etc/passwd, /etc/shadow — kullanıcılar, parola hash’leri
  • /etc/ssl/, anahtar dosyaları — sertifikalar, özel anahtarlar
  • /bin/, /sbin/, uygulama binary’leri — tersine mühendislik hedefleri
  • /www/ ya da web arayüzü dosyaları — çoğu zaman zafiyet yuvası

Sabit kodlanmış sırların (parolalar, API anahtarları, sertifikalar) avlanmasını serinin ayrı bir yazısında derinlemesine ele alıyorum.

Entropi tuzağı: şifreli firmware

Bazen binwalk -E çıktısında imaj boyunca sabit, yüksek bir entropi görürsün. Bu genelde iki şeyden birini gösterir: ya tüm imaj sıkıştırılmış, ya da şifreli. Şifreliyse binwalk katmanları ayrıştıramaz; farklı bir yola geçmek gerekir (anahtarı bulmak, çalışan bellekten açılmış hâlini yakalamak, ya da secure boot zincirini analiz etmek). Bu, modern cihazlarda giderek daha sık karşılaşılan bir durum ve savunma açısından iyi bir işaret.

Adli bütünlük ve tekrarlanabilirlik

  • Analizi her zaman imajın kopyası üzerinde yap; orijinali ve hash’ini sakla.
  • Kullandığın binwalk sürümünü ve komutları not al — tekrarlanabilirlik adli açıdan önemlidir.
  • binwalk -e bazen çok sayıda parçalı dosya üretir; çıkardığın şeyi anlayarak ilerle, körü körüne değil.

Adli bilişim açısı

binwalk bir başlangıç aracıdır; asıl adli değer, çıkardığın katmanları anlamlandırmakta. Firmware analizi bir cihazın “ne yaptığını” ve “hangi zafiyeti taşıdığını” ortaya koyar; bir olay incelemesinde ise cihazın kurcalanıp kurcalanmadığını (ör. beklenmedik bir binary, değiştirilmiş bir config) gösterir. Ham dökümden anlamlı delile giden yol tam da buradan, imajın içini açmaktan geçer.

Kapanış

binwalk, firmware analizinin “merhaba dünya”sıdır — basit ama her ciddi gömülü incelemenin başladığı yer. Bir imajı katmanlarına ayırmak, root dosya sistemine ulaşmak ve orada ne olduğunu okumak; gömülü güvenliğin ve adli bilişimin kesiştiği en pratik beceridir. Sıradaki adım, o dosya sisteminde gizlenen sırları avlamak.


Bu içerik eğitim amaçlıdır; yalnızca sahibi olduğun ya da yasal izinli firmware üzerinde çalış.