聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

格拉茨工业大学和CISPA 亥姆霍兹中心的研究人员指出,现代处理器此前遭受的推断性攻击如 Meltdown Foreshadow 的根因被错误地归结为“预取影响”,导致硬件厂商发布的缓解措施和应对措施不完整。

研究人员披露了内核地址缓存的真正原因以及如何利用此前未识别出的底层问题嗅探敏感数据。研究人员表示,微架构攻击实际上是由内核中用户空间寄存器的推断性间接引用造成的,它不仅影响最新发布的具有最新硬件缓解措施的 Intel CPU,而且还影响此前曾认为不受影响的多款现代处理器,如 ARM、IBM 和 AMD 处理器。

研究人员指出,“我们发现4年来多份学术论文中提出的影响并未得到正确理解,从而导致不正确的应对措施假设。论文中提到的预取影响实际上和因内存访问引发的软件预取指令或硬件预取影响并不相关,而是由对内存中用户空间寄存器的推断性间接引用造成的。”

除了分析预取影响的根因之外,研究论文中的其它关键成果如下:

  • 发现利用该底层根因的多起新型攻击活动,包括在限制更多的上下文中的地址转换攻击、特定场景下直接泄露寄存器值以及针对非 L1 数据的端对端 Foreshadowexploit。

  • 新型跨核隐秘信道攻击:在某些实例中可导致攻击者观测到存储在寄存器中无需共享内存的地址(或值)缓存。

  • Spectre “预取”工具可直接泄露真实数据,不仅可导致在 Intel CPU 上有效地执行 ZombieLoad 攻击,泄露内部缓冲区的敏感数据或内存,还可影响非 Intel CPU。

推断性间接引用问题——在某些攻击中如 Rowhammer、缓存攻击和 DRAMA等,可导致攻击者恢复 JavaScript 变量的物理地址并通过经由 web 浏览器通过远程瞬时执行攻击提取信息。

另外,研究人员还演示表明,Intel CPU 中的 Foreshadow 漏洞甚至可以在启用推荐缓解措施的情况下遭利用。由于可以对在包含“预取”小工具的内核版本上不存在于 L1 缓存中的数据发起攻击,因此这种攻击活动也有可能发生。

从地址变换攻击到 Foreshadow 攻击

攻击背后的想法较为直接。系统软件依靠 CPU 的地址转换机制实现不同进程之间的隔离。每个进程都拥有自己的虚拟内存空间且无法访问该空间之外的任意物理内存地址。

因此,地址转换充当程序所使用的虚拟地址空间映射到物理地址的中介层。该虚拟地址空间还包括储存Linux 内核线程的内核地址空间,以便于底层硬件在内核模式下处理源自用户线程的权限指令。

虽然可使用如内核页表隔离(KPTI 或 KAISER)的技术保护操作系统内核免受预取侧信道攻击,但研究人员发现它无法保证完全防御地址转换攻击,攻击者试图查看两个不同的虚拟地址是否映射到同一个物理地址。

换句话说,“地址转换攻击可导致低权限应用将任意内核地址提取到缓存中,从而将虚拟地址解析到64位 Linux 系统的物理地址。”

虽然最初认为这类攻击和预取指令相关,但新的研究成果却得出相反的结论,因此验证了 KAISER 并非预防针对内核隔离的微架构侧信道攻击的正确应对措施。

相反,它利用 Spectre-BTB-SA-IP工具引发信息泄露,导致推断性执行后果并进一步通过绕过当前 L1TF 缓解措施的方法执行 Meltdown 和 Foreshadow 攻击。

Spectre-BTB-SA-IP 是 Spectre 漏洞的一个变体,它利用 Branch TargetBuffer(CPU 中的一个类似缓存的组件,用于分支预测)在同样的地址空间和同样的分支地址中执行攻击。

研究人员指出,“同样的预取影响也可用于执行 Foreshadow 攻击。如果 L3 缓存中出现了机密而间接物理映射地址在管理程序内核中间接引用,那么数据可被提取到 L1。这样,即使启用了 Foreshadow缓解措施而禁用了不相关的 Spectre-BTB 缓解措施,也会重新使Foreshadow 攻击成为可能。后果就是,我们能够在修复 Foreshadow 的且启用所有缓解措施的老旧内核上发动 Foreshadow 攻击,而且如仅禁用了 Spectre-v2 缓解措施,则可在完全修复的内核上执行攻击。”

启用 Spectre-BTB 缓解措施如 Retpoline

为了强调该侧信道攻击的影响,研究人员设置了一个基于缓存的隐秘信道,能够从运行Intel Corei7-6500U CPU 上的进程中将数据提取到另外一个隐秘进程,实现10位/秒的转换速度,将共128字节从发送者中继到接收者进程。

另外,研究人员发现还可以从使用推断间接应用的寄存器的 Intel CPU 的 SGX enclave 中泄露寄存器内容,在15分钟内恢复在64位寄存器中存储的一个32位值。

最后,目前可以通过使用 web 浏览器中 JavaScript 中的方法远程发动“某些攻击”,并使用 WebAssembly 通过受攻击者控制的值填充64位寄存器。

要缓解这些攻击,建议当前 CPU 启用 Spectre-BTB 缓解措施,包括 retpoline(意为“返回 trampoline”)。它的目的是通过隔离间接分支和推断性执行的方式阻止针对分支的注入攻击。

推荐阅读

比 Meltdown 和 Sepctre 更凶险:四个 CPU 新缺陷影响几乎所有英特尔处理器

Intel CPU 易受新型的 SGAxe 和 CrossTalk 侧信道攻击

原文链接

https://thehackernews.com/2020/08/foreshadow-processor-vulnerability.html

题图:Pixabay License

本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

 觉得不错,就点个 “在看” 吧~

Meltdown和Foreshadow等补丁被指不完整,处理器易受新攻击相关推荐

  1. 微软反向 RDP 漏洞补丁不当,第三方 RDP 客户端易受攻击

     聚焦源代码安全,网罗国内外最新资讯! 作者:Ravie Lakshmanan 编译:奇安信代码卫士团队 还记得反向 RDP 攻击吗?易受路径遍历漏洞影响的客户端系统通过微软远程桌面协议远程访问服务器 ...

  2. VMware ESXi 高危漏洞的补丁被指不完整

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 本周三,VMware 通知客户称,了解到上个月某个严重漏洞的补丁不完整后,已为 ESXi 发布新补丁. 该漏洞的编号是 CVE-202 ...

  3. Meltdown漏洞和KPTI补丁如何影响机器学习性能?

    文章来源:ATYUN AI平台 在2018年初,互联网领域发现了两大系统漏洞,影响了主要的处理器厂商,这两大漏洞分别是"Meltdown(熔断)"和"Spectre(幽灵 ...

  4. linux pti性能影响,Linux修正内核:Intel打补丁性能狂降、AMD不受影响

    Linux修正内核:Intel打补丁性能狂降.AMD不受影响 由于Meltdown和Spectre两个严重内核级漏洞造成的安全事件愈演愈烈,其中不可否认的是,搭载Intel处理器的Linux服务器.数 ...

  5. 最优装载问题(将一批集装箱装上一艘载重为轮船,其中集装箱i的重量为Wi(0<=i<=n-1) 最优装载问题是指在装载体积不受限制的情况下,求使得集装箱数目最多的装载方案 )

    最优装载问题是将一批集装箱装上一艘载重为轮船,其中集装箱i的重量为Wi(0<=i<=n-1) 最优装载问题是指在装载体积不受限制的情况下,求使得集装箱数目最多的装载方案 e.g: 设有重量 ...

  6. 瑞数动态安全 - 零补丁、零规则 主动抵御未知零日攻击

    越来越泛滥的零日攻击 在大多数网络安全从业者意识中,"零日攻击"往往是让人非常头痛的安全威胁.其高威胁性.突发性.高破坏性.大规模性的主要特点,让零日攻击能在网络安全地下黑市历时十 ...

  7. linux radeon模块,AMD发布了138个Linux驱动程序补丁,为未来的GPU带来了新的SMU模块...

    AMD Linux图形驱动程序开发人员今天上午发布了一套138个补丁,介绍了一个适用于"未来ASIC"的新软件SMU驱动程序. 考虑到为新的GPU体系结构开发工作驱动程序支持需要多 ...

  8. 读者使用计算机终端是指,网络数据库使用导航-新读者专用.ppt

    网络数据库使用导航-新读者专用 北京科技大学图书馆网络数据库使用指南(新读者专用) 北京科技大学图书馆订阅了大量数据库资源供广大师生学习使用,国内比较常用的数据库有CNKI中国知网.万方数据资源等,国 ...

  9. 三个新常态是指什么_什么是经济新常态

    龙源期刊网 http://www.qikan.com.cn 什么是经济新常态 作者:林毅夫 来源:<领导文萃> 2015 年第 04 期 中国是转型中国家.发展中国家,肯定有结构问题,但从 ...

最新文章

  1. uniapp自定义导航栏样式,自定义导航栏组件使用说明,兼容小程序和H5及各端
  2. Centos升级python
  3. vuex 源码分析_Vuex源码解析
  4. 基本算法之递推与递归的简单应用
  5. KXMovie基于ffmpeg的播放器
  6. zbrush常用笔刷_ZBrush中常用笔刷综合简介
  7. redis 分页_Redis排行榜的设计与实现
  8. Wireshark-001基本设置
  9. Android设计模式(1)----单例模式
  10. 【毕业设计】67-基于单片机的三相电压型SPWM逆变器控制设计及应用(仿真、原理图、源代码、低重复参考文档、答辩PPT、英文文献)
  11. 基于单片机步进电机ppt答辩_智能小车答辩课件.ppt
  12. 积分墙为什么要做反作弊
  13. 民国歌曲 - 毛毛雨
  14. 【kronecker积rao积,及其它矩阵运算的一些性质】
  15. 一个简单的Vue过滤器
  16. HNU-计算机系统-讨论课5
  17. DNS(从域名到IP地址的对应)
  18. wpa_supplicant的log中四次握手分析
  19. 怎么查看计算机显卡类型,电脑怎么看显卡参数?查看电脑显卡参数的四种方法...
  20. 基于伪随机序列共轭相乘的OFDM通信系统频偏补偿算法matlab仿真

热门文章

  1. Windows平台内核级文件访问
  2. 构造函数创建私有变量(防继承)
  3. 限定某个目录禁止解析php 限制user_agent php相关配置
  4. Ubuntu 11.10搭建和配置Nagios
  5. 比较好玩的动态添加网页元素
  6. Gmail 收信的一些规则
  7. Linux内核同步方法(一)
  8. windows 2008 server 各版本功能差异
  9. RDIFramework.NET(.NET快速信息化系统开发框架) Web版介绍
  10. 春Phone计划 51cto沙龙上海站