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ş:
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).