天天看點

針對SGX的緩存攻擊(Cache Attack)調研1.     論文來源2.     攻擊分類3.     攻擊危害4.     攻擊原理5.     攻擊執行個體6.     攻擊前提7.     分析與總結

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;

繼續閱讀