0

我正在做一些降低幽灵带宽以建立规避攻击的实验。但是,当我达到一定的带宽时,就没有泄漏。为了降低带宽,我注入了安全指令,在攻击的原始阶段之前一次又一次地读取某个地址。

我使用原始的 Spectre v1 PoC。Spectre V1 只依赖于一个分支历史条目的状态和一个缓存行的状态,我确信我添加的安全代码不会篡改这些状态​​,因为它只是读取一个独立的地址。但是,当我使用这种方法暂停迭代时,攻击所需的微架构状态会以某种方式丢失,但我不知道如何准确解释它,因为我没有中断 Spectre 的主要原子任务,并且注入的指令在之前和幽灵阶段完成后。

我还尝试让代码进入睡眠状态并观察到同样的情况;带宽减少 75% 后攻击禁用。

以下论文指出,应该可以以高成功率降低带宽: 链接到论文。我应用了与他们报告的构建规避攻击的最佳方法相同的技术(在原子任务之前插入安全代码),但无法将带宽降低到低于原始 PoC 的 75%。

我很欣赏为什么当我达到一定水平的较低带宽时幽灵可能会被禁用的任何见解。

4

0 回答 0