可怕!CPU竟成了黑客的帮凶
这个故事是基于CPU的真实漏洞。
事前审查
记得我吗我是阿q,CPU一车间的阿q
由于我们车间采用了乱序执行和分支预测,生产效率大大提高领导不仅在全厂职工大会上表扬了我们,还把这两项技术推广到全厂它们分布在我们的八个CPU核心车间,我们竞争对手的CPU性能相差几个街区
可是,当我们还在陶醉于自己的成绩时,却在不知不觉中种下了灾难的种子。
事情还得从最近的一个晚上说起。
知道
那天晚上,我们一号车间遇到了这样一个代码:
uint8_tarray1=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,uint 8 _ tarray 2,uint 8 _ ttemp = 0,void bad _ guyifx 16 tempamp,= array 2* 512),
短时间内,我们多次执行这个bad_guy函数这不是,又来了
这时,负责指令解码的小胖忍不住说:你看,我们已经执行这个函数很多次了,每次参数x都小于16这次,估计也差不多为什么不启动分支预测功能,先在小于16的分支里做一些指令呢你怎么看
我和负责数据回写的老k对视一眼,点头同意。
过了一会儿,数据终于来了:
x:2阵列1:3
不出所料,指令比较的结果是真的接下来我们就去预测分支,我们已经提前把需要的数据准备到缓存里了,节省了很多时间
就这样,我们成功预测了后续路线我们真是一群机智的朋友
遭遇滑铁卢
天气变幻莫测,很快事情就变了。
啊!结果是假的,这次X大于16在我执行了结果之后,我发现它和我们预期的不一样
a听到消息说:嗯,我们提前执行不该执行的指令不会有问题吧。
老k安慰道,没事的,我们只是提前把数据读入我们的缓存,没问题,放心吧。
我想了想,这是对的大不了我们事先做的准备工作都白费了,所以没多想就继续进行gt,16分支指令
后来同样的事情时有发生,渐渐的我们也就习惯了。
不幸降临
我们不敢耽搁,赶紧开始吧。
来到领导办公室,里面有两个陌生人,其中一个还被绑着领导皱着眉头,气氛很紧张
阿q,你知道你新发明的乱序执行和分支预测技术有大麻烦了吗。
我们几个人目瞪口呆领导,这从何说起
从领导的椅子上站起来,指着旁边的陌生人说:我来给你介绍一下这是操作系统的安全官
安全员对大家点点头,指着被绑的人说:大家好,我们抓到这个线程在读取系统内核空间的数据经过我们的初步审查,他交待了这个目的是通过你CPU的乱序执行和分支预测功能达到的
我和小A都满脑子问号我们两个提高工作效率的技术怎么会泄露系统内核数据
这个案子已经完全澄清了。
显然,安全员看出了我们的疑惑,指着绑好的线说:请告诉我你之前跟我说的话。
几位爷爷,你们之前遇到过分支预测失败的情况吗那个人抬头看着我们
是的,这跟它有什么关系失败很正常既然是预测,就不能100%保证预测一定正确,我回答
你是对的,但如果我是故意策划这次失败的呢。
他说这话的时候,我的心悬了起来纳尼,是你干的吗
是的,就是我第一,我故意连续多次给你小于16的参数,误导你以为后面的参数还是小于16的然后突然来了一个特别构造的大于16的参数你真的上钩了,没能预测到,提前执行了一些不该执行的指令
那又怎么样我们只是把后面需要的数据提前准备到缓存里,并没有进一步做什么我还是不太明白
够了!
你小子被绑了,别吊你胃口,马上说清楚心急的老k没办法
好了好了,我会交代的您提前准备了缓存中的数据当我后来去访问这部分数据时,我发现这比访问其他内存要快得多
那不是真的,我们的缓存技术不是吹牛!等等,它怎么又在缓存上了。,老k继续说道:
这个人继续说,如果我想知道一个地址单元中的值,我会用它作为数组的偏移量来访问一个内存区域使用可以提前预测执行并缓存数据的机制虽然您的预测失败了,但是相应的数据已经在缓存中了然后,我会依次访问那块内存,看谁的访问时间明显比其他部分短,然后就知道哪个块被缓存了然后我会知道偏移量的值是多少按照这个思路,我可以知道每个地址单元的内容
我们听了,想了很久,终于搞清楚了这家伙的套路老k气得差点想修理那个人
嗯,你这家伙,倒是挺聪明的,不过可惜你没有走上正道!好的加速优化机制,却成了你的帮凶,心里充满了愤怒。
迟做比不做好
事情的真相终于被澄清了,我们几个人此刻都是汗流浃背。
在咨询了安全官之后,操作系统引入了一种全新的KPTI技术来解决这个问题,那就是内核页表隔离。
以前用户态和内核态的线程执行都是用同一个地址翻译手册,叫做页表通过这本手册,我们的CPU可以通过虚拟地址找到真正的内存页面
现在,让线程使用不同的手册在用户模式和内核模式下运行在用户态线程的手册中,内核地址空间是空白的
我以为我们可以回去了,没想到领导给我们出了个难题这场灾难是你造成的别人的操作系统虽然被保护了,难道不应该做点什么吗不然以后我们的CPU怎么撑得住头
你有什么好主意吗。帮帮我们!
在后台
这篇文章描述了两年前爆发的著名的CPU熔断和ghost漏洞。
无序执行和分支预测是现代处理器中常用的优化机制与传统的软件漏洞不同,硬件级漏洞影响更大,修复难度更大
通过判断存储器的访问速度,可以知道存储器是否被缓存这种技术有一个专门的术语叫旁支渠道,就是对一些场外信息进行分析得出重要结论,然后达到正常渠道达不到的目的
特别鸣谢:网友提供的技术支持。
声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多企业信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。投资有风险,需谨慎。
猜您喜欢
-
12-04
-
12-02
-
12-01
-
12-01
-
12-01
-
12-01
-
12-01
-
12-01
-
12-01
-
11-30
推荐阅读
-
电子行业年报综述:行业虽面临压力整体仍保持相
电子年度报告摘要2021年,电子行业尽管受到全球疫情和行业周期的干扰,但仍保持稳定增长态势。2021年,申万电子行业整体...更多
2022-05-16 13:21:00
-
潮安登塘举办乡村振兴电商特训班,培养农特产品
“我以前是刷短视频的。不知道别人的视频怎么拍的这么好?通过老师的讲解,我终于领悟了,受益匪浅!”5月14日至15日,潮州...更多
2022-05-16 13:18:00
-
2022前四月住宅新开工面积同比下降28.4
北京商报今日讯——5月16日,国家统计局发布2022年1-4月全国房地产开发投资数据。1-4月份,房地产开发企业房屋施工...更多
2022-05-16 12:51:00
-
西北地区绿色电力交易实践与思考
绿色电力交易是指以绿色电力产品为标的物的中长期电力交易,是中长期电力市场体系中全新的交易品种。绿色电力交易的目的是将新能...更多
2022-05-16 12:39:00
-
华为鲁勇:打造数字经济新动能让更多的人从数字
在2022年世界电信和信息社会日到来之际,我谨代表华为向广大客户、产业链合作伙伴和各界朋友致以诚挚的问候,期待与您携手共...更多
2022-05-16 11:46:00
-
GSMA:中国大陆5G渗透率36.82%位居
近日,GSMA发布了最新的统计信息。截至2022年第一季度,在全球5G渗透率排名中,南韩以44.92%位居第一,其次是中...更多
2022-05-16 11:22:00
-
看了这款潮野SUV哈弗大狗,我直接退掉了CR
费用在心里。随着国家自主品牌趋势的觉醒,对应这个细分市场的产品也越来越丰富。我们不再需要在少数合资品牌中挑三拣四,可以进...更多
2022-05-16 11:20:00
-
统计局:前4月全国固定资产投资153544亿
据国家统计局网站消息,1-4月,全国固定资产投资153544亿元,同比增长6.8%。其中,民间固定资产投资86872亿元...更多
2022-05-16 11:20:00
-
今日必看
- 浏览排行
- 热门精选