Randomized Last-Level Caches Are Still Vulnerable to Cache Side-Channel Attacks! But We Can Fix It 论文浅析
authors:Wei Song∗ †, Boya Li∗ †, Zihan Xue∗ †
∗ State Key Laboratory of Information Security, Institute of Information Engineering, CAS, Beijing, China
† School of Cyber Security, University of Chinese Academy of Sciences, Beijing, China
2021 IEEE Symposium on Security and Privacy (SP)
本文团队来自于中科院信息工程研究所宋威老师
Research overview
- 随机化缓存:缓存随机化本身并不能击败基于冲突的缓存侧通道攻击,而只是增加了难度和延迟
About LLC’s defense
-
缓存分区:它将LLC中的安全关键数据与其他数据分离,因此攻击者无法通过使用正常数据触发冲突来逐出安全关键数据。
-
缓存随机化:将内存地址到缓存集索引的映射随机化,而不是缓存分区本身。
-
动态重映射:限制攻击者可用的时间窗口。
-
CEASER-S和ScatterCache都声称使用随机倾斜缓存来阻止基于冲突的缓存侧通道攻击。
-
本文改进了CEAESER-S并且证明了ScatterCache存在安全问题
-
缓存分区:它曾经是针对滥用LLC的基于冲突的缓存侧信道攻击唯一的有效防御。它将LLC中的安全关键数据与争吵数据分离,因此攻击者无法通过使用正常数据触发冲突来逐出安全关键数据。存在的问题:但是,当安全关键型数据无法轻松与正常数据分离[11]或正常数据成为目标[6]时,缓存分区是无效的。它还降低了LLC的自主权,这反过来可能会损害某些应用程序的性能[12]。最后,缓存分区依赖于特定的操作系统(OS)代码来识别安全关键数据,这意味着必须信任OS。
-
缓存随机化:这迫使攻击者在运行时[3]、[22]–[24]使用搜索算法缓慢查找逐出集,而不是事先直接计算缓存集索引。即使找到逐出集,攻击者也无法判断哪些缓存集被逐出。然而,缓存随机化本身并不能打败基于冲突的缓存端通道攻击,但只会增加难度和延迟[16]。
About dynamically randomized cache
- CEASR:
About dynamically randomized cache
- CEASR-S:
- 加密的内容是物理行地址,而非对其内容进行加密,由于不知道映射的具体情况,所以很难找到特定的驱逐集,并且由于密钥在随着时间更改,又加大了找特定缓存驱逐集的难度
升级版的CEASR,CeASr-s:倾斜加持,每路对应的加密密钥不同
Problems in the method
假设:攻击者找到了一个驱逐集,它由七个全等和一个部分全等的缓存块组成。
- 攻击者可能会面对的问题:在带有两个分区的倾斜缓存中,逐出目标地址(带蓝色阴影的斜线)的概率应为50%。假设攻击者多次成功地逐出目标地址,她最终也有失败的可能,因为部分一致的缓存块被随机缓存在错误的分区(P1)中。并且之后该驱逐集将无法使用。
- 解决方法:攻击者可以使用cache flush指令刷新驱逐集,进行再驱逐。
- 所以,在理论上,攻击者依然可以在可接受范围的时间内成功攻击。
- 从攻击者的角度来看,失败的原因是缺乏足够的自冲突,无法在重新访问过程中移动错位的部分一致缓存块。为了重用逐出集,攻击者必须找到另一种方法清除LLC中放错位置的块。如果可以做到,攻击依然可以在可接受范围内的时间内成功,那么该如何修复这个问题?
How to fix it?
-
1.增加找到驱逐集的时间
-
即可以通过添加(改变)重映射周期来进行增加找到驱逐集的难度,使攻击的时间代价在不可接受范围。
文章通过符合实际情况的数学推导得出重定位周期与找到驱逐集时间代价的公式,利用公式来进行的上述表格内的计算。 -
2.使用多步骤重新映射
-
i)可以减少性能损失。
ii)减少拒绝服务攻击造成的损害
i)由于重新映射过程中,LLC中40%-50%的缓存块会被逐出,这是频繁重新映射会显著影响性能的原因。,使用多步骤重新映射可以降低到10%。
ii)攻击者可以通过强制执行大量LLC访问出发频繁的重新映射,导致盲目的将数据逐出。
解释:ii)如果个数据由于重新映射被逐出,被逐出的数据将进行再次映射,直到映射到不需要被逐出的位置为止。
Performance evaluation
- 结果表明,当文中新提出的思想都应用于CEASER时,随机关联缓存足够安全,且不会造成显著的性能损失。
- 由于随机缓存的性能开销已被证明是可以接受的,本文仅分析新提出的想法对性能的影响。
测试是在SPEC CPU 2006上做的
MPKI:(使用CEASE LLC时)每K条指令的未命中数
Conclusion
-
1.文章提出了可能存在的攻击形式:在基于冲突的攻击中使用cacheflush指令的可能性被忽略了。
-
2.通过LLC访问测量重新映射周期是有缺陷的。
-
3.提出多步骤重新定位的策略来解决性能和安全性之间的平衡。
-
4.所有新发现的漏洞都在当前性能预算范围内修复。