亚马逊AWS研究人员Pawel Wieczorkiewicz在Intel处理器中发现一个安全漏洞,Intel处理器易受到可以从CPU内部内存——cache中泄露数据的一种新攻击。这种攻击叫做Snoop-assisted L1 Data Sampling,或Snoop (CVE-2020-0550)。
漏洞分析
新Snoop攻击利用了多级cache、缓存一致性和总线侦听等CPU机制。下面对该攻击的原理进行分析。
当前大多数处理器都有多层cache来保存数据。根据CPU的说明,可以分为Level 1 (L1)、Level 2 (L2)、Level 3 (L3) cache。
该漏洞CVE编号为CVE-2020-0550,CVSS评分为5.6,一个域名绕过暂态执行(transient execution)攻击的变种。在特定的复杂条件下,恶意攻击者可以使用snoop帮助的L1 data sampling来推断出L1 data缓存中一些修改的缓存行的数据值。
在特定处理器和特定条件下,修改的缓存行中的数据可能会被转发。攻击者利用这点可能会构建一个隐蔽信道来推断出L1D cache中修改的数据。域名绕过暂态执行攻击就就做snoop-assisted L1D sampling。
本地执行的恶意软件可能可以推断出不同应用、不同操作系统、不同系统管理模式、不同虚拟机监控器在相同物理核上修改的cache行。
在所有的攻击场景中,本地攻击者都被限制为只可以看到那些有合法数据访问权限的实体修改的非推测的cache行。
Snoop-Assisted L1D Sampling攻击步骤
Snoop-Assisted L1D Sampling攻击步骤如下:
1、执行physical core A的受害者进程会修改含有机密数据的cache行;
2、恶意攻击者可以在含有修改的敏感cache行的physical core A上执行;
3、执行physical core B的受害者进程读取含有机密数据的修改的cache行,引发对修改的cache行的监控;
在相同的clock周期内,可以监控physical core A,位于physical core A的攻击者同时可以引发故障,微体系结构辅助或Intel®TSX异步中止负载。此负载还可能会从监听响应中暂态(瞬时)接收受害者的数据。
4、攻击者执行瞬态相关的操作,这些操作使用故障负载的结果来创建隐蔽通道,攻击者可以利用隐蔽通道推断出机密数据。
其他攻击场景包括:
步骤3中对修改的cache行制定保存而非读取操作;
步骤3中使用非临时存储,即使受害者进程在同一物理核心上执行,这也可能导致监听。
漏洞影响和补丁
受影响的Intel出席其包括Core和Xeon系列处理器,具体参见
Intel称攻击需要同时满足多个条件,而这些条件在现实中是很难满足的,因此Intel并不认为Snoop Assisted L1 Data Sampling是一种实用的攻击方法。Wieczorkiewicz将漏洞报告给Intel后,Intel经过深入分析发现 2018年8月发布的Foreshadow (L1TF)漏洞补丁也可以应用于拦截Snoop攻击。此外,禁用Intel TSX (Transactional Synchronization Extensions)特征,也可以大大减少攻击面,使得Snoop攻击变得更难。
本文翻译自:https://www.zdnet.com/article/intel-cpus-vulnerable-to-new-snoop-attack/如若转载,请注明原文地址: