话说超频始终不褪流行,提高一点 CPU 电压榨取出电脑多一点效能就很开心;不小心超太多,电脑运作“秀抖”了,往往就让人很失落。“超频失败”在以前是一种错误,现在可就不一定了,科学家们发现英特尔(Intel)生产的 CPU 有新漏洞──可以针对特定不正常的超频 / 降频故意制造故障,因而突破进入读取 SGX 加密保护的内存区段。
这个新手法叫做 Plundervolt(掠夺伏特),漏洞编号是 CVE-2019-11157,是由数位欧洲的资讯科学家研究发现的。原理是这样的,现代的 CPU 可以非常高速运作,而不需要时又能够降频维持低耗能,电压是可以动态调整来控制时脉速度升频、降频。正常来说,CPU 里面的运作都要有正确频率才能有正确的运算结果, 另一方面,SGX(Software Guard Extensions,“软件保护扩展”的缩写 )的运作原理是让特定使用者层级的程式码配置于内存中,称为“指定位址空间”(enclave)的特殊区块,必须通过加解密运算才能读取里面的内容,SGX 要正确的运作,当然要有处于特定的电压,但如果当 SGX 正在加解密运算的瞬间,突然 CPU 的电压不正常地突然上升或下降呢?
▲ 以Plundervolt 故意让 SGX 加密失误,交叉比对两组正确与错误的秘文还原出 AES 金钥。
是的,科学家们发现的 Plundervolt 就是稍微降压一下,导致 CPU 里的 SGX 加解密运算出错,这样有机会得到加密金钥,然后就可能穿透进内存里本来受到保护的指定位址空间,这个出错机会是发生在 CPU 本身。
不过等等,要能这样降压,不就是要实际在电脑前才能施展的物理攻击吗?其实这项攻击手法可以远端进行,因为英特尔有一组调整频率以及电压的特权软件界面,可以控制这个界面来进行 Plundervolt ,也好家在是用“特权”软件界面,必须以 root 权限才能执行,所以 Plundervolt 是 root 权限被骇客取得以后才有施展的可能。
至于有那些受 Plundervolt 漏洞影响的 CPU 家族,则是从 2015 年以来,英特尔发布的 Core 处理器以及 Xeon E3 v5、E3 v6、E-2100 和 E-2200 服务器处理器等都受到影响,英特尔已经对这项漏洞发布了微码更新和 BIOS 修补,当然,如果你没有用到 SGX 功能的话,就算是不会受到影响的人啰。
(首图来源:Flickr/Christoph Scholz CC BY 2.0)