论文标题

正面攻​​击:通过CPU前端在SGX中泄漏控制流

Frontal Attack: Leaking Control-Flow in SGX via the CPU Frontend

论文作者

Puddu, Ivan, Schneider, Moritz, Haller, Miro, Čapkun, Srdjan

论文摘要

我们引入了对英特尔CPU处理器的新计时侧通道攻击。我们的正面攻击利用了CPU前端在中断时如何获取和处理指令引起的定时差异。特别是,我们观察到,在现代的英特尔CPU中,某些说明的执行时间将取决于哪个操作在哪个操作和成功的虚拟地址。与以前的攻击只有在包含不同的代码或具有已知分支目标的情况下才能介绍分支的攻击不同,额叶攻击使对手可以区分指令的相同分支。由于攻击需要OS功能来设置中断,因此我们使用它来利用SGX飞地。我们的攻击进一步表明,与当前受控通道攻击的防御能力一起,不应与秘密分支机构一起使用。我们表明,如果对手可以使用额叶攻击来从SGX飞地中提取一个秘密,如果该秘密用作两个指令相同分支的分支条件。我们成功地测试了使用SGX(直到第10代)对所有可用的Intel CPU的攻击,并将其泄露了来自两个常用的加密文库的信息。

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.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源