Skip to content

Breaking Band: Reverse Engineering and Exploiting the Shannon Baseband

Golde ve Komaromy'nin, Samsung'un Shannon baseband firmware'ını (Galaxy S6) reverse-engineer edip modemin protocol stack'ine karşı over-the-air bir remote-code-execution exploit'i kuran REcon 2016 çalışması.

Mechanism

Neden çalışır — baseband, devasa bir parsing yüzeyine sahip, network'e bakan, privilege'li bir RTOS'tur

Bir akıllı telefonun baseband'i, application processor'dan izole, proprietary bir real-time OS çalıştıran ayrı bir işlemcide (Samsung'un "Shannon" / Exynos Modem) koşar. Over the air erişilebilirdir: herhangi bir kullanıcı kimlik doğrulamasından çok önce, saldırganın etkileyebileceği cellular-protocol mesajlarını (RRC, NAS ve alt katmanlar) parse eder. Güvenlik açısından ilgili invariant, bu parsing kodunun memory-safe olmasıdır — ve tarihsel olarak değildi.

"Breaking Band"in gösterdiği bug sınıfı, kötü niyetli bir base station'dan erişilebilen klasik baseband message parsing'de memory corruption'dır (elle yazılmış C protocol handler'larında stack/heap overflow'lar). Baseband RTOS'unun zayıf ya da hiç exploit mitigation'ı olmadığından (ASLR/DEP eşdeğeri yok, düz privilege modeli, araştırmacıların reverse-engineer ettiği bir MPU/MMU yapılandırması), tek bir parser overflow modemin kontrolünü verir. Bu önemlidir çünkü baseband kod yürütmesi OS'un altında durur: çağrıları/SMS'leri yakalayabilir ve bazı tasarımlarda shared-memory arayüzleri üzerinden application processor'a doğru pivot edebilir.

Araştırmanın katkısı o bug'a giden path'tir: proprietary firmware container'ını anlamak, RTOS'u yükleyip reverse etmek, güvenlik mimarisini haritalamak, attack surface'i numaralandırmak ve nihayet OTA RCE için bir zafiyeti silahlandırmak.

Walkthrough

Public shannonRE toolkit'i reverse-engineering adımlarını yeniden üretir (yalnızca defansif RE — exploit'in kendisi sevk edilmez).

Firmware container'ını TOC parçalarına unpack et:

$ python unpack_modem.py modem.bin
# "Split up a modem image into its TOC parts (Boot, Main, etc)"
# Shannon images use a Table-of-Contents (TOC) header; sam.bt is the 010 Editor
# template describing that TOC header format.

MAIN image'ini IDA'ya yükle ve fonksiyonları geri kurtar:

# sam_modem_ramdump.py  -> IDA loader for the Shannon MAIN image (ARM32)
# def_arm32_functions.py -> auto-find functions by scanning for ARM prologues
# taskscan.py / stackscan.py -> enumerate RTOS tasks and stacks from a ramdump

Analiz sırasında canlı modem belleğini incele / onunla etkileş:

# memdump.py, readmem.py, writemem.py -> dump and read/write modem memory

REcon 2016 konuşmasında tarif edilen üst düzey exploitation path'i (kavramsal):

1. Reverse the TOC firmware format and load MAIN into IDA (above).
2. Reverse the Shannon RTOS and its security/memory architecture (tasks, MPU/MMU).
3. Map the OTA attack surface: cellular-protocol message handlers.
4. Find a memory-corruption bug in a message parser reachable pre-auth.
5. Trigger it from a controlled (fake) base station to gain RCE on the modem.

Kontrollü bir radyo ortamı gerektirir; defansif çerçeve

OTA baseband exploitation, RF-izoleli bir laboratuvarda rogue bir base station'a (örn. kontrollü bir eNodeB) ve hedefin tanımlayıcılarına ihtiyaç duyar. Bu kayıt, turnkey bir saldırıyı değil, defans/araştırmacılar için açıklanmış metodolojiyi ve shannonRE tooling'ini belgeler.

Detection

  • Firmware analizi / fuzzing. Bu soydan inşa edilmiş emulation tabanlı baseband fuzzer'larını uygula — Emulating Samsung's Baseband for Security Testing, FirmWire ve BaseSAFE — sevkiyat öncesi parser memory-corruption'ı yüzeye çıkarmak için.
  • Cihaz üzerinde anomaliler. Baseband crash'leri/reset'leri, beklenmedik modem ramdump'ları ya da yetkisiz hücrelere bağlantılar (zayıf RAT'lere downgrade, IMSI-catcher davranışı) operasyonel göstergelerdir.

Mitigation

Parser'ları ve RTOS'u sertleştir; modemi izole et

  • Belirli parser bug'larını düzelten vendor firmware güncellemeleri; Samsung'un Shannon hattı sertleştirme aldı ve birçok sonraki CVE (örn. Exynos modem düzeltmeleri) bu araştırma alanından türedi.
  • Baseband exploit mitigation'ları ekle: stack canary'ler, task'lar arasında zorunlu bir MPU/MMU ayrımı ve bounds-check edilmiş message decoder'lar.
  • Modem ↔ AP shared-memory arayüzlerini kısıtla ki baseband RCE application processor'a kolayca pivot edemesin.

Ayrıca bkz.: Baseband attacks: remote exploitation of memory corruptions, BaseSpec, Exynos modem Internet-to-baseband RCE (CVE-2023-24033).

References