鸭嘴兽:强大的力量带来巨大的泄密

2020-11-11 04:09:28

借助鸭嘴兽,我们提出了针对英特尔服务器、台式机和笔记本电脑CPU的新型基于软件的电源侧通道攻击。我们利用对英特尔RAPL接口的非特权访问,暴露处理器的功耗来推断数据和提取密钥。

@文章{Lipp2020Platypus,Title={{With Great Power Come Great Left:Soft-Based Power Side-Channel Attack on x86}},作者={Lipp,Moritz and Kogler,Andreas and Oswald,David and Schwarz,Michael and Easdon,Catherine and Canella,Cldio and Gruss,Daniel},Year={2020},}。

对于经典的电源侧通道攻击,对手通常会连接示波器来监控设备的能耗。自Intel Sandy Bridge CPU以来,Intel Running Average Power Limit(RAPL)接口允许在软件中监视和控制CPU和DRAM的功耗。因此,CPU基本上都有自己的功率表。通过当前Linux驱动程序的实现,每个非特权用户都可以访问它的测量值。

幸运的是,与真正的示波器相比,RAPL接口的更新间隔较短。RAPL接口的带宽为20 kHz,而示波器的带宽为多GHz。此外,这些值是使用移动平均值进行过滤的,这使得推断秘密变得更加困难。

鸭嘴兽是一种令人着迷的动物:虽然它们是哺乳动物,但它们也会产卵,雄性鸭嘴兽可以用它们的嘴探测到电信号。同样,鸭嘴兽即使在完全黑暗的情况下也能利用它的能力寻找食物,我们通过英特尔RAPL在处理器的能量测量中感知到秘密。

使用鸭嘴兽,我们证明了我们可以观察到功耗的变化,以区分不同的指令以及操作数和内存负载的不同汉明权重,从而可以推断加载的值。鸭嘴兽可以进一步推断应用程序的缓存内控制流,破解KASLR,从Intel SGX Enclaves和Linux内核泄露AES-NI密钥,并建立与时间无关的隐蔽通道。

在SGX上,英特尔发布了一项安全功能,以创建隔离环境,即所谓的飞地,即使操作系统被攻破,这些环境也是安全的。在我们的工作中,我们将鸭嘴兽与SGX-STEP的精确执行控制相结合。因此,我们通过在SGX飞地内重复执行单个指令,克服了英特尔RAPL测量能力有限的障碍。使用这一技术,我们从一个SGX飞地恢复了mbed TLS处理过的RSA密钥。

在Linux上,PowerCap框架提供对英特尔RAPL计数器的非特权访问。在最近的安全更新中,此访问权限被撤销,没有权限的攻击者无法再检索功率测量结果。

但是,此更新不能防止特权攻击者的攻击,例如针对英特尔SGX的受损操作系统。为了减轻这种情况下的攻击,英特尔向受影响的处理器发布了微码更新。如果系统上启用了英特尔SGX,这些更新可确保报告的能耗会妨碍区分具有不同数据或操作数的相同指令的能力。