飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

安全缓存之战:随机缓存的攻击和防御

时间:2021-12-27  作者:电脑狂魔  

域名

在安全缓存领域正在进行一场战斗。缓存侧信道是一个严重的安全问题,因为它们允许攻击者监控受害程序的执行并泄漏敏感数据,如加密密钥、机密 IP 等。此类攻击的一个有效类别是 Prime+Probe 攻击,不法分子使用其地址与受害者地址共享的缓存集冲突,以了解受害者的数据访问模式。随机缓存已成为抵御此类攻击的有希望的防御措施,因为它们使设置冲突的位置随机化并使攻击者更难了解受害者的访问模式。该领域最近在攻击和防御方面都取得了快速进展,近3年在顶级安全和计算机体系结构会议上发表论文10余篇。随着防御变得更加复杂,攻击变得更具创造性,这反过来又提高了对问题的理解并鼓励了更有原则的防御。本文总结了在随机缓存中助长这场军备竞赛的攻击和防御的多产研究。 

最近的工作主要集中在随机化最后一级缓存 (LLC),因为它们通常在多个物理内核(属于云中的不同用户和安全域)之间共享,并且 LLC 的这种共享对性能至关重要;因此,本文还关注随机 LLC。

域名

上面显示的 Prime+Probe 攻击的工作原理如下:攻击者用其地址填充缓存集,然后允许受害者执行并由于集合冲突而驱逐攻击者的地址。之后,攻击者探测地址以检查是否存在未命中,从而推断受害者访问了该集合。在这些攻击中,第一步是发现一组地址——称为驱逐集——映射到与受害者地址相同的缓存集,并将其从缓存中驱逐。

随机缓存防御和攻击简史

随机缓存最初是由RPCache ( ISCA'07 ) 和NewCache ( MICRO'08 )开创的。这些提供了使用重映射表的缓存随机化,并面向小型 L1 缓存。直到 2018 年,LLC 才首次探索随机化,引发了多波随机缓存防御和新攻击。

第一波: 

防御: 2018 年,CEASER ( MICRO'18 ) 首次提出了随机化有限责任公司,使用密码对缓存行地址进行加密,并随机化地址到缓存集的映射。在对手发现驱逐集之前,CEASER 通过更改加密密钥动态更改映射。同时,TSC (DAC'18)类似地使用哈希函数来随机化地址到集合的映射,从而使攻击更加困难。  

攻击:由于 CEASER 在O(n 2 ) 次访问中的驱逐集发现之前更改了地址映射,这促使人们对能够更快地发现驱逐集的攻击产生了新的兴趣。Qureshi ( ISCA'19 ) 和Vila 等人。( SP'19 ) 很快发现了新的攻击算法,其中可以在O(n)内存访问(以毫秒为单位)中发现驱逐集。宋和刘(RAID'19) 使用多线程执行进一步将攻击速度提高了一个常数因子。所有此类攻击都能够在 CEASER 重新随机化缓存之前发现驱逐集。为了抵御这些攻击,CEASER 需要将其重新随机化率提高 30 倍,这会导致相当大的速度减慢,从而促使需要更复杂的防御措施。

要点 1:地址到缓存集的随机映射对于快速O(n)驱逐集发现并不稳健。随后的防御使用更复杂的技术来引入集合冲突的随机化。

域名

第二波:  

防御:随着攻击变得更好,出现了一波新的防御,迎接挑战。防御更快攻击的一种直观方法是通过增加地址可以映射到的随机位置的数量来增加攻击的搜索空间。CEASER-S ( ISCA'19 ) 和Scatter-Cache ( SEC'19 ) 使用偏斜关联设计来概率性地选择安装地址的方式(或称为“偏斜”的一组方式),并在每个偏斜中使用不同的加密函数以确保地址在每个偏斜中映射到不同的随机集。同样,PhantomCache ( NDSS'20) 从一组集合中随机选择一个地址安装在其中的集合。这些防御增加了攻击的搜索空间,使攻击算法很难发现受害者地址的确切驱逐集。

攻击:然而,随着概率防御,出现了新的概率攻击。普纳尔等人。( SP'21 ) 和Song 等人。( SP'21 ) 发现了新的攻击,表明在这些防御中仍然可能发生概率集冲突,并且概率驱逐集仍然可以在O(n) 次访问中构建。通过从这些集合中访问足够数量的攻击者地址,受害者仍然很有可能被驱逐。宋等人。提议增加重新随机化率以抵御这些攻击,但CASA ( MICRO'20) 最近表明,逐渐重新随机化本身可能会在多个时期内累积泄漏信息。因此,动态重新随机化本身可能不是面向未来的解决方案。

要点 2:逐渐增加攻击者努力的防御很可能会被新的攻击破坏。理想情况下,防御应旨在针对攻击的根本原因。

要点 3:重新随机化是一种有用的纵深防御策略,但不需要频繁重新随机化的随机化缓存将提供更强大的防御。

第三波:

防御:为了击败所有基于冲突的攻击(旧的和新的),Saileshwar 和 Qureshi 最近提出了MIRAGE ( SEC'21 ) 来消除设置冲突,这是这些攻击的根本原因。MIRAGE 提供了具有随机替换的完全关联的随机 LLC 的抽象,其中被驱逐的线路与已安装的线路无关,因此不会泄漏任何信息。它通过在 LLC 中配置无效标签并使用受2 随机选择幂启发的负载平衡技术来实现这一点 以确保无效标签的可用性。这允许将新线路安装在无效标签中而不会发生设置冲突,并且可以以完全关联的方式随机选择被驱逐的线路,不会泄漏任何信息。因此,MIRAGE 确保在宇宙的生命周期中不太可能发生集合冲突,并消除基于冲突的攻击。

域名

攻击:那么,这是对随机缓存攻击的终结吗?如果历史是正确的,也许不是。在我们等待可能出现的新攻击的同时,已经有几种攻击未包含在当前的随机缓存中。例如,当前的随机缓存可以缓解 Flush+Reload 之类的攻击,但诸如LOTR 攻击( SEC'21 ) 之类的新攻击利用 LLC 环互连上的争用,或Shusterman 等人的基于缓存占用的攻击。( SEC'20 , SEC'21 ) 不在当前随机缓存的威胁模型之内。而缓存分区解决方案,如Catalyst ( HPCA'16)、DAWG (MICRO'18 )、MI6 ( MICRO'19 )、Jumanji ( MICRO'20 ),甚至是我们最近的Bespoke Cache Enclaves ( SEED'21 ),它提供可定制的缓存分区,防止基于占用的攻击,它们需要大量的操作系统支持. 我们希望未来的随机缓存能够结合这些防御措施的见解,以防止更广泛的攻击。

要点 4 : 随着复杂的防御措施消除了一类攻击,可能会出现以前防御措施范围之外的新攻击。

最后,所有随机缓存的安全性取决于它们用于随机化地址以设置映射的加密函数。因此,随机缓存必须使用具有标准化密码功能的构造,例如 QARMA 或 PRINCE,它们已经过密码分析,并避免自定义构造,这可能容易出现BRUTUS ( CAL'20 ) 和Purnal 等人所指出的弱点。( SP'21 )。

随机缓存的下一步是什么?

完全关联的随机缓存(如 MIRAGE)提供了消除集合冲突的原则性安全性,但这种方法会增加存储成本。因此,未来工作的一个研究问题是如何在保持安全性的同时减少随机缓存的存储和电源开销 ?另一个研究问题是正式验证随机缓存的安全性。例如,CASA ( MICRO'20 ) 提出了一个传输通道模型来分析随机缓存的安全性,He 和 Lee ( MICRO'17 ) 提出了一个安全缓存的“攻击成功概率”指标,而Deng 等人。( HaSS'19 , ASPLOS'20 ) 提出了一个针对安全缓存攻击的三步模型。但是我们如何正式 证明对新的随机缓存防御没有攻击?最后,随着利用缓存空间或互连争用的新攻击,我们如何调整随机缓存防御以防止此类攻击?随着我们开发出更好的随机缓存防御,我们能否利用这种理解来设计新的攻击? 

湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。