众所周知苹果Mac电脑很安全,但是随着恶意软件的发展,凭借现有Mac安全机制想要完全对抗恶意软件的感染可能会变得更加艰难。近期一种新型恶意软件的问世,使得黑客通过短暂的物理接触,让2011年以后生产的苹果Mac电脑感染ROM级恶意程序。
背景
近日,安全研究人员发现一种让苹果电脑感染ROM级恶意程序的方法。
这个攻击由编程专家Trammell Hudson在德国汉堡举办的年度混沌计算机大会上展现,他证明这将使重写苹果Mac计算机固件成为可能。
这种攻击被命名为“Thunderstrike(雷击)”。它实际上利用了一个在ThunderboltOption ROM中有些历史的漏洞,该漏洞在2012年首次被发现但仍未修补。通过受感染的Thunderbolt设备在苹果电脑的boot ROM中分配一段恶意程序,Thunderstrike 将可以感染苹果可扩展固件接口(EFI)。查看更多信息点我
FreeBuf小科普(本文涉及的专有名词解释)
Thunderbolt(雷电)接口:英特尔在2009年设计完成的某种接口,替代并统一目前电脑上数量繁多性能参差不齐的扩展接口。雷电接口形状与MiniDisplayport一样,并且可以对其兼容。其理论最高传输速度可达单向10Gbps,是USB 3.0规范的2倍。并且在未来会提供对存储设备的支持,可以大幅提升传输带宽。
该技术由苹果和Intel共同开发、推广,苹果新款MacBook Pro中便使用了全新的Intel雷电技术。
Option ROM:PCI Option ROM又叫PCI Expansion ROM。 它是用于设备初始化和系统boot的code。有的PCI Option ROM被存放在板卡上,而有的则保存在BIOS的binary里面。
Bootkit:是更高级的Rootkit,该项目通过感染MBR(磁盘主引记录)的方式,实现绕过内核检查和启动隐身。可以认为,所有在开机时比Windows内核更早加载,实现内核劫持的技术,都可以称之为Bootkit。
循环冗余校验算法:要计算n位的CRC值,将待CRC的数据左移n位(即在其最右端添加n个0),如果待CRC数据的最高位为0,不进行任何操作,否则将其与事先设定好的除数(divisor)进行异或操作,然后将除数右移一位。重复上述两个操作直到除数到达待CRC数据的右端。
EFI可扩展固件接口:(英文名Extensible Firmware Interface 或EFI)是由英特尔,一个主导个人电脑技术研发的公司推出的一种在未来的类PC的电脑系统中替代BIOS的升级方案。
UEFI:全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface), 是一种详细描述类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。
恶意软件“雷击(Thunderstrike)”
原理:
一旦安装了这种名“雷击(Thunderstrike)”的恶意软件,它会替换Mac下的引导固件程序,以高优先级的指令获得系统控制权限。这款恶意软件(bootkit)可以绕过固件程序密码验证及硬盘密码验证,在操作系统启动时就预装上后门。
该恶意软件安装以后,将独立于操作系统和硬盘驱动,因此格式化硬盘和重装操作系统也拿它没办法。
原因是该恶意软件取代了苹果的数字签名。本来Mac下运行的固件程序都需要数字签名进行授权,现在数字签名被替换了后也就没有了相应的限制。同时,当前很少有方法可以清理受恶意软件感染了的引导系统。目前这个概念首次在OS X平台提出,暂时在真实环境下并没有发现这样的攻击实例,现有的技术也没法对这类攻击进行精确检测。
传播方式:
该恶意软件通过连接Mac机器Thunderbolt(雷电)接口的外接设备进行传播。当攻击者使用带有恶意软件的外接设备插入Mac机器中进行引导时,会把恶意Option ROM注入可扩展固件接口(EFI)。
Option ROM负责启用Mac系统的管理模式,并在系统加载前激活其他低级指令。它替换了Mac下的RSA密钥(key),使得不经过授权的固件程序也可以安装。这样的话,操控了生杀大权的Thunderbolt外接设备就可以随意往Mac安装恶意固件程序,没有新的key很难将它去除。
如何实施攻击
从表面上看,这种攻击行为需要短时间接触物理机,也许有童鞋会认为这种攻击实现难度比较高。
但事实未必如此,现实中仍然有很多攻击机会:比如,某名不怀好意的酒店服务人员可能有机会接触你的电脑,海关陆卡的人员也有很多机会接触他人电脑。前NSA员工斯诺登泄密的文档里也显示,从事美国情报工作的相关人员会拦截那些运往目标组织的设备硬件,在中途悄悄将修改过的固件程序装上去。
如何实施Thunderstrike式攻击呢?将恶意改装过的Thunderbolt设备插入Mac并将其重启就行。如果你碰到一台Mac机器开机后却发现存在密码校验机制,只需要按下电源键几秒钟对机器进行硬重启,固件密码、硬盘密码,以及用户密码等防护手段都将失效,因为Option ROMs在这些保护措施进行检测之前已经加载了。
“雷击(Thunderstrike)”的历史
Thunderstrike在去年12月下旬于混沌通信大会亮相。该漏洞由Trammell Hudson发现,这名安全研究员供职于纽约一家名为Two Sigma Investments的高科技对冲基金公司。当初发现这个漏洞时,他只是试图对公司的Mac笔记本进行安全加固。Hudson自称为一名逆向爱好者,以前曾以创建佳能单反相机的开源编程扩展包Magic Lantern而出名。
2012年黑帽大会曾展示了一个绕过OS X FileVault保护,然后安装rootkit的攻击案例。Thunderstrike的实现与其比较相似。如Thunderstrike一般,那款2012年黑帽大会的exp也使用了Thunderbolt端口,对引导进程注入了恶意payload。但是,它却不能对引导ROM本身进行更改。为了绕过这一限制,研究人员写出了针对EFI系统分区的bootkit。
Thunderstrike的其中一个技术突破点,是其可以通过引导ROM固件卷的验证。Hudson在常规验证过程中发现一个未证明的CRC32循环冗余校验程序,正是从这个里面他得到了启发。第二次技术突破点,则是Hudson发现Option ROMs会在恢复引导模式进行加载。就是这两个突破,让Hudson想出了如何替换苹果的现有的EFI代码。
Thunderstrike只是在12月混沌通信大会上演示的基于EFI的攻击之一,该大会演示了至少演示了两个以上的同类型攻击。其中有一个话题单独剖析了可扩展固件接口(UEFI),讨论了如何使用相似的机制用来引导启动某些Win或者Linux机器。Hudson表示,有一种名为黑暗绝地(Dark Jedi)的技术,黑客不需要进行物理接触,只需要远程实施攻击。
本周早些时候,美国CERT发布了关于使用UEFI的设备的三个漏洞的预警:
http://www.kb.cert.org/vuls/id/976132
http://www.kb.cert.org/vuls/id/766164
http://www.kb.cert.org/vuls/id/533140
此外,安全公司Bromium的某名研究员在关于UEFI讨论中,也发布有短篇的writeup。
漏洞作者的建议
Hudson表示苹果公司只会在局部修补漏洞,正是这个情况造就了“雷击(Thunderstrike)”漏洞。想要补救该漏洞,就需要禁止Option ROMs在固件更新时进行加载。Hudson指出,这个措施能有效地遏制其目前发现的漏洞影响。苹果公司已经升级了Mac Mini和iMac Retina 5k,而且打算尽量在短时间内向用户推广。
但是Hudson指出,苹果的这次升级并非一个完美的解决方案。Option ROMs仍然实行的是普通引导模式,所以2012年的那种攻击手法仍然能够起效,导致老版Mac在更新固件版本后反而会受到该类攻击。
在苹果提出完美修复方案之前,并没太多防御“雷击(Thunderstrike)”的可行方案。
也许在Thunderbolt端口浇上大量的环氧树脂胶确实会增加攻击难度,这样的话黑客不得不拆开外壳才能才能接触到底层的Flash ROM芯片。但是毕竟这是以禁用关键的功能为代价的……另一个不靠谱的解决方案,就是让电脑主人寸步不离机器,不过就算放在酒店保险箱和储物盒密封,也总会有被人进行物理接触的可能。
下一篇:一些APT攻击案例分享