当前位置:首页 > 娱乐

英特尔cpu漏洞

2018年1月,英特谷歌Project Zero团队公开了一组芯片级安全漏洞,漏洞代号“Meltdown”和“Spectre”。英特这不是漏洞某款软件写错了代码,而是英特英特尔、AMD、漏洞ARM的英特CPU硬件设计本身出了问题。英特尔受伤最重——过去二十年出货的漏洞几乎所有x86处理器都中招。你手上那台笔记本,英特大概率就在名单里。漏洞

要理解这事有多严重,英特得先知道CPU的漏洞一个基本操作:推测执行。现代处理器为了跑得快,英特不会老老实实按程序顺序一条条算。漏洞它会“猜”你下一步要执行哪个分支,英特提前把结果算好放在缓存里。猜对了,速度飞起;猜错了,丢掉结果重新来。问题出在“丢掉”这一步——计算结果确实被扔了,但缓存里的数据没清干净。攻击者可以通过侧信道攻击,把缓存时序当成“窃听器”,一点点还原出本不该被看到的内存内容,包括密码、密钥、加密数据。

Meltdown更直接。它利用乱序执行的一个缺陷,让用户态程序能越过权限边界,读取内核内存。换句话说,你浏览器里跑的一段JavaScript,理论上能读到操作系统内核里的敏感数据。Spectre则更阴——它不破坏权限检查,而是诱导合法程序“猜错分支”,再通过缓存泄露信息。两个漏洞的共同点是:不依赖软件Bug,纯靠硬件行为就能被利用。

英特尔的麻烦在于,它的推测执行策略比AMD激进得多。AMD的处理器在架构上做了隔离,Meltdown基本打不穿;ARM部分型号受影响,但范围小。英特尔几乎是全线产品沦陷——从2008年的Nehalem架构到2017年的Kaby Lake,一个没跑掉。云服务商最惨,AWS、Azure、阿里云的虚拟机隔离机制面临直接威胁,一个租户可能偷到另一个租户的数据。

修复方案也很拧巴。微软和Linux社区紧急推出了KPTI(内核页表隔离)补丁,把内核内存和用户内存彻底分开映射。代价是系统调用和中断处理变慢,某些场景下性能下降高达30%。数据库、Redis、Nginx这类频繁进出内核的应用,吞吐量肉眼可见地掉。英特尔后来发了微码更新,但部分老平台直接停止支持——你手里的老服务器,可能永远等不到修复。

更让人不安的是后续。2019年,苏黎世联邦理工学院的研究者发现了“Fallout”“ZombieLoad”等新变种,还是同一类推测执行漏洞。2020年,Plundervolt漏洞能通过调节CPU电压窃取英特尔SGX安全区里的密钥。2022年,Retbleed又绕过了之前的修复。每次都是“这次修好了”,然后下一个变种冒出来。根本原因没解决——只要CPU还在推测执行,缓存侧信道就永远有文章可做。

作为普通用户,你能做的事不多。BIOS和系统补丁该打就打,性能损失忍一忍。云厂商那边,他们比你还急,毕竟SLA摆在那。真正该反思的是芯片设计哲学:为了5%的性能提升,把整个安全模型搭进去,值不值?英特尔后来在Ice Lake和Tiger Lake里加了硬件级缓解,但代价是芯片面积和功耗。安全这东西,欠的债迟早要还。

我自己的2015款MacBook Pro,打完补丁后编译代码明显变慢。Geekbench跑分掉了8%左右,日常用感知不强,但跑Kubernetes集群时那个延迟抖动,确实让人怀念漏洞公开前的日子。技术圈有个黑色幽默:“你的CPU太快了,快到能帮你把秘密算出来。” 这话听着像玩笑,细想挺不是滋味。

分享到: