本篇文章4955字,读完约12分钟

近日,互联网行业明确表示,cpu中存在的重大安全漏洞、intel、arm、amd等多家知名cpu制造公司未能幸免于难。 利用此漏洞进行攻击时,攻击者将获取客户的帐户密码、通信新闻等隐私资料。 更严重的是,要完全填补这个漏洞,cpu的性能将恢复到2000年以前的水平。 那么,这个洞的工作原理是什么?

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

太长,不看版本:

这是nga客户kprismk谈到这个漏洞的比喻。 观察是一个比喻,省略了很多细节,但基本的想法大致如下。

/ h/]1.肯德基卖的是土豆、炸鸡块、汉堡包、可乐。

2.李小璐向肯德基点了汉堡,吃完就走了。

3.狗仔队a狗仔队排在李小璐后面,和点的姐姐说:“我和李小璐重点在同一个地方。

4 .点菜的姐姐,前面还有一个人,对不起。 请等一下。 但是,厨师听后,像麻麻一样做了汉堡包。

点餐的姐姐说:“ 5轮到狗点餐了。 你不能那样做哦。 侵犯了别人的隐私。 保安把这条狗的ccq!

6.b狗仔队排在a狗仔队的后面,对姐姐说:“我要了土豆、炸鸡块、汉堡、可乐各一个,饿死饿死了。 哪个快你先拿哪个!

7.b狗仔队先得到了“汉堡包”!

8.b狗仔队知道了李小璐今天在肯德基买了汉堡包!

* * * *

使电脑工作时,使用的数据必须全部经由内存。 这有对你很重要的银行密码,也有你不是故意打开的,也不是故意打开的小网站小程序。

如何防止这些外来的野路子计划触及重要新闻?

今天的计算机设计了多层防线,其中最重要的一层发生在计算机的计算核心——CPU上。 cpu在程序不属于自己的地方探索头脑,当发现接触了别人的数据时,开始枪毙过程。 设计者认为这样可以竖起高墙,将各程序隔离在自己的小屋里。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

但是,他们错了。 这座高墙有一个非常隐蔽的间隙,刚刚被公开。 整个区域都在振动。

这个间隙虽然被隐藏,但危害极大,研究者成功地窃取了保留在浏览器中的网站密码。 幸运的是,窃取密码的过程非常多,很繁杂,坏人这几天应该来不及用它来实际作恶。 不幸的是,要堵住这个缝隙非常困难,看起来要付出计算机明显变慢的重大代价。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

(/h ) )谁也没想到新年一大早就会收到这样大的消息。

事情的经过

年开始的这几天,linux系统核心的例行程序更新在某一场合被发现有较大的性能下降,这一异常现象引起了少量业界人士的关注。 linux核心部署在大量的服务器生产环境中,特别关注性能。 这个补丁的突然在线化和微软的windows、苹果的mac os的模糊反应加在一起,引起了更多的讨论。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

着名科技信息网站theregister于北京时间1月3日早晨发布[1]。 linux的这个补丁是为了修复某个巨大的cpu硬件的安全漏洞而不得已制作的,谴责了现在世界cpu顶尖的霸主intel。 该信息发布后,之所以开始在it行业广泛普及,是因为该信息具有相当的技术背景,并附有实测

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

北京时间1月4日早晨,intel终于发表了令人难以忍受的软文[2]。 这意味着这些社会谣言有夸大之嫌,但并不隐瞒安全漏洞确实存在。 几个小时后,谷歌安全团队project zero正式宣布了这两个极具震撼力的新漏洞:大家现在看到的堆芯熔毁( meltdown )和幽灵( spectre )。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

/ h// br// h /

此时,具体漏洞已于年6月-7月左右被多个团队独立发现,相关研究人员从当时开始就与intel、amd、arm等知名cpu设计(制造)企业和微软、苹果、linux kernel科 许多发现所有利益相关者之间形成了隐含密码的参与者本打算一两周后发布所有补丁和更新,但意外不知道的theregister网站是linux开源社区的邮件列表吗 因此,1月4日早晨,intel也决定事先发布信息。 随后,谷歌的研究人员也打破沉默,将已经准备好的漏洞介绍网站和相关论文[4]上线,全部公开

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

/ h// br// h /

我们经历了什么?。

在目前公开的漏洞实际锤子和原型演示中,我们面临着计算机体系结构快速发展史上最大的硬件漏洞,可以说没有之一也不为过。 现在明确了,“堆芯”直接贯穿了intel和微软的windows、linux、苹果的mac os共同设定的许多安全保护,使用了并非特别多的复杂代码,成为了intel解决方案。 firefox浏览器可以窃取内存中的密码,保护互联网通信新闻的http消息等重要隐私。另一个漏洞“幽灵”更是高度不可预测,如何保护操作系统内核的自我保护? 另外,比intel/amd/arm三大主要企业的cpu更可怕的是“溶解破坏”。实际上,所有pc/手机/服务器都在受影响的范围内,软件补丁进行的修复也是防病毒软件对抗。 另外,考虑到过去几年cpu出货了数亿台,销售的芯片也无法通过微码更新完美地处理问题。 这是因为,从字面上看,这将成为多年来笼罩在所有人头上的安全隐患。 “幽灵”的名字也是这样的。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

为什么到现在为止还没有发现这个洞?

这两个漏洞具有相同的优点,利用了现代高性能微解决方案的重要特征——推测执行和无序执行。 这两种技术都是推动微解决方案性能进步,使大家的电脑、手机能够高速运行的越来越多复杂APP应用的中心支柱。

推测执行技术是指,事先推测解决方案为了提高性能,接下来需要执行什么样的动作,然后在发现推测错误后回滚到正常状态的技术。 一般应用的估计执行技术都可以达到80%-90%以上的估计精度。 另外,所谓推测执行技术,是分支预测、预测、推测性存储器访问、高速缓存错误的重叠/顺序混乱解决( mshr )等大规模技术的总称,幽灵的脆弱性利用了分支预测、推测性存储器访问、mshr这三个特征。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

无序的执行技术是指,在遇到需要发生死锁的事件(例如,需要加载的数据发生缓存错误,需要在高延迟的存储器中寻道)时,解析器越过该死锁,将指令 同样,如果在前置执行过程中发生错误,也需要回滚到正常状态。 破坏脆弱性利用了无序执行的特点。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

/ h// br// h /

CDC6600和ibm 360/91最早出现无序执行技术是在20世纪60年代,无序执行技术的两位重要贡献者Jamese.Thornton(1994 )和RobertTomasulo ) 1997 )也是如此。 要推测执行的最初模板,变种技术太多无法考证。 可考证的第一个分支预测设计是james e. smith于1981年公开的,他也为无序的执行做出了卓越的贡献,1999年获得了EC kert–Mauchlyaward [6]。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

正如您所看到的,这些技术是经过几十年快速发展验证的成熟技术,迄今为止报告的只有程序执行错误的功能错误,没有那么严重的安全漏洞,另外,估计执行和非法执行会成倍地影响性能的提高 例如在模拟器中的验证中,如果关闭非法执行,则失去约一半的性能,如果关闭估计执行中的分支预测,则解决器的最大命令吞吐量的理论上限将返回上个世纪,另一方面,根据推测执行和无序执行的框架设计,其中包含rob ( resob ) ( resoson 如果有rob的保护,高层就不会感知到推测执行(分支预测)和无序执行的状态新闻。 这是写在各计算机体系结构教科书上的复制品,被一代又一代的工程师所继承。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

目前,此副本已被完全重写。

脆弱性原理

虽然 指令可以不按顺序执行,但为了确保不按顺序执行的效果不会影响机械的状态,在不按顺序执行中发生的异常错误和违反安全检查的情况,指令最后提交结果,确认推测状态没有错误后开始解决,错误为 如果在无序的执行中异常地解决指令,就会破坏代码发生异常的位置和实际的执行位置不一致,无序的执行不能影响程序的状态的规则,破坏周期农民们感觉到的编程模型。 确认指令通过检查,没有错误后,指令的操作结果会更新到缓存和相关寄存器中,可以通过软件读取。 由于从指令的执行到最后的提交检查之间有可用的时间窗口,因此根据当前的执行窗口和解析器的执行频率计算,仅用十几纳秒到几十纳秒的时间就可以提前执行大约几十到上百个指令。 这个时间窗成了“堆芯”的攻击点。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

/ h// br// h /

在正常情况下,受保护的敏感区域的访问将被直接授权过程拒绝,但如果您溶解在这个小时间窗口中,故意插入命令以访问应受保护的重要区域,则这些敏感数据将位于解决方案核心内部的注册表中 到这个阶段为止,rob还维持着先行运行状态-正常状态的边界线,整个系统处于保护之下。 机密数据已提交到解析器内部,但未经过安全检查和异常检查的确认,因此其值只能用于临时运算,无法参加正常运算,无法更新到架构的可见寄存器和缓存,无法读取到上级软件,在进行检查时,cpu

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

由于机密数据已经提取到cpu核心内部,可以参与临时计算,因此可以将其用作存储访问的路标k,并将存储器中的第k个块数据加载到缓存中。 这大概需要一百个时钟周期,也就是大约几十纳秒。 这个时间在允许乱序执行的窗口范围内。 如果窗口范围不够大,也可以通过其他方法将此窗口放大一点。 但最后,乱序执行的指令只是提交检查的一步,cpu检查一旦发现这个机密数据被访问了,就会放弃相应的指令的结果,在k的值被抛弃之后,恶意代码就无法读取k的值。 这里漏掉了关键,乱序执行中加载到高速缓存中的存储器的第k个数据没有清除。 因此,后续的代码可以扫描所有相关的内存地址。 如果扫描第10个内存时发现缓存中的数据的访问延迟特别快,则表明以前读取的k值为10。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

另一个幽灵脆弱性的原理与此相似,只是利用了推测执行(第一是分支预测)的指令。 利用从执行到进行安全检查的时间差,在推测执行一行的状态下,利用此时不立即掐死违反触发权限的优点,执行有点恶意的代码,将机密数据加载到cpu寄存器中,参加临时计算,然后,该机密数据

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

/ h /效果和防护

堆芯和幽灵可以利用无序的执行和猜测执行,绕过权限检查等安全措施,访问操作系统内核乃至其他程序的副本。 其中,由于可以看到盗取浏览器密码的例子,因此可以更容易地使用消融功能。 但是,幽灵的脆弱性需要被攻击程序的分支入口点结构满足一定的条件,难度相对较大。 因为,在这个网络上还没有发现基于幽灵脆弱性的新闻泄露的实例。 另外,只能阅读幽灵和消融脆弱都很敏感的新闻,不能进行评级,是不幸中的万幸。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

由于攻击硬件漏洞,目前市面上所有主要的操作系统,如windows、linux、mac os都在攻击范围内,隔离度不够高的很多半虚拟化方案、docker、mac os 因为这个漏洞会极大地影响云计算服务提供商。 目前,谷歌、亚马逊、国内阿里、腾讯等大型云服务提供商公布了补丁计划。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

站在行业制造商的立场上,英特尔、amd、 尽管arm各有各的说辞[7][8][9],但从专业人员的角度来看,intel是合适的,受到了消融和幽灵两个漏洞的影响,但amd和arm在消融面前是暂时安全的,在消融的 由于该intel、arm、amd受影响,分支预测器为了提高性能,天生设计了对地址散列的一部分进行模糊匹配的模型,因此相关防御措施不容易在不损害性能的情况下修复漏洞。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

与其破坏 漏洞,目前的技术手段主要是在软件层面尽量隔离内核页表和客户页表。 该技术的实现方案之一被称为kaiser,其变种已经在各大操作系统中作为破坏漏洞的临时补救措施。 该技术方案提高顾客状态和内核状态切换的开销。 高速系统调用的初步测试表明,内核系统调用的速度降至原来的42%,但利用现代解决方案的pcid特点进行优化后,可以恢复到57%的水平[9]。 具体的APP减少幅度取决于客户端程序与内核交互的频率,linxu kernel开发者的测试结果从10%~20%+不等,pcid可以弥补约5%-7%的性能。

“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

与幽灵的脆弱性相比,目前没有好的防御方法。 根据linux发行版之一suse最近公布的安全更新[10],amd和intel向相关操作系统制造商发送了微码更新。 这个微码更新关闭分叉预测,暂时屏蔽幽灵的漏洞。 由于分支预测会对性能产生较大的影响,因此即使分支预测被部分关闭,也容易成为性能下降的二代左右的幅度。 如果分支预测器整体被关闭,cpu性能将恢复到2000年以前的水平。 相关工作人员正在持续跟进这项更新是否适用。

来源:企业信息港

标题:“开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前”

地址:http://www.quanhenglawyer.com/qyzx/10923.html