看了下目前为止的答案,很多人都被媒体带跑偏了,都以为这漏洞必须要拆机才能攻击,实际上不是的。昨天我已经读过完整漏洞报告了,简单讲讲具体的情况吧。
这次Bjorn披露的并不是一个漏洞,而是七个不同的漏洞。媒体喜欢放的那段拆机攻击视频,其实是攻击漏洞5、6的演示视频。其他五个漏洞都不需要拆电脑,只要给受害者一个做过手脚的雷电接口设备就可以。
当然,听到这里想必还是有读者觉得小题大做,“需要一个做过手脚的设备才能攻击,那我只要不去乱插可疑的设备不就行了?”
好,那么我有一个小问题:可疑的设备具体指什么?U盘?鼠标?如果同事借给你一根手机充电线,或者你的办公桌上躺着一条数据线,你觉得这根数据线会攻击你的电脑吗?
USBHarpoon by _MG_ https://www.zhihu.com/video/1244374068209827840这种数据线现在国内团队就有在做,三四百块钱一条,攻击者可以一边跟受害人聊天吸引注意,一边用手机蓝牙一键启动攻击。
当然,如果不愿意付出几百块钱的巨款的话,还有一些更廉价的攻击方式。比如故意把做过手脚的U盘落在别人公司的厕所里,捡到U盘的人往往会出于好奇,或者是为了找出失主的线索,把U盘插到自己的电脑上看一眼,然后收获一份意外的惊喜。
以上这些只是想要让大家明白,“恶意设备”这个东西,比你想象的还要无孔不入,不过现在还是让我们把视线拉回到这次的漏洞报告上来。
Bjorn这次的报告一共发布了两种攻击模式,七个漏洞:
模式1:BadUSB,也就是上方视频展示的攻击方式。这个攻击方式在Windows和Linux上都长期奏效,而macOS通过一个白名单提高了攻击难度,可惜这次的漏洞成功绕过了macOS白名单。
模式2:利用一个叫DMA(Direct Memory Access)的功能直接攻击电脑内存。这种攻击Intel之前早就有所考量,所以设计了一些安全机制和四种安全等级来防御这种攻击。最低等级是SL0(无防护)。最高等级是SL3(禁用DMA)。默认等级是SL1,用户授权过的设备才能使用DMA。同样的,这次的漏洞能够通过两种方式花式绕过Intel这些防御机制。不过即使绕过了防御机制,这种攻击模式对于Mac电脑仍然不奏效,因为Mac使用虚拟化技术把硬件接口都隔离了。
而Bjorn发布的七个漏洞分别是:
1)各家厂商生产的雷电控制器芯片普遍偷工减料,没有按照相关标准对固件更新进行签名验证。通过这个漏洞,攻击者可以直接把没签名的恶意内容写进芯片,植入恶意代码或修改敏感数据。
2)雷电设备的识别信息没有任何额外的验证机制,不管是基于硬件的验证还是基于密码学的验证都不存在,电脑会直接信任雷电设备上报的识别信息。
3)雷电设备控制器芯片中存储设备识别信息的部分(DROM)也没有任何形式的验证,攻击者可以直接修改里面的内容。
漏洞1、3组合,可以让黑客把恶意设备伪装成合法设备,再配合漏洞2可以让合法设备被电脑直接信任。
在Windows/Linux系统上,设备开启DMA功能默认需要经过用户授权。利用漏洞1~3组合,攻击者就能克隆一个用户授权过的设备,然后掉包它,把恶意设备还给用户。用户拿着还回来的设备欢天喜地回到家,一插电脑就被黑了。
对于Mac系统,黑客可以随便上淘宝买一台Mac白名单厂商生产的移动设备,克隆识别信息到恶意设备上,恶意设备就能绕过Mac的防护发动BadUSB攻击。
4)雷电3协议的兼容机制设计不合理,遇到雷电2设备时,会无视安全等级直接切换到雷电2。完美兼容了雷电2的设备的同时,也完美兼容了雷电2的漏洞。
漏洞4其实,可大可小。如果雷电2协议再爆出一堆漏洞的话,漏洞4就会产生一堆漏洞的效果。
5)电脑会无条件信任自己主板上控制器记录的安全等级,如果其他组件记录了一个不一样的安全等级,就以控制器芯片上记录的安全等级为准。而控制器芯片,是可以利用漏洞1进行篡改的。攻击者可以利用这个漏洞,把控制器的安全等级直接下调到SL0(无防护)。
6)雷电控制器芯片对于硬件异常不进行上报,硬件异常导致的更新失败、设置失败都不会反馈给用户。所以攻击者可以锁死控制器芯片的储存器,迫使控制器永远停留在被黑的状态。
接下来是最后一个漏洞,也是这批漏洞里我觉得最匪夷所思的一条。
7)在Mac电脑上安装Windows/Linux系统后,Mac硬件会禁用雷电芯片的所有安全防护措施,直接把安全等级下调到SL0(无防护)。
这个漏洞,坦白地说我怀疑它不是个漏洞,苹果工程师就是想这么设计……毕竟连华强北生产的杂牌子恐怕都起码支持一个SL1的防护,苹果抬手给用户调个SL0,我只能理解为不想花时间精力来保护竞争对手的用户……
利用漏洞5~7把安全等级下调到SL0后,用户随便插一个恶意雷电设备就会被黑,不需要额外的物理接触。
说完漏洞原理之后,简单讲讲防护方法。
目前网上有传言说开启Windows的Kernel Protection可以解决问题,然而Bjorn的漏洞报告里对Kernel Protection的效果描述是“subject to further investigation”(有待进一步调查),所以还不能说开了这个就可以高枕无忧了。而且,你把内核保护好了,剩下的程序呢?他们可还暴露在攻击下啊。
Bjorn在漏洞报告中推荐的防护措施是:
以上。