Skip to content

Baseband Attacks: Remote Exploitation of Memory Corruptions in Cellular Protocol Stacks

Weinmann'ın WOOT 2012 paper'ı, sahte (rogue) bir GSM baz istasyonunun baseband processor'ün protocol stack'inde memory corruption tetikleyebileceğini ve application OS'un altında çalışan kod inject edebileceğini gösteriyor.

Mechanism

Note

Bir telefonun baseband'i, kendi real-time OS'unu ve tam bir cellular protocol stack'ini (GSM/UMTS layer 1–3) çalıştıran ayrı bir processor'dür. İçeriği network tarafından dikte edilen radio-link mesajlarını parse eder — ve handset, tarihsel olarak network'e güvenmiştir. İşte flaw tam da bu varsayım: 2G'nin GSM authentication'ı tek yönlüdür (network telefonu authenticate eder, tersi değil), dolayısıyla serving cell'i taklit edebilen herkes baseband'in parser'larına doğrudan keyfi layer-3 mesajları besleyebilir.

Protocol stack'ler, neredeyse hiç exploit mitigation'ı olmayan bir RTOS üzerinde çalışan, memory-unsafe C ile yazılmıştı. Weinmann yaygın olarak deploy edilmiş iki stack'i analiz etti ve malformed signaling mesajlarının klasik memory corruption'lara — unchecked memory copy'ler, use-after-free ve stack buffer overflow'lar — yol açtığını gösterdi; bir attacker bunları baseband processor'ün kendisinde keyfi kod inject edip çalıştırmak için kullanabilir. Aşılan trust boundary radio-to-baseband'dir: air interface üzerindeki remote, unauthenticated bir attacker, application processor'ün altında — çağrıları izleyebileceği, veriyi intercept edebileceği veya pivot yapabileceği bir yerde — code execution elde eder.

Kavramsal olarak neden çalışır: protocol parser'lar değişken uzunluklu information element'leri (TMSI/IMSI gibi identity'ler, capability list'leri vb.) işlemek zorundadır. Bir length field bounds-checking yapılmadan güvenilirse, fixed-size bir buffer'a yapılan copy taşar. Baseband'de ASLR/DEP'in yokluğu ve network'ün mesaj içeriği üzerindeki kontrolü ile birleştiğinde, tek bir crafted mesaj remote code-execution primitive'ine dönüşür.

Walkthrough

İncelenen iki stack Qualcomm baseband'i (HTC Dream / G1'de bulunan) ve Infineon X-Gold baseband'i (o dönemin iPhone'unda bulunan) idi.

Rogue cell'i kurmak. Saldırı, stabil bir clock modülüyle birlikte OpenBTS (open-source GSM access-point yazılımı) çalıştıran ucuz software-defined radio donanımını kullanır. Sahte baz istasyonu, hedef telefonun camp edeceği bir cell yayınlar; oradan itibaren attacker kurbana gönderilen tüm layer-3 signaling'i kontrol eder.

Bug sınıfları. İki stack genelinde Weinmann şunları raporladı:

  • Qualcomm cellular baseband processor'ünde bir stack buffer overflow.
  • iPhone üzerinde exploit edilebilen, identity / TMSI ile ilgili message handling üzerinden ulaşılan Infineon (X-Gold) baseband'inde bir overflow bug'ı.
  • Ek unchecked memory copy'ler ve bir use-after-free durumu.

Corruption'dan koda. Bir parser bir buffer'ı taşıracak hale getirildikten sonra, attacker baseband RTOS task'ındaki kaydedilmiş state'i overwrite eder ve execution'ı inject edilmiş shellcode'a yönlendirir (baseband'in bunu durduracak W^X / ASLR'si yoktu). Paper, cihazı yeniden yapılandıran payload'lar gösteriyor — örneğin auto-answer fonksiyonunu sessizce etkinleştirerek attacker'ın bir telefonu uzaktan dinleme cihazına çevirebilmesi gibi.

Attack chain (conceptual)
  1. SDR donanımı üzerinde OpenBTS'i ayağa kaldır; hedefin tercih ettiği bir cell yayınla.
  2. Kurban handset'in rogue cell'e attach olmasına izin ver.
  3. Length/identity field'ları baseband parser'ındaki fixed bir buffer'ı taşıran crafted layer-3 signaling mesajları inject et.
  4. Overflow bir task return address'ini overwrite eder; execution baseband context'inde çalışan attacker shellcode'una yönlendirilir.
  5. Shellcode cihazı yeniden yapılandırır (örn. auto-answer'ı etkinleştirir).

Warning

Yalnızca yetkili test için: licensed spectrum üzerinde bir GSM transmitter (OpenBTS/SDR) çalıştırmak, çoğu yargı bölgesinde lisans veya shielded bir RF chamber olmadan yasa dışıdır. Bu 2012 paper'ı 2G-dönemi stack'leri belgeliyor; modern cihazlar mitigation ekliyor, ancak mimari ders — baseband'in network'e aşırı güvenmesi — temel çıkarım olarak kalıyor.

Mitigation

Paper'dan çıkan savunmalar: air interface üzerinde mutual authentication ve integrity protection (sonraki 3G/4G/5G'de iyileştirildi), 2G fallback'i devre dışı bırakmak, baseband parser'larını bounds check'lerle hardening yapmak ve exploit mitigation'ları (ASLR, W^X, stack canary) eklemek; ayrıca compromised bir modem'in application memory'sine ulaşamaması için AP/baseband isolation.

References