Modern processors have suffered a deluge of threats exploiting branch instruction collisions inside the branch prediction unit (BPU), from eavesdropping on secret-related branch operations to triggering malicious speculative executions. Protecting branch predictors tends to be challenging from both security and performance perspectives. For example, partitioning or flushing BPU can stop certain collision-based exploits but only to a limited extent. Meanwhile, such mitigations negatively affect branch prediction accuracy and further CPU performance. This paper proposes Secret Token Branch Prediction Unit (STBPU), a secure BPU design to defend against collision-based transient execution attacks and BPU side channels while incurring minimal performance overhead. STBPU resolves the challenges above by customizing data representation inside BPU for each software entity requiring isolation. In addition, to prevent an attacker from using brute force techniques to trigger malicious branch instruction collisions, STBPU actively monitors the prediction-related events and preemptively changes BPU data representation.
翻译:现代处理器遭受了一系列威胁,利用分支预测股内部的分支指令碰撞,从窃听与秘密有关的分支操作到触发恶意投机处决。保护分支预测器往往从安全和性能两个角度都具有挑战性。例如,分割或冲洗分支预测器可以阻止某些碰撞利用,但程度有限。与此同时,这种减少对分支预测准确性和进一步的CPU性能产生了负面影响。本文提议采用秘密托肯分支预测仪(STBPU),这是一个安全的BPU设计,用于防御基于碰撞的中转执行攻击和BPU侧通道,同时引起最低性能管理。STBPU解决上述挑战的方法是,为每个需要隔离的软件实体定制BPUPU内的数据代表。此外,为了防止攻击者使用布鲁特力技术触发恶意的分支指令碰撞,STBPUPU积极监测与预测相关的事件和先发制变的BPU数据代表。