We introduce a new timing side-channel attack on Intel CPU processors. Our Frontal attack exploits timing differences that arise from how the CPU frontend fetches and processes instructions while being interrupted. In particular, we observe that in modern Intel CPUs, some instructions' execution times will depend on which operations precede and succeed them, and on their virtual addresses. Unlike previous attacks that could only profile branches if they contained different code or had known branch targets, the Frontal attack allows the adversary to distinguish between instruction-wise identical branches. As the attack requires OS capabilities to set the interrupts, we use it to exploit SGX enclaves. Our attack further demonstrates that secret-dependent branches should not be used even alongside defenses to current controlled-channel attacks. We show that the adversary can use the Frontal attack to extract a secret from an SGX enclave if that secret was used as a branching condition for two instruction-wise identical branches. We successfully tested the attack on all the available Intel CPUs with SGX (until 10th gen) and used it to leak information from two commonly used cryptographic libraries.
翻译:我们引入了对 Intel CPU 处理器的新的时道侧路攻击。 我们的前沿攻击利用了时间差异, 时间差异来自CPU 前端如何获取和处理指令, 同时被中断。 特别是, 我们观察到, 在现代 Intel CPU 中, 一些指令的执行时间取决于操作之前和之后的操作时间, 以及它们的虚拟地址。 与以前的进攻不同, 以前的进攻如果含有不同的代码或者已知的分支目标, 只能对分支进行剖析, 前线攻击使对手能够区分方向相同的分支。 由于攻击需要OS 能力来设置中断, 我们用它来开发SGX 飞地。 我们的攻击进一步表明, 秘密依赖的分支不应与防御一起用于当前的控制通道攻击。 我们显示, 敌人可以使用前沿攻击从SGX X 飞地获取秘密, 如果该秘密被用作两个方向相同的分支的分支的分支。 我们成功地测试了所有现有的 Intel CPU 使用SGX (直到第10 gen) 并用它从两个常用的加密图书馆中泄漏信息 。