重燃熔毁攻击:CounterLeak 攻击原语解析
1. 威胁模型
我们假定攻击者为无特权用户,但具备原生代码执行能力。同时,假设受害者软件无漏洞,不存在内存损坏或逻辑漏洞。不过,攻击者模型依赖于侧信道漏洞,即受害者应用程序中存在依赖于秘密的控制流或数据流。
虽然从理论上讲,攻击者可在虚拟机内部发起攻击,但我们未对此进行明确测试,且攻击者只能针对其所在虚拟机内的受害者,而无法攻击管理程序或其他虚拟机。尽管这缩小了攻击面,但在基于容器的环境中,虚拟机内攻击仍是现实场景。本工作仅针对英特尔和 AMD 的 CPU。需要注意的是,Meltdown - CPL - REG 在 Arm 架构上也可被利用,但本文实验未涉及更多架构,仅在后续讨论中提及。
2. CounterLeak 攻击原语
- 攻击概述 :CounterLeak 依赖于 Meltdown - CPL - REG 来泄露性能计数器的内容。假设系统已对性能计数器进行了编程,例如系统使用性能计数器进行攻击检测时就会如此,像 Cloudflare 就依靠性能计数器检测幽灵攻击。攻击者通过将 rdpmc 指令的临时读取返回值编码到微架构中,并利用侧信道恢复该值,从而泄露性能计数器的值。
- 实现方式 :与之前的熔毁型攻击类似,我们使用 CPU 缓存对临时泄露的值进行编码,并采用 Flush + Reload 作为隐蔽信道,使这些值在架构上可见。每次调用 rdpmc 指令时,我们支持泄露 1 到 4 个字节,通过将每个字节编码到由 256 页组成的数组的缓存状态中实现。编码到微架构中的数据越多,底层性能计数器
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



