SoK: Understanding the Prevailing Security Vulnerabilities in TrustZone-assisted TEE Systems¶
Arm TrustZone TEE'lerini (Qualcomm, Trustonic, Huawei, Nvidia, Linaro) ele geçiren tekrar eden bug sınıflarının sistematizasyonu ve secure world'ün over-privilege'inin neden küçük bug'ları topyekûn ele geçirmeye çevirdiği.
Mechanism¶
Note
Bu, tek bir CVE değil, bir systematization-of-knowledge (SoK) makalesidir (Cerdeira, Santos, Fonseca & Pinto, IEEE S&P 2020). "Mechanism"i, TrustZone-assisted Trusted Execution Environment'ların (TEE'ler) neden düşmeye devam ettiğine dair bir taxonomy'dir; public belgelenmiş exploit'lerden ve sevk edilmiş TEE firmware'inin reverse engineering'inden türetilmiştir.
Makalenin vurguladığı merkezî invariant: TrustZone yazılımı platformdaki en privileged yazılımdır. Secure monitor EL3'te, trusted OS ise S-EL1'de çalışır ve normal-world (Android/Linux) kernel'i dahil tüm physical memory'ye erişimi vardır. Onu kısıtlayacak daha üst bir otorite yoktur. Sonuç olarak, herhangi bir trusted application (TA)'da veya trusted OS'ta tek bir memory-safety bug'ı, full-system compromise'e yükselir — blast radius tüm cihazdır.
Taxonomy, root cause'ları üç kaynakta gruplar:
- Architectural — trust model'in kendisi. TEE over-privileged'dır; TA'lar arasında zayıf veya yok isolation; secure monitor ve trusted OS tek bir fault domain'i paylaşır; tasarım kararları normal world'ü trust boundary'nin karşısına ham pointer/parametre vermeye zorlar.
- Implementation (software) — tekrar eden memory-safety sınıfları: non-secure world'den geçirilen pointer ve parametrelerin validation'ının eksik olması (bir time-of-check-time-of-use-tarzı trust gap'i), eksik bounds check'leri, heap-buffer-overflow, stack overflow'lar, integer sorunları ve TA'lar içinde type confusion. Kritik olarak, secure world sıklıkla normal-world kernel'inin yıllardır sahip olduğu exploit mitigation'larından yoksundur (ASLR, stack canary'leri, guard page'ler, W^X).
- Hardware — mimarinin opak varsaydığı secure/non-secure sınırını aşan microarchitectural ve fiziksel saldırılar (cache side-channel'ları, fault injection / voltage glitching).
Warning
TA'lar attacker-controlled input'u normal world onu zaten sağladıktan sonra validate ettiği için, re-validation olmadan kabul edilen bir non-secure-world pointer'ı secure memory'ye işaret edecek hâle getirilebilir — cihazdaki en privileged context'e bir confused-deputy write.
Walkthrough¶
(High-level, makalenin temsilî kategorilerinden çıkarılmıştır — somut örnekler için bkz. trust-issues-exploiting-trustzone-tees ve Samsung çalışmaları.)
- Cross-boundary pointer re-validate edilmiyor. Bir TA, normal world'den bir shared-memory pointer/length alır. Buffer'ın non-secure memory'de olduğunu kontrol etmeden dereference eder ya da kopyalarsa, attacker onu secure RAM'e yönlendirir.
- Bir TA'da eksik bounds check. Bir length field'ı güvenilir kabul edilir ve trusted OS heap'i içinde bir heap ya da stack overflow üretir — heap-buffer-overflow ile aynı bug sınıfı, ama exploitation'ı yavaşlatacak canary veya ASLR'nin olmadığı bir context'te.
- Tırmanılacak mitigation yok. Stack canary'leri veya randomize layout olmadan, bir return address ya da function pointer'ın deterministik overwrite'ı S-EL1'de code execution verir.
- Privilege amplification. Trusted OS'ta çalışan kod, normal-world kernel belleğini map'leyip yeniden yazabilir (ve bazı tasarımlarda EL3'e ulaşabilir), bir TA bug'ını Android kernel compromise'ine çevirir — olağan saldırı yönünün tersi.
SoK'nun sıraladığı temsilî bug kategorileri
- SMC / shared-memory sınırında normal-world pointer / parametre validation başarısızlıkları.
- Yaygın olarak dağıtılmış TA'larda buffer overflow'lar ve integer bug'ları.
- Trusted OS'ta yok olan exploit mitigation'ları.
- Bir TA'nın bir başkasına ya da trusted OS'a ulaşmasına izin veren zayıf isolation.
- Secure-world secret'larını sızdıran microarchitectural side-channel'lar.
Detection¶
- Vendor advisory takibi. Dağıtılmış TEE'yi (QSEE/Kinibi/Beanpod/OP-TEE) vendor TA/trustlet patch bültenleriyle eşle; SoK aynı sınıfların vendor'lar arasında tekrar ettiğini gösterir, bu yüzden sınıfa göre triage yap.
- TA'ların static ve fuzz analizi. Takip eden tooling literatürü (teedfuzzer-fuzzing-the-trusted-execution-environment, TEEzz, the-road-to-qualcomm-trustzone-apps-fuzzing), TA fuzzing'in tam olarak bu SoK'nun kataloglarına aldığı eksik-bounds-check / pointer-validation bug'larını ortaya çıkardığını gösterir.
- Boundary instrumentation. Her SMC handler'ı ve shared-memory entry point'ini "attacker'ın sağladığı pointer/length'lerin yalnızca non-secure memory'ye referans verdiğini bu yeniden kontrol ediyor mu?" açısından denetle.
- Anormal secure-world fault'ları. Untrusted app aktivitesi altında beklenmeyen secure-world panic'leri, watchdog reset'leri ya da trustlet crash telemetry'si, TA parser'larının yoklanmakta olduğuna işaret edebilir.
Mitigation¶
- TEE privilege'ini azalt. Yazarların kendi takibi rezone-disarming-trustzone-with-tee-privilege-reduction, trusted OS'u sandbox'lar, böylece bir TA/TEE bug'ı artık tam physical-memory erişimi vermez — over-privilege invariant'ına doğrudan saldırır.
- Normal-world mitigation'larını secure world'e taşı. Trusted OS ve TA'larda stack canary'leri, ASLR, guard page'ler ve W^X / execute-never'ı etkinleştir.
- Sınırı validate et. Secure handler'lar içinde tüm normal-world pointer/length'lerini yeniden kontrol et; secure kodun secure memory'ye çözülen pointer'ları dereference etmesini yasakla.
- TA'ları izole et. Per-TA address space'leri ve least privilege'i zorla, böylece compromise edilmiş bir trustlet başkalarına ya da trusted OS'a ulaşamasın.
- Architectural hardening. Mevcut olduğunda ARM mitigation'larını uygula (arm-pointer-authentication, arm-memory-tagging-extension) ve secure asset'lerin side-channel ile fault-injection maruziyetini kısıtla.
References¶
- SoK: Understanding the Prevailing Security Vulnerabilities in TrustZone-assisted TEE Systems (oaklandsok.github.io PDF)
- IEEE Xplore: SoK paper (IEEE S&P 2020, doc 9152801)
- Author mirror (INESC-ID): cerdeira-sp20.pdf
- ReZone: Disarming TrustZone with TEE Privilege Reduction (arXiv 2203.01025) — same authors, follow-up mitigation