1. 論文來源
DIMVA2017:Malware Guard Extension: Using SGX to Conceal Cache Attacks. (Graz University of Technology, IAIK)
2. 攻擊分類
Cache Attack。
3. 攻擊危害
在實作SGX的x86系統上,能夠通過運作在一個enclave中的攻擊程式(malware)對其他enclave的敏感程式實施cache attack,擷取以往cache attack能夠擷取的利益,打破了SGX聲稱的可以防cache attack的言論。此外,因為malware也運作在一個enclave中,主機上的反病毒軟體很難發現并清除攻擊程式。
4. 攻擊原理
SGX實作了對不同enclave的記憶體隔離,這使得基于共享庫的cache attack(Flush+Reload)方法失效,但是SGX并沒有對cache進行隔離,通過利用記憶體位址特性、特殊的evict政策以及全cache掃描定位敏感代碼執行等技巧,能夠成功實作Prime+Probe的cache attack。
5. 攻擊執行個體
在LenovoT系列筆記本(運作有實際SGX)上,恢複在某個enclave中執行RSA加密操作的私鑰。
6. 攻擊前提
A. 攻擊程式和受害程式都運作在一個主機上,兩個程式可以在不同的enclave中;
B. 攻擊程式僅需要unprivileged權限即可。
7. 分析與總結
A. 本攻擊技術主要針對使用x86 SGX架構實作的“TEE”實施cache attack,利用了cache未被隔離的特點;
B. 對于ARM架構TEE的cache attack啟示如下:
(1) 因為TrustZone實作了記憶體隔離機制,原則上基于共享庫的cache attack(如通過Flush+Reload 攻擊T-table實作的AES)無法從REE對TEE進行攻擊;
(2) 如果ARM CPU的cache未實作隔離,則從REE對TEE可以實作Prime+Probe的cache attack ,但此類攻擊噪聲較大;
(3) 如果ARM CPU的cache實作了NS标記位來隔離TEE和REE,則理論上無法成功實作從REE對TEE的任何cache attack;