针对SGX的缓存攻击(Cache Attack)调研


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架构TEEcache 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;

你可能感兴趣的:(TEE--可信计算)