麻省理工学院的安全研究人员声称已经设计出一种硬件解决方案来防止基于推测执行的缓存定时攻击,例如幽灵党和熔解。他们的方法被称为动态分配路径保护(DAWG),将处理器缓存分割成大小不一的分区,使得进程无法窥探其他进程的缓存分区。
自从它们被披露以来,各种软件防御机制已经被提议用于幽灵党和熔毁,但他们通常针对攻击的一个特定变体和确切的性能损失。现在,麻省理工学院计算机科学与人工智能实验室(CSAIL)的研究人员宣称,他们已经设计出了一种机制,这种机制仅要求对现有处理器体系结构的硬件做最低限度的修改,以抵御广泛的侧信道攻击,并具有合理的性能开销。
幽灵和崩溃的利用的投机执行,是一种旨在改善处理器的总体性能的机制,它让处理器在等待内存时多执行几个指令,例如,有两个分支的一个条件,丢弃不需要的那些,也就是走不到的那个分支。
在一篇将于几天后在日本福冈市举行的IEEE/ACM微结构国际研讨会(MICRO)上发表的论文中,研究人员Kirianski、Lebedev等人展示了一种针对集关联结构(包括缓存)的安全分区方案,它增加了保护域的概念。根据研究人员的说法,保护域在集合关联结构的分区之间提供了强大的隔离,并且能够检测和防止缓存命中、遗漏和元数据更新。
(图片来自麻省理工学院论文)
动态分配路径保护(DAWG)核心的关键思想是利用传统的集关联内存设计,将控制器和一些直接映射的缓存结合起来,称为路径:
为了实现DAWG,我们将为保护域分配多组路径,限制来自于那些发出的缓存请求到这些路径的缓存命中和行替换。
为了实现这种机制,DAWG需要一些额外的元数据与缓存相关联,相当于一个24位的硬件线程寄存器。寄存器用于存储三个8位活动域选择器。此外,每个缓存需要256位来描述每个活动域允许的方式。研究人员还声称,DAWG几乎不需要为了利用这种机制打麻将修改现有的操作系统。
不得不承认,DAWG还不能抵御各种各样的投机性攻击,它的创建者们正在努力改进它,拓宽它的应用范围。此外,目前还不清楚英特尔或其他CPU制造商是否会采用他们的方法,但Kirianski和Lebedev希望这种情况能够发生。InfoQ将继续报道这方面的内容,以及其他针对基于推测执行的攻击的方法和解决方案。