Side-channel vulnerabilities of Intel SGX is driving the research community towards designing low-overhead detection tools. The ones available to date are grounded on the observation that attacks affect the performance of the victim application (in terms of runtime, enclave interruptions, etc.), so they monitor the potential victim and raise an alarm if the witnessed performance is anomalous. We show that tools monitoring the performance of an enclave to detect side-channel attacks may not be effective. Our core intuition is that these tools are geared towards an adversary that interferes with the victim's execution in order to extract the most number of secret bits (e.g., the entire secret) in one or few runs. They cannot, however, detect an adversary that leaks smaller portions of the secret - as small as a single bit - at each execution of the victim. In particular, by minimizing the information leaked at each run, the impact of the attack on the application's performance is significantly lessened, so that the detection tool notices no attack. By repeating the attack multiple times, and each time leaking a different part of the secret, the adversary can recover the whole secret and remain undetected. Based on this intuition, we adapt attacks leveraging page-tables and L3 cache so to bypass available detection mechanisms. We show how an attacker can leak the secret key used in an enclave running various cryptographic routines of libgcrypt. Beyond cryptographic software, we also show how to leak predictions of enclaves running decision-tree routines of OpenCV.
翻译:英特尔 SGX 的侧面通道脆弱性正在推动研究界设计低头检测工具。 迄今已有的工具基于以下观察,即攻击会影响受害者应用软件的性能( 运行时间、 飞地中断等), 从而监测潜在受害者, 如果目击的性能异常, 就会发出警报。 我们显示, 监测飞地性能以探测侧门袭击的工具可能不会有效。 我们的核心直觉是, 这些工具是针对一个敌人的, 干扰受害者的执行, 以便提取最多一部分秘密的比特( 如整个秘密) 。 但是, 它们无法检测到一个敌人, 泄露了一小部分秘密( 仅略小于一小部分) 在每次执行时, 就会发出警报。 特别是, 通过尽可能减少每次运行时泄漏的信息, 攻击对应用程序性能的影响可能不会有效。 因此, 检测工具不会发出攻击信号。 通过多次重复攻击, 以及每次泄漏秘密部分的秘密部分( 例如, 整个秘密秘密秘密的秘密), 敌人可以恢复整个秘密的直路路 。