Breaking Samsung's ARM TrustZone (Kinibi monitor-mode code execution)¶
Compromise edilmiş bir trustlet'ten başlayıp Kinibi secure OS üzerinden Samsung cihazlarda EL3/monitor-mode code execution'a kadar uzanan zincirleme bir privilege escalation — yetersiz validate edilen trustlet command handler'ları suistimal ediliyor.
Mechanism¶
Sınır neden kırılıyor
ARM TrustZone privilege'ı katmanlar: normal world → secure userland (trustlets) → secure OS (Kinibi / Trustonic microkernel) → secure monitor (EL3, ARM Trusted Firmware). Trustlet'ler güvenilmeyen normal-world verisini MCP/SMC fastcall command handler'ları üzerinden işler, dolayısıyla "the attack surface of the whole trustlet amounts to that of the command handlers" — ki bu handler'lar input'u yetersiz validate eder. Her katman bir alttakine güvenir, bu yüzden bir trustlet handler'ındaki memory-corruption bug'ı, privilege merdiveninde yukarı doğru yürüyen bir zincirin ilk halkasıdır: trustlet → secure driver → Kinibi kernel → EL3. Her adımda ihlal edilen invariant şudur: daha yüksek privilege'lı bir secure component, hizmet ettiği katmandan gelen data/IPC ile subvert edilebilir olmamalıdır.
Walkthrough¶
Black Hat USA 2019 (Quarkslab) araştırmasından kavramsal escalation zinciri; örnekleyici amaçlı, silahlandırılmış bir exploit değil.
-
Trustlet compromise. Bir trustlet'in command handler'ındaki bir memory-corruption bug'ını exploit et (normal world'den crafted command buffer'ları göndererek erişilebilir).
-
Secure-driver compromise. Kontrol edilen trustlet'ten, daha yüksek privilege'lı bir secure driver'daki IPC handler'larını exploit et (bu driver ek SVC'ler ve memory-mapping primitive'leri sunar).
-
Kinibi kernel compromise. SMC handler'larına ve IPC/process lifecycle'ını yöneten Run-Time Manager (RTM)'a sahip olan Kinibi microkernel'ine pivot et.
-
EL3 / monitor-mode execution. ATF runtime-service struct'ları üzerinden register edilen SMC handler'larını (OEN ile referans verilen) modifiye ederek monitor mode (EL3)'te — SoC üzerindeki en yüksek privilege — code execution elde et.
Detection¶
- Audit: Normal-world verisini katı length/type validation olmadan kopyalayan veya dereference eden trustlet/secure-driver command handler'ları birincil sink'tir; fastcall interface'lerini fuzz et.
- Integrity: ATF runtime-service / SMC handler tablolarının integrity'sini izle — EL3 dispatch struct'larındaki beklenmedik bir modifikasyon güçlü bir sinyaldir.
Mitigation¶
- Patch: Sorunlar Samsung'a raporlandı; ortaya çıkan firmware fix'lerini uygula (trustlet/driver handler'larında input validation, sağlamlaştırılmış IPC).
- Architecture: Trustlet attack surface'ini azalt ve secure world içinde privilege separation uygula (cf. REZONE), böylece tek bir trustlet bug'ı EL3'e ulaşamaz.