为应对处理器安全漏洞,美国时间1月8日,苹果发布iOS、Safari和macOS三款软件的安全更新,这三款软件的最新版本分别为iOS 11.2.2、Safari 11.0.2和macOS High Sierra 10.13.2 ,其中macOS还有一个补丁(Supplemental Update),用户可以在苹果官网下载。在发布这三款软件安全更新说明中,苹果表示:“为保护消费者,在调查未发生及补丁未准备好之前,苹果没有泄露、讨论或确认这些安全问题。”据ZDNET报道,微软为防止处理器漏洞而推出的最新更新导致部分AMD处理器系统崩溃。ZDNET称,若干用户在微软论坛抱怨AMD Althon系统在更新了Windows 10安全补丁以后,系统爆出0x800f0845错误,之后不断重启尝试更新或恢复系统。英特尔CEO科再奇在CES展上就人们关心的处理器安全漏洞做出回应,他说:
“预计在一周内,英特尔发布的更新将覆盖过去5年内推出的90%以上产品,而针对其它产品的更新,将在今年一月底前发布。英特尔相信,这些安全更新对性能的影响在很大程度上取决于具体的工作负载。我们预计某些工作负载相对其它来说受到的影响会更大一些,英特尔将继续与整个产业界一起协作,逐渐把对这些工作负载所带来的影响减少到最低。”
科再奇演讲再一次证实,为防范幽灵(Spectre)或熔断(Meltdown,也译作熔毁)而打的补丁,确实会影响系统性能,只是影响比例根据应用状况不同而有变化,有些影响甚微可视为无影响,但有些影响相对较大。
在英特尔1月4日的新闻稿中,苹果、亚马逊、谷歌和微软都表示,
针对处理器漏洞的安全更新对性能影响很小甚至没有影响。
具体测试结果包括:
苹果:“我们的 GeekBench 4 基准测试以及 Speedometer、JetStream 和 ARES-6 等常见的 Web 浏览基准测试表明,2017 年 12 月的更新没有显著降低 macOS 和 iOS 设备的性能。”
微软:“绝大多数 Azure 客户不会感受到此次更新对性能的影响。我们已经优化了 CPU 和磁盘 I/O 路径,在采纳更新后没有看到对性能产生明显的影响。”
亚马逊:“我们没有观察到这对绝大多数 EC2 工作负载的性能有产生实际的影响。”
谷歌:“在包括云基础设施在内的大多数工作负载上,我们看到对性能的影响可以忽略不计。”
但一些第三方测试结果并不支持影响甚微的说法。theregister引用部分社交媒体上行业专家观点,称补丁对Python和AWS部分应用性能影响较大。
引自theregister
Redhat 针对服务器的Linux 7企业版更新中,对英特尔“Haswell” Xeon E5 v3,“Broadwell” Xeon E5 v4,和“Skylake” Xeon SP处理器进行了测试。结果显示,依据应用不同,性能下降从1%到19%不等。
英国网站TheNextPlatform的Timothy Prickett Morgan根据RedHat的测试结果进行推算,他表示,绝大多数企业数据中心都有大量虚拟化环境(the heavily virtualized environment),这种虚拟环境应用对补丁相对敏感,拉高了性能下降比例。如果假定服务器应用性能下降均值在10%左右,现在全球每年服务器市场在600亿美元左右,10%的性能损失就是60亿美元。这两种漏洞影响的处理器至少有三到四代产品,全球存量约为4000万台。不考虑折旧,影响到的整个服务器市场累积规模在250亿美元左右,即便考虑折旧,处理器安全漏洞造成的服务器应用损失也在百亿美元以上。
当然,Timothy Prickett Morgan的算法值得商榷,但性能下降带来的经济损失无疑真实存在的,而且数目不会小。
中科院计算所工程师黄博文在果壳网发表的文章《你用了高性能CPU,我就可以窥探你的密码》也提到了他对现在解决方案影响系统性能的看法:
针对熔毁漏洞,目前已有的技术手段主要是通过软件层次将内核页表与用户页表尽可能地隔离,这种技术的一个实现方案叫KAISER,其变种已经被各大操作系统采用作为熔毁漏洞的临时补救措施。这种技术方案会提高用户态与内核态的切换开销,快速系统调用的初步测试证明,内核系统调用的速度降低到了原先的42%,而利用现代处理器的PCID特性进行优化后,能够恢复到57%的水平。具体的应用程序下降幅度取决于用户程序与内核交互的频繁程度,linxu kernel开发人员的测试结果从10%~20%+不等,PCID能够弥补大约5%-7%的性能。
针对幽灵漏洞,目前没有很好的防御方式,linux的发行版之一suse最近公开的一个安全更新显示,AMD和Intel已经向相关OS厂商推送了一个微码更新,这个微码更新会关闭分支预测来暂时封堵幽灵漏洞。由于分支预测对性能影响巨大,即便分支预测只被关闭一部分也很容易造成性能衰退二代左右的幅度,如果整个分支预测器都被关闭,CPU性能将退回2000年以前的水平。对于这个更新是否将被应用,相关从业人士正在持续跟进关注。
黄博文对TechSugar表示,将分支预测器完全关闭,CPU性能退回2000年以前水平并非夸大其词,虽然十几年来半导体工艺进步提高了主频,但是关闭分支预测相当于掐断指令供应(instruction supply),没有分支预测,指令级并行度就不再起作用,“再好的并行架构,都要有指令喂进去才能发挥作用。所以,关掉分支预测功能的高主频现代CPU,实测性能将与开分支预测的低主频90年代CPU差不多。”
黄博文指出,虽然提供完全关闭分支预测选项的代码已经推送,但他不认为这种方案会真去实施,因为这样处理对性能影响实在太大。
当前,熔断攻击方式已经有明确案例演示,幽灵攻击方式尚没有熔断方式研究得透彻,但不少专家表示,幽灵攻击潜在风险更大,更难防御。如果最严重情况必须采用关闭分支预测来解决的话,对全球信息产业的影响就不是只有几百亿美元,性能拖回到2000年之前,造成的损失至少在数千亿美元以上。
当然,当前全球各个主要相关厂商正在研究各种预防措施,最快迭代安全补丁以降低对性能的影响,而且黄博文告诉TechSugar,他了解到最新状况是“分支预测不会被全关,而且可能会引入定时冲刷分支预测器记录表之类方法。”
据悉,美国已经有针对英特尔的数起集体诉讼,如果风险扩散,不知道是否有其他厂商也会被卷入。
1994年,英特尔为处理奔腾除法错误,付出了4.75亿美元的代价,前一年英特尔营收为79.7亿美元。2017年,据Gartner估算,英特尔销售额为577亿美元。
往期回顾
苹果、高通、IBM均承认处理器有被攻击风险
英特尔处理器被爆存严重漏洞,AMD或被波及
全都中招,各方详解史上最大安全漏洞
也说英特尔猜测执行的漏洞
详解Intel漏洞怎么拿到内核数据的
相关文章