被提前曝光的“幽灵(Spectre)”与“熔断(Meltdown)”风险让全球 IT 核心企业狼狈不堪。谷歌零项目组(Google Project Zero)在发现这两个漏洞之后,于 2017 年 6 月 1 日向英特尔、AMD 等公司通报漏洞详情。由于波及范围过大,包括处理器厂商、操作系统厂商及云服务商在内的核心企业签署保密协议,以确保在漏洞被公布之前(预定 2018 年 1 月 9 日公布)找到解决方法。
但科技网站 The Register 从 Linux 工作组邮件中发现蛛丝马迹,于北京时间 2018 年 1 月 3 日,将该漏洞曝光,导致各方不得不改变计划,提前行动。但实际上,漏洞被曝光距离零项目组公布漏洞日期只有一周。所以提前曝光造成的风险并不大,各厂商该准备好的应该已经准备好,没有准备好的,反而可能由于被曝光而加快进度。
目前的解决方案,多少都会造成系统性能下降。
微软执行副总裁 Terry Myerson 在其最新官网博客中称,针对处理器漏洞的最新补丁,PC 芯片与操作系统越旧,性能下降比例越大,用 Windows8 或 7 配 2015 年及以前的 CPU,大部分用户都会察觉到明显性能下降;而用 2016 年及以后的英特尔处理器与 Windows 10 系统,性能下降则较为轻微;在服务器应用中,任何 I/O 频繁的应用,都会受到较大影响。
Redhat 测试表示,为防止漏洞而释放的最新 Linux 内核版本对服务器应用性能影响在 1%到 19%之间。
据报道,在 Broadwell 与 Haswell 系列处理器上,补丁导致部分用户系统重启。实际上,微软对该系列漏洞的补丁也导致部分旧款 AMD 处理器系统有重启或蓝屏问题,微软已经暂停使用部分更新程序。
谷歌在一篇博客中称,幽灵 2(变种 2)对谷歌云服务团队造成的困难更多。熔断风险看起来更危险,但由于处理得早,从 2017 年 10 月份开始在服务器上调试补丁程序,“花了大量时间改进性能”,现在的方案已经对性能没有明显影响。
对付幽灵风险,最可靠的办法是关闭分支预测,但这将导致系统性能大幅下降,并有衍生影响。“不仅很多应用速度显著变慢,而且我们也发现性能不一致现象,因为某个应用可以被同一个内核上运行的其他应用影响。”
但最终,谷歌找到了一种软件解决方案,零项目组称之为“Retpoline”。不需要关闭分支预测或其他硬件功能,Retpoline 采用软件二进制修改技术(software binary modification technique),可以预防分支目标入侵(branch-target-injection)。该方法由谷歌技术基础架构组工程师 Paul Turner 发明。
不断有新厂商宣布受到幽灵与熔断影响,并推出相应解决方案。据不完全统计,受幽灵影响的英特尔、苹果与 AMD 处理器共有一千两百款以上,受熔断影响的英特尔与苹果处理器共有近千款。
Arm 公布目前受这两种攻击方式影响的内核共十款,除了苹果,高通、Nvidia、海思、联发科、赛灵思与 Altera 等知名 IC 设计公司无一幸免,这些公司均有用受影响内核设计的处理器,应用范围不仅局限与手机与平板电脑等消费与通信市场,包括汽车、工业应用处理器存在被攻击风险 - - 当然,恩智浦 i.MX 系列与瑞萨 R-Car 系列多数可能不会联网,所以风险不大。
以下为相关列表:
英特尔、苹果与 AMD 受影响处理器数量统计
Arm 受影响内核统计
Arm 内核应用处理器不完整统计
数据来源:wiki
阅读全文