[论文解读] Malware Guard Extension: Using SGX to Conceal Cache Attacks
该论文展示了首个从恶意Intel SGX飞地内部发起的实际缓存侧信道攻击,绕过SGX的隔离机制,仅用一次追踪记录即可提取4096位RSA私钥的96%,并在5分钟内通过11次追踪记录完整提取密钥。该攻击利用DRAM和缓存侧信道,无需计时器、大页或物理地址,反而利用SGX自身的安全特性来隐藏恶意软件。
In modern computer systems, user processes are isolated from each other by the operating system and the hardware. Additionally, in a cloud scenario it is crucial that the hypervisor isolates tenants from other tenants that are co-located on the same physical machine. However, the hypervisor does not protect tenants against the cloud provider and thus the supplied operating system and hardware. Intel SGX provides a mechanism that addresses this scenario. It aims at protecting user-level software from attacks from other processes, the operating system, and even physical attackers. In this paper, we demonstrate fine-grained software-based side-channel attacks from a malicious SGX enclave targeting co-located enclaves. Our attack is the first malware running on real SGX hardware, abusing SGX protection features to conceal itself. Furthermore, we demonstrate our attack both in a native environment and across multiple Docker containers. We perform a Prime+Probe cache side-channel attack on a co-located SGX enclave running an up-to-date RSA implementation that uses a constant-time multiplication primitive. The attack works although in SGX enclaves there are no timers, no large pages, no physical addresses, and no shared memory. In a semi-synchronous attack, we extract 96% of an RSA private key from a single trace. We extract the full RSA private key in an automated attack from 11 traces within 5 minutes.
研究动机与目标
- 调查在存在硬件限制的情况下,是否可能从SGX飞地中发起缓存侧信道攻击。
- 证明SGX飞地可托管无法被检测到的恶意软件,能够从共置飞地中提取机密信息。
- 开发足够精确的定时机制,以在无法访问时间戳计数器的情况下执行侧信道攻击。
- 通过结合DRAM与缓存侧信道,克服SGX中缺乏物理地址和大页的问题。
- 在真实隔离条件下,评估该攻击对实际常量时间RSA实现(mbedTLS)的有效性。
提出的方法
- 开发了一种新颖的定时测量技术,利用CPU周期计数和缓存访问模式,其精度高于原生时间戳计数器。
- 结合DRAM与缓存侧信道,无需依赖2MB页或物理地址暴露,恢复物理地址位。
- 在运行mbedTLS常量时间RSA实现的共置SGX飞地中实施Prime+Probe攻击。
- 通过随机化缓存集分配,即使存在操作系统级别的缓存集偏差,也能推断出正确的缓存集访问。
- 通过分析多条追踪记录并从观察到的缓存访问模式重建RSA私钥,实现自动化密钥恢复。
- 利用SGX的硬件加密与隔离机制,将恶意软件隐藏于操作系统及检测机制(包括性能计数器)之外。
实验结果
研究问题
- RQ1尽管缺乏计时器、物理地址和共享内存,是否仍可从SGX飞地中发起缓存侧信道攻击?
- RQ2在缺乏大页的情况下,DRAM侧信道信息在多大程度上可用于恢复物理地址位?
- RQ3在无法访问时间戳计数器的情况下,能否在SGX中实现足够精确的定时测量?
- RQ4是否可能仅通过侧信道信息从共置飞地中提取加密密钥,即使目标使用常量时间实现?
- RQ5此类攻击是否能逃避操作系统的检测,以及硬件监控工具(包括性能计数器)的监控?
主要发现
- 该攻击成功从共置SGX飞地的一次Prime+Probe追踪记录中提取了4096位RSA私钥的96%。
- 仅通过11次追踪记录,在5分钟内即实现了完整的RSA私钥恢复,采用自动化攻击流水线。
- 定时测量技术的精度高于原生时间戳计数器,支持精确的侧信道分析。
- 该攻击对操作系统不可见,也无法通过性能计数器检测,因为Intel有意将SGX活动排除在这些计数器之外。
- 该方法成功在不依赖2MB页或直接物理地址访问的情况下,通过DRAM与缓存侧信道组合恢复了物理地址位。
- 即使目标飞地运行在Docker容器中,该攻击依然有效,表明容器化无法阻止飞地间侧信道攻击。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。