Google剖析L1TF漏洞攻击,强调已有云计算漏洞防堵对策

针对英特尔本日发布的L1终端故障(L1 Terminal Fault,L1TF)漏洞, Google也在博客宣布,在Compute Engine中采用主机隔离功能,能够确保不同虚拟机不会共享同一个核心,避开漏洞攻击的可能性,还部署了监控服务侦测特定类型攻击的发生。 Google提醒,自行运行多租户服务的用户,最重要的是赶快更新系统镜像文件。

这个L1终端故障攻击手法,同属于Google Project Zero团队当初发现的推测执行旁路攻击(Speculative Execution Side-Channel),相关的漏洞有三个,其中CVE-2018-3615与英特尔软件保护扩展有关,CVE-2018-3620影响操作系统与系统管理模式,而第三个CVE-2018-3646则和虚拟化技术有关。 Google提到,和过去的攻击不同之处在于,新的L1TF变体通过攻击处理器等级的数据结构来进行推测执行攻击,而不是之前从程序控制流下手。

L1TF中的L1代表的意思是Level-1数据缓存,这是用于加速内存访问的小型核心资源。核心的概念则包含了共享L1缓存的处理单元,处理单元又称为逻辑CPU或是超线程手足。

在Not-present状态下发生的页缺失(Page Fault),缓存中的内容就可能被推测检查出来,而且在缺失故障的推测检查阶段,黑客可以绕过确保缓存只能由特定位置空间读取的一般性保护机制,这些特定位置空间指的便是程序或是虚拟机,所以L1TF攻击代表着,在L1缓存中加载的私密数据碎片,可能存在被共享该缓存但不同程序或是虚拟机读取的风险。

Google提到,在虚拟化环境防御这种攻击并不容易,因为虚拟机曝露了构成攻击的所有状态,也就是说黑客可以刻意直接配置自己的页面表格到这些缺失中,并探测他们当前正在执行核心的缓存。黑客要使用这些漏洞,需要以操作系统控制硬件资源中的实体或是虚拟处理器,因此没有修补的操作系统可能遭到间接利用,而攻击可行与否和这些操作系统操作内存映射的方法有关。

为了防范L1TF攻击,Google Compute Engine采用了主机隔离功能,确保单一核心不被其他的虚拟机共享,而这个隔离措施也同时完全刷新L1数据缓存,以确保不同虚拟机有序的调度造成的攻击可能性。另外,Google也开发部署了新的基础架构,让他们监控主机是否存在特定类型的攻击。

Google强调,这些缓解措施已经可以解决大多数Google云计算客户的L1TF漏洞风险,他们也鼓励用户可以更新镜像文件,以减少环境受到间接攻击的可能性,特别是自己运行多租户服务的客户尤为重要。

发表评论