Skip to main content
QUICK REVIEW

[论文解读] Osiris: Automated Discovery of Microarchitectural Side Channels

Daniel Weber, Ahmad Ibrahim|arXiv (Cornell University)|Jun 7, 2021
Security and Verification in Computing参考文献 48被引用 16
一句话总结

Osiris 是一个基于模糊测试的框架,通过使用机器可读的指令集架构(ISA)规范,自动发现 CPU 中基于时序的微架构侧信道。它识别出构成侧信道的指令序列三元组(重置、触发、测量),在 Intel 和 AMD CPU 上发现了四个新型侧信道,包括一个 KASLR 破解和一个带宽高达 1 kbit/s 的跨虚拟机隐蔽信道。

ABSTRACT

In the last years, a series of side channels have been discovered on CPUs. These side channels have been used in powerful attacks, e.g., on cryptographic implementations, or as building blocks in transient-execution attacks such as Spectre or Meltdown. However, in many cases, discovering side channels is still a tedious manual process. In this paper, we present Osiris, a fuzzing-based framework to automatically discover microarchitectural side channels. Based on a machine-readable specification of a CPU's ISA, Osiris generates instruction-sequence triples and automatically tests whether they form a timing-based side channel. Furthermore, Osiris evaluates their usability as a side channel in transient-execution attacks, i.e., as the microarchitectural encoding for attacks like Spectre. In total, we discover four novel timing-based side channels on Intel and AMD CPUs. Based on these side channels, we demonstrate exploitation in three case studies. We show that our microarchitectural KASLR break using non-temporal loads, FlushConflict, even works on the new Intel Ice Lake and Comet Lake microarchitectures. We present a cross-core cross-VM covert channel that is not relying on the memory subsystem and transmits up to 1 kbit/s. We demonstrate this channel on the AWS cloud, showing that it is stealthy and noise resistant. Finally, we demonstrate Stream+Reload, a covert channel for transient-execution attacks that, on average, allows leaking 7.83 bytes within a transient window, improving state-of-the-art attacks that only leak up to 3 bytes.

研究动机与目标

  • 自动化发现现代 CPU 中基于时序的微架构侧信道,这些侧信道通常需要耗费大量人力的手动分析才能发现。
  • 解决识别复杂指令交互所引发可测量微架构副作用的挑战,而无需深入低级别的微架构逆向工程。
  • 实现对可被用于瞬态执行攻击(如 Spectre 或 Meltdown)的侧信道的系统化和可扩展检测。
  • 通过与 ISA 规范集成,在 CPU 设计阶段实现侧信道的早期检测,从而实现默认安全。
  • 将自动化侧信道发现的范围从基于竞争或缓存的侧信道扩展到新型基于时序的侧信道。

提出的方法

  • 将侧信道表示为三元组:一个重置序列、一个触发序列和一个测量序列,以系统化建模微架构状态变化。
  • 采用类似模糊测试的方法,从机器可读的 x86/ARMv8 ISA 规范中生成并测试指令序列组合。
  • 仅保留可由非特权用户执行的指令,以减少搜索空间,使其保持在实际且相关的组合范围内。
  • 通过测量不同序列之间的执行时间差异来检测基于时序的侧信道,使用内联汇编实现高精度计时。
  • 在模糊测试迭代过程中应用反馈机制,以处理微架构副作用,提升收敛性和稳定性。
  • 与性能计数器及低层接口(如 Intel VISA/ITP-XDP)集成,为未来扩展至基于驱逐的侧信道检测提供支持。

实验结果

研究问题

  • RQ1一个通用的自动化框架是否可以在不了解微架构行为的前提下,发现新型基于时序的微架构侧信道?
  • RQ2基于 ISA 规范的模糊测试在多大程度上能够识别出不依赖于竞争或缓存驱逐的侧信道?
  • RQ3此类框架是否能够发现可被实际攻击利用的侧信道,例如 KASLR 绕过或隐蔽信道?
  • RQ4该框架在检测微小时间差异(如亚 100 个周期)的侧信道方面效果如何?在通用计算环境中存在哪些实际限制?
  • RQ5该框架是否可扩展以支持多指令序列及其他类型的侧信道,而不仅限于单指令时序侧信道?

主要发现

  • Osiris 在 Intel 和 AMD CPU 上发现了四个新型基于时序的微架构侧信道,其中包括一个通过非临时加载(FlushConflict)实现 KASLR 破解的侧信道,该侧信道在 Ice Lake 和 Comet Lake 上有效。
  • 该框架成功实现了跨核心、跨虚拟机的隐蔽信道,传输速率高达 1 kbit/s,且不依赖内存子系统,已在 AWS 上成功演示。
  • 展示了 Stream+Reload 攻击的新变种,平均每个瞬态窗口泄露 7.83 字节,优于以往最先进的攻击(最多仅泄露 3 字节)。
  • Osiris 成功重新发现已知的侧信道,如 Flush+Reload 和 AVX2 侧信道,验证了其检测能力。
  • 尽管由于操作系统层面噪声的存在,难以检测亚 100 周期的时间差异,但 Osiris 在多种 CPU 上运行约 500 小时内仍成功识别出可利用的侧信道。
  • 该框架可扩展至其他架构(如 ARMv8),并通过集成性能计数器或调试接口,未来可支持检测基于驱逐的侧信道。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。