VoltJockey: Breaching TrustZone by Software-Controlled Voltage Manipulation¶
ARM (ve Intel) CPU'larını computation hatalarına glitch'lemek için DVFS voltage kontrolünü suistimal eden, TrustZone'un içinden/karşısında AES key çıkaran ve RSA forge eden, yalnızca software ile yapılan bir fault-injection saldırısı.
Mechanism¶
Bug class / invariant
Modern SoC'ler, privileged software'in güç verimliliği için core voltage/frequency'sini ayarlayabilmesi adına Dynamic Voltage and Frequency Scaling (DVFS) sunar. Örtük invariant şudur: DVFS değişiklikleri zararsızdır ve güvenli operating margin'ler içinde kalır. VoltJockey bunu kırar: DVFS unit'ini, tam seçilmiş bir anda hedef bir core'un voltage'unu güvenli seviyelerin altına itecek şekilde programlayarak, attacker bir victim core'da — secure-world (TrustZone) kodu dahil — herhangi bir hardware aracı olmadan transient computation fault'ları indükler. CLKscrew'den (frequency'i manipüle eder) farklı olarak, core'lar arasında tek bir voltage regulator paylaşan bir multi-core işlemcide voltage'ı manipüle etmek daha stealthy ve önlenmesi daha zordur. Hatalı ara sonuçlar ardından klasik fault-analysis cryptanalysis'i (örn. AES'te differential fault analysis) mümkün kılar.
Walkthrough¶
Üst düzey, CCS 2019 paper'ından (akademik, defensive):
- Privileged normal-world software'den, victim ve attacker core'larını, shared bir regulator'ün attacker'ın victim core'un voltage'unu etkilemesine izin verdiği konfigürasyonlara sürükle.
- Kısa bir undervolt'u hassas bir secure-world operasyonuyla (örn. bir AES round) çakışacak şekilde timing'le ve single-bit/byte bir fault inject et.
- Hatalı ve doğru ciphertext'leri topla.
- AES key'i recover etmek için differential fault analysis uygula; paper ayrıca RSA çıktısının değiştirildiğini gösterir. Qualcomm APQ8084AB ve Intel i7-8550U üzerinde gösterildi.
Detection¶
- Özellikle TEE/SMC çağrıları çevresinde sık, ince ayarlı DVFS voltage/frequency değişiklikleri yapan unprivileged/privileged software'e dikkat et.
- Telemetry: anormal voltage/frequency transition oranları, operating-margin limitlerine yakın undervolt istekleri ya da secure-world aktivitesi sırasında yükselen fault/error-correction olayları.
Mitigation¶
- DVFS/voltage-control arayüzlerine erişimi kısıtla ve authenticate et; güvenilmeyen (ve ideal olarak güvenilmeyen-privileged) software'in spec-dışı voltage'lar ayarlama yeteneğini reddet.
- Software'in tehlikeli undervolt'lar isteyememesi için firmware/hardware'de güvenli operating-voltage limitlerini zorla.
- Inject edilmiş fault'ları tespit etmek için secure-world crypto'yu fault-detection / redundant computation ve verify-after-sign / verify-after-encrypt kontrolleriyle hardening yap.