grsecurity - 跨进程 Spectre 漏洞利用

主要观点:

  • 开发了跨进程 Spectre 攻击,展示了英特尔 Golden Cove 和 Raptor Cove 中不完全的间接分支预测屏障(IBPB)的影响。
  • IBPB 旨在使所有间接分支目标预测无效,但现代处理器的微代码存在问题,导致某些返回目标预测在 IBPB 之间保留。
  • 介绍了 Spectre 攻击中分支预测和侧信道分析的原理,以及如何利用 Flush+Reload 观察间接分支预测错误。
  • 构建了跨进程 Spectre 漏洞利用,通过劫持 polkit 程序中的返回地址来泄露密码哈希,利用了 IBPB 的漏洞。
  • 提到了利用 ROP gadget 链来实现秘密泄漏,以及在攻击过程中遇到的各种问题和解决方法。

关键信息:

  • IBPB 的触发方式,包括通过特权域的 Model-Specific Register(MSR)写入和用户程序的prctl()ABI。
  • Spectre 攻击中分支预测的相关结构,如 BTB、TAGE、RSB 等,以及它们的作用和工作原理。
  • Flush+Reload 侧信道分析的示例代码和原理。
  • 跨进程 Spectre 漏洞利用的过程,包括选择受害者程序(polkit)、训练 gadget 链、触发泄漏等。
  • 解决攻击过程中遇到的问题,如 race condition、噪声等。

重要细节:

  • 在英特尔处理器中,BTB 是基于指令指针(IP)的低位进行索引的,而间接分支目标预测可能依赖于路径历史。
  • 侧信道分析中的 Flush+Reload 方法通过测量缓存访问时间来推断内存访问情况。
  • 跨进程 Spectre 攻击利用了 polkit 程序在读取密码哈希之前的内存布局特点,通过劫持返回地址来泄露秘密。
  • ROP gadget 链用于在受害者地址空间中执行特定的操作,如读取秘密字节并通过 F+R 侧信道传输。
  • 在攻击过程中,遇到了 race condition、噪声等问题,通过各种方法进行了尝试和解决。

总结:作者开发了跨进程 Spectre 攻击,详细介绍了相关的原理和技术细节,包括 IBPB、分支预测、侧信道分析等,并成功构建了漏洞利用示例,展示了 Spectre 攻击的潜在危害和应对挑战。

阅读 13
0 条评论