这些种种新闻报道,都是沈亢2023年查询相关资料的时候看到的。
但实际上,在事情发生的2018年,沈亢毫无知觉。
2018年的沈亢,还住在出租屋里,每天早上七点爬起来,到小区门口的路边摊买个煎饼,登上公交车后,嘴里叼着煎饼、双手在钱包里翻找着公交卡。
到了公司里,也是喝一杯咖啡就投入工作,做着永远做不完的报表,写着永远写不完的报告。
下班之后,回到家里,打开电脑,准备来上一局英雄联盟虐虐菜,结果发现,该死的n10又自动更新了。
更新完之后,电脑竟然还变更卡了——不过也正常,n10嘛,就是这样,又流氓,又坑爹,习惯了。
他以为变卡只是n10的常态,就像早高峰和月底的信用卡账单一样,是生活里理所当然的一部分。
那时的他还不知道,他的电脑变卡,是全世界通力合作的结果:
大洋彼岸的某位英特尔工程师,在深夜的会议室里抽光了半包烟,反复权衡着补丁的性能损耗和漏洞风险,最终在邮件末尾签下了““;
某个他从未听说过名字的微软内核开发人员,加班到晚上十点,把那段会拖慢数千万台电脑的代码合进了n月度更新里,关掉时看了眼时间,心想还能赶上末班地铁;
某个云服务商的运维工程师,在凌晨两点被电话叫醒,睡眼惺忪地连上vpn,对着脚本确认了三遍后按下回车,看着上千台服务器在一行行绿色日志里逐台重启,然后在工作群里敲了一句“n“……
而沈亢,坐在那间出租屋的书桌前,对这一切一无所知。
他只是那数十亿个普通用户里,最普通的一个。
他甚至连自己被补丁拖慢了这件事都不知道——他只是习惯性地、自然而然地,把这口锅扣在了n10头上。
然后,对着屏幕骂了一句“破n10“,退了游戏,关机睡觉。
五年后他才知道,那晚让他英雄联盟团战掉帧的,不是微软的更新策略,而是一次跨越国界、耗时数月的、人类历史上最大规模的硬件漏洞应急响应。
而他自己,以一台三千块钱的笔记本为载体,以一个团战卡顿的游戏玩家的身份,被动地、毫不知情地,参与了这次全行业规模庞大的集体行动。
这一切的起源,就在于那个名字
幽灵\\/熔断
……
想起这个名字来,沈亢也终
于明白了,为什么之前,自己听到萧伯年说“预测执行”的时候,会有一种在哪里听过的感觉了。
熔断,主要利用的是cpu的乱序执行机制。
而幽灵,主要利用的,就是cpu的预测执行机制。
预测执行的机制运行的时候,就像萧伯年说的一样,是“猜”。猜对了就执行,猜错了就回退。
但是就像一句话说的那样,凡走过,必留下痕迹。
预测执行的回退,也会在缓存中留下痕迹,又或者说“影子”。
攻击者利用幽灵做的,就是“欺骗”cpu去做一件它本不应该做的事,留下那件事的“影子”,然后读取那段“影子”。
这是硬件层面的。
这也是,幽灵和其他那些针对系统层面的传统攻击手段不一样的地方。
举个例子:
这就好像,你拥有一个图书馆(电脑),里面有一位图书管理员。
病毒,就是一个外人给图书管理员的水里下毒,管理员喝了,神志不清,自己把书拿出来给了他。
木马,就是一个“热心群众”,帮管理员装了一套“智能图书管理系统”,说能提高效率。管理员装完之后,图书馆里不少书的信息都被发到了某个邮箱。
钓鱼,是有人给管理员发了一封邮件,署名“馆长”,说“把某某书的信息发到这个邮箱”。管理员一看是“馆长”发的,就照办了。
,是有人雇佣了几百个人涌进图书馆里,一片混乱,图书管理员一个人根本应付不来,然后就有人趁乱,把他想要的书偷走了。
病毒、木马、钓鱼、,这些都是有迹可查的。
身为馆长的你,一回来,发现管理员神志不清,还比着剪刀手,就知道出事了。
你发现多了一个“智能图书管理系统”,就知道出事了。
你跟管理员一对账,说自己没给他发过邮件啊,就知道出事了。
你一看满屋子的脚印,门都被挤坏了,管理员也是衣衫凌乱,像是被十八位大汉轮过一般,更知道出事了。
这些手段,也比较容易防范。
你可以让管理员别乱喝外面的水,让管理员别随便乱装什么智能管理系统,让管理员看到署名“馆长”的邮件时先别急着办事、先打电话跟你确认一下,你还可以雇一批保安,下次再有几百个人过来直接拦住。
但是幽灵不同。
幽灵只是一位彬彬有礼的顾客,名字叫克
莱恩·莫里亚蒂。
他穿着深色的正装外套跟马甲,内搭白色衬衫,下身一条深色长裤,戴着丝绸礼帽,手里拿着一根手杖,随身还带着一块怀表。
来到柜台前,他摘下帽子,礼貌地朝管理员微微颔首,用他那温和而略带书卷气的声音开口:
“您好,我想借阅那本《安提哥努斯笔记》。”
“就是羊皮封面、烫有红铜纹章、据说是第四纪那位疯狂家族遗留下来的手稿。我听说馆里有一份经过封印处理的副本,编号在‘禁区典籍’那一栏。”
管理员的工作流程,是“有人来借书,先跑去把书从书架上取下来,再核对借书人的证件”。
于是,管理员就去把那本《安提哥努斯笔记》拿了过来。
然后,回到柜台,把那本烫着红铜纹章的羊皮手稿放在桌面上,双手按住书封,抬起头,正式端详起面前这位绅士。
“先生,请出示您的借阅证。”
克莱恩的表情出现了一丝恰到好处的迟疑。
他把手伸进马甲内袋,摸了摸,又摸了摸外套内侧的口袋,甚至微微侧身翻了一下裤袋,然后带着歉意的微笑重新抬起头来。
“实在抱歉。我出门时换了一件外套,证件忘在另一件衣服里了。”
他语气诚挚,表情温和,把一个健忘的学者形象演绎恰到好处。
管理员摇头,“先生,按照图书馆的规矩,没有借书证,无法将这本书借给你。”
“这样啊,”克莱恩的语气有一丝失落,“那么,打扰了。”
他重新戴上丝绸礼帽,手杖在地面上轻点了一下,转身朝门口走去。
靴子踩在木地板上,发出均匀而有节奏的声响。
请收「藏「」「」小」说」唯」一「网」址」:「「」」」」「」」」」」「」」,「站」「长」只「有这一个网「站,其它网「站随「时断「更。」
走到门口时,他停了一步,微微侧过头来,用那种温和的、带着书卷气的声音说了一句:
“对了,那本书的第三章第七页,右下角有一处批注,写的是‘祂在注视’。我听说那行字不是原作者的笔迹,也不知道是谁写上去的。您有空的话,可以看一看。”
说完,他推开玻璃门走了出去,身影消失在街角。
管理员怔怔地望着那扇关上的门,又低头看了看桌上的笔记。
他的手指不受控制地翻开了第三章,第七页,右下角——果然
有一行细小的、用暗红色墨水写成的字:
“祂在注视。”
管理员浑身一颤,猛地合上书页,像被烫到了一样把手缩了回来。
他下意识地把笔记锁回黑铁柜子里,又检查了两遍锁扣是否扣紧,才长长地吐出一口气。
可他不知道的是,就在他刚才抱着那本书从藏书室最深处走到柜台前的那段路上,在他把书翻开、确认版本、又合上放好的一整套流程中,书里某一页的内容,早已经被“读取”了。
不是被眼睛,不是被记忆,而是被一种更底层、更隐秘的方式。
像是一团灰色的影子。
图书馆外
克莱恩走在街上,手杖敲击着石板路,帽檐下的嘴角微微一勾。
他兜里的那本随身笔记本上,刚刚多出了一行自己没写过的字——那是他在管理员取出笔记的瞬间,用“愚者”的权限,在灰雾之上“看到”的内容。
他根本没有碰到那本书。
但那本书的信息,已经在他脑子里了。
身为馆长的你,这时候也回来了。
你按照惯例,问图书管理员,有没有什么发生事。
图书管理员说“没有”,也没有提那位莫里亚蒂先生的事——图书馆每天借书的人太多了,忘带证件的人也太多了,这是一件不必被记录的事。
你又核对了一下借书单和库存,没有错漏。
书没错,管理员也正常,门口也没有乱七八糟的脚印,一切都正常。
所以,管理员不知道发生了什么,身为馆长的你,也不知道发生了什么,图书馆还是那么安全,固若金汤。
但是消息,已经被泄露到了灰雾之上。
……
“这下真赞美愚者了。”
沈亢喃喃自语。
幽灵\\/熔断的公布,也开启了一个新的时代。
在2018年、幽灵\\/熔断被公布之前,安全研究主要集中在软件层面和密码学算法上,硬件被认为是“可信的根基”。
而在幽灵\\/熔断被公布之后,人们发现了新大陆。
英雄好汉,层出不穷。
预兆,(fha),
辐射,(falt),
陨落,(nfall),
骑士,(vltjcky),
盗梦空间,(n),
幽灵下一代,(p),
幽灵竞态,(htac)……
这种情况,就有点像《海贼王》的开篇——想要我的财宝吗?想要的话可以全部给你,去找吧!我把所有财宝都放在那里。这句话让全世界的人都涌向了大海,由此开启了大海贼时代。
放在计算机行业,就是:
想要越过操作系统与虚拟机的至高隔离墙吗?
想要跨越用户态与内核态的绝对权限鸿沟吗?
我没有抹去预测执行留下的任何物理痕迹——即便指令已被逻辑抛弃,缓存依然铭记,缓冲区依然回响。
你想要的那把王权之钥,就藏在这些瞬态执行的余烬之中。
去找吧。
我把穿越一切安全边界的高权限之门,放在了cpu的微架构深处。
于是,全世界的安全研究员纷纷涌入这个曾经被视为“不可能存在漏洞”的硬件底层。
自此,微架构攻击的“大探索时代”,正式开启。
但那是在2018年。
而现在,是2009年。
这还是一个“天翼3太快了!”的时代。
英特尔的最强处理器还是7-965,采用极为先进的45纳米工艺,4核8线程,主频高达32hz,倍频未锁定,用液氮可超频到恐怖的55hz,仅售7999元!
沈亢会在炎热的夏天,给何秋竹买上一根五毛钱的小布丁,看她吃津津有味。
诺基亚的经典铃声在自习室此起彼伏,手机一震,全教室的人都低头看。
宿舍里,有人用“快播”看片,有人用“电驴”下梅剧,学校里的公用电话还活着,投币5毛,能打三分钟。
安全圈里的大神都在玩l注入、和木马免杀,拿到一个bhll就能吹三天。没有人看cpu,没有人看缓存,没有人觉硬件也会撒谎。
整个世界都还沉浸在一种朴素而天真的技术秩序里,像一艘没有雷达的船,安安稳稳地漂在暴风雨前的海面上。
这就是2009年。
距离2018年,还有9年。
在漏洞被发现之前的,这9年里、也或者是8年里,幽灵\\/熔断,就是一个无人知晓、但是实际存在于所有计算机中的无解“后门”。
这意味着什么?
这意味着,这是一把打开这个世界的钥匙。
因为这是一个信息时代。
华尔街的交易系统,每秒处理数百万笔
订单,每一笔都经过cpu;梅联储的清算网络,跨国银行的ft报文,股票市场的撮合引擎,全部跑在芯片上;世界各地的at机,吐出钞票之前,cpu已经完成了几十次加密运算、余额校验、身份比对。
光缆穿过太平洋底,路由器日夜不停地转发数据包,而每一个数据包从进入网卡到离开网线,中间要经过无数次处理——都是cpu;天上的p卫星在计算星历,地面的接收机在解算位置,导弹的制导系统在修正轨迹;医院的ct机在重建图像,血液分析仪在匹配指标,电子病历数据库在几毫秒内调出一个人的全部病史。
发电厂的c系统监控着锅炉温度,铁路调度中心的计算机自动排列进路,民航客机的飞行管理系统在巡航高度上不停地计算油量与速度。
这个时代里,每一个值被记录的瞬间,几乎都有一块芯片在背后静静地执行指令。
它不声张,不越权,不犯错。
它被视为整个信息世界的基石,一块一块地铺在人类文明的最底层。
人们相信它,像相信地基不会飞走,像相信银行金库的铁门不会被风吹开。于是,全世界所有的秘密都被放心地交给它。
重要公务行程,外交系统的加密通信,跨国公司的核心报价,军队的部署数据,医院的隐私病历,每一张银行卡的密码,每一封电子邮件,每一次深夜的搜索记录。
数据从键盘出发,进入内存,流过总线,最终都要经过cpu的手。
cpu是唯一的、不可绕过的中间人。
它什么都看见。
只是没有人问它,看见了什么。
而现在,有一位高冷男神知道了,可以问它——“喂,小子,你看见了什么?告诉我。”
如果是十几年后的cpu,她会忍痛拒绝高冷男神的诱惑,低头看鞋,说“我不知道,别问我”。
但是现在的cpu,就像是一个从来没有朋友的孤独小女生,会眨巴着一双大眼睛,高兴地说出她所知道的一切。
因为十几年后的cpu,有人教过了。
而现在的cpu,还从来没有人告诉过她,那些是秘密。
……
当意识到这一点后,沈亢忽然产生了一种怪的感觉。
一种前所未有的,“强大”的感觉。
就算是重生者,就算自己重生以来不停创业,拥有的越来越多,但是沈亢从来没有过这种“强大”的感觉。
因为他从
没妄想过,自己可以影响ft;他从没妄想过,自己可以接触到驻外使馆级别的层次;他更加从没妄想过,自己可以参与到那种影响世界格局的大国博弈中去。
他就是一个普通人。
就算重生了,也依然是一个普通人。
他能多赚点钱,能帮助福利院的伙伴们有一个更好的未来,能让更多的人因为自己而生活更美好,那已经是非常成功了。
那种太高层面的事,是他这样一个普通人无法触及的。
所以,他不“强大”。
可是,现在不同了。
他似乎有机会,影响到ft的运行。
他似乎有机会,看到驻外使馆级别的机密。
他似乎有机会,
影响世界格局。
……
萧伯年注意到,一旁的沈亢半天没动静,安静地异常。
孩子静悄悄,必定在作妖。
萧伯年也不知道,自己脑子里为什么忽然闪过这句话。
然后他就下意识地扭头看了过去,就看到沈亢安静地坐在椅子上,并没有作妖,只是脸上的表情很怪,前所未见的怪。
“你在想什么?”
萧伯年下意识问道。
沈亢也终于因这句话回过神来,迟钝地扭了下脖子,眼神有些呆滞,像是刚从一场大梦中醒来。
眨巴了两下眼睛,才恢复了往日的清醒。
随后,忽而一笑。
“我在想,是‘全球计算机水平下降一万倍’好玩,还是造一杆200米口径的狙击枪好玩。”