Modern processors have suffered a deluge of danger- ous side channel and speculative execution attacks that exploit vulnerabilities rooted in branch predictor units (BPU). Many such attacks exploit the shared use of the BPU between un- related processes, which allows malicious processes to retrieve sensitive data or enable speculative execution attacks. Attacks that exploit collisions between different branch instructions inside the BPU are among the most dangerous. Various protections and mitigations are proposed such as CPU microcode updates, secured cache designs, fencing mechanisms, invisible speculations. While some effectively mitigate speculative execution attacks, they overlook BPU as an attack vector, leaving BPU prone to malicious collisions and resulting critical penalty such as advanced micro-op cache attacks. Furthermore, some mitigations severely hamper the accuracy of the BPU resulting in increased CPU performance overhead. To address these, we present the secret token branch predictor unit (STBPU), a branch predictor design that mitigates collision-based speculative execution attacks and BPU side channel whilst incurring little to no performance overhead. STBPU achieves this by customizing inside data representations for each software entity requiring isolation. To prevent more advanced attacks, STBPU monitors hardware events and preemptively changes how STBPU data is stored and interpreted.
翻译:现代处理器遭受了大量危险的侧面通道和投机性执行攻击,这些攻击利用了分支预测器(BPU)中根深蒂固的弱点,利用了大量危险的侧面通道和投机性执行攻击,许多这类攻击利用了非相关流程之间对BPU的共同使用,使恶意程序能够检索敏感数据或导致投机性执行攻击。利用BPU内部不同分支指令之间碰撞的攻击是最危险的攻击。提出了各种保护和缓解办法,如CPU微代码更新、安全缓冲设计、围栏机制、无形猜测等。虽然有些可以有效减轻投机性执行攻击,但它们忽视BPU作为攻击矢量,使BPU容易受到恶意碰撞,并导致诸如高级微操作缓冲攻击等关键惩罚。此外,有些减少措施严重妨碍了BPUPU的准确性,导致CPU绩效管理增加。为了解决这些问题,我们提出了秘密象征性分支预测器(STBPUPU),这是一种减少碰撞性投机性执行攻击和BPU侧通道,但几乎不产生性压顶点。STBPUPU通过对每个需要隔离的软件实体内部数据展示来实现这一目标。