谷歌发布基于浏览器的 Spectre 攻击的 PoC exploit
编译:奇安信代码卫士团队
Spectre 漏洞最初在2018年初和 Meltdown 漏洞一同发布,利用这两个漏洞的侧信道攻击可使恶意应用访问在设备上处理的数据。该漏洞可暴露即时通讯 app 等的密码、文档、邮件和数据。
Meltdown 和 Spectre 漏洞公开披露后,硬件厂商和软件开发人员等一致致力于防御类似缺陷,而浏览器厂商也在执行应用程序级别的缓解措施。2019年,谷歌 Chrome V8 JavaScript 引擎团队表示,无法从软件层面缓解这些漏洞,指出浏览器中的安全边界应当和底层原语如基于处理器的隔离一致。
为了保护用户的安全,浏览器厂商已经执行了一些防护措施如网站隔离 (Site Isolation)、跨源读取拦截 (Cross-Origin Read Blocking) 和进程外内联框架等,已经为其它应用程序开发人员提供了多种安全功能,包括跨源资源 (Cross-Origin Resource) 和跨源开放策略 (Cross-Origin Opener Policies) 等。这些机制的目的是阻止敏感数据存在于可被攻击者读取的内存区域中。然而,它们均无法阻止 Spectre 利用。
为了评估这些缓解措施的有效性,谷歌研究人员已为多个操作系统、架构和硬件变体发布 JavaScript PoC 代码,“证实了针对 JavaScript 引擎的 Spectre exploit 的实践性。“
虽然 Chrome 用于展示攻击,但遭利用的漏洞并非它独有,而是也影响其它现代浏览器。谷歌解释称,“展示网站在 Intel Skylake CPU 上的 Chrome 88 运行时,以1kB/s 的速度泄露数据。需要对代码稍作修改才能适用于其它的 CPU 或浏览器版本;然而,在测试中攻击可成功在其它多个处理器(包括 Apple M1 ARM CPU)上执行,而无需做出大量修改。“
除了发布 PoC 外,谷歌还提供了一些建议(后 Spectre 的 Web 开发和缓解侧信道攻击),指导 web 开发人员如何改进网站隔离拒绝对跨源资源的访问,从而有效地缓解 Spectre 类的硬件攻击活动等。这些缓解措施包括:跨源资源策略 (CORP) 和提取源数据请求标头、跨源开放策略 (COOP) 和跨源嵌入式策略 (COEP) 以及标准的防护措施如 X-Frame-Options 和 X-Content-Type-Options 标头以及 SameSite cookies。
谷歌指出,“虽然这些机制是重要且强大的安全原语,但并无法完全保证能够抵御 Spectre;它们要求部署方法的配合,考虑特定于既定应用程序的行为。”
攻击演示
更多技术详情请见:
https://github.com/google/security-research-pocs/tree/master/spectre.js
研究人员披露 Meltdown 和 Spectre 攻击的7种新变体
https://www.securityweek.com/google-releases-poc-exploit-browser-based-spectre-attack
题图:Pixabay License(塞尚作品)
本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的
产品线。