2020年12月09日 星期三
可无接触窃取手机文件和照片 研究人员详解苹果致命漏洞如何产生
视觉中国供图

    12月1日,来自谷歌信息安全团队Project Zero的研究人员伊恩·比尔发布了一篇长达3万字的文章,详细描述了他是如何发现并验证了一个iOS系统的严重漏洞——iOS内核中的内存损坏错误。

    据了解,这个漏洞让攻击者可通过Wi-Fi远程控制被入侵设备,还能通过被入侵手机的AirDrop功能任意发送本地文件和照片,与其他iOS设备共享屏幕,甚至可以通过麦克风和摄像头直接监听和监视用户。可以说,这是苹果有史以来最令人震惊的漏洞之一。

    谷歌信息安全团队此前已经向苹果方面提交了报告,该漏洞已于今年5月被修复。

    AWDL协议为攻击者提供机会

    比尔指出,这个漏洞攻击是通过苹果无线直接链接(AWDL)驱动程序中的缓冲区溢出完成的。

    AWDL协议是隔空投送和随航等功能的底层协议,隔空投送是苹果设备之间互相传输文件的一种方式,而随航可以将iPad变成Mac笔记本的扩展显示屏。

    在日常生活中,当用户通过无线方式在不同设备间传输文件时,可能较多使用微信、QQ、电子邮件等方式。这种情况下,数据包会从设备通过电磁波信号发向路由器,再由网线传输到光猫,之后通过光纤传入运营商,到达相应服务器后,再将数据包原路返回,传输给另一个设备。如果投屏或其他操作是在同一Wi-Fi环境下进行,数据包也至少会经过路由器的中转。

    由于Wi-Fi设备(如笔记本电脑、平板电脑、手机等)都同时拥有接收和发射Wi-Fi信号的能力,所以设备之间具备了直接点对点通信的可能。AWDL协议正是基于这样的原理,实现了让苹果公司的设备无需外部网络就能直连。

    由于AWDL由蓝牙激活,所以理论上来说,用户在使用蓝牙时,能够激活周边范围内所有苹果设备的AWDL接口,这就给攻击者利用漏洞控制设备提供了机会。不过,并非所有人都会一直开启设备的蓝牙功能。所以要实现攻击,需要先想办法强制开启AWDL。

    代码错误让系统溃不成军

    向缓冲区写入超出其容量的数据造成缓冲区溢出,是安全漏洞产生的重要原因之一。利用缓冲区溢出攻击,可以导致程序运行失败、系统宕机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。

    2018年,比尔在分析某个当年更新的苹果操作系统时发现,苹果开发人员在苹果操作系统OS X的XNU内核的代码中出现了编程错误,内核解析不可信数据的代码时就会出现缓冲区溢出。

    比尔建立了一个远程任意内存读写基元来激活AWDL接口,成功激活后,可利用AWDL缓冲区溢出来访问设备,并以root用户(可理解为管理员用户)身份运行植入程序,在启动后的几秒钟就可获得内核内存的读写权限。到了这一步,可以说基本上已经实现了攻击。

    在比尔制作的演示视频中可以看到,受害者的iPhone 11 Pro与攻击者没有出现任何物理接触,但是攻击发起两分钟后,攻击者轻易获得了手机刚刚拍摄的照片。

    经过测试,比尔发现,攻击可以顺利在攻击者设备的Wi-Fi信号覆盖范围之内进行。如果使用定向天线,更高功率的发射器,可以将攻击范围提升到很远的距离。

    值得庆幸的是,目前还没有证据表明这个漏洞曾被黑客非法使用过。而谷歌信息安全团队将漏洞报告给苹果公司后,苹果公司已经在今年5月的更新中修复了这个漏洞。

    威胁解除但警钟长鸣

    为了避免漏洞再次出现,以及尽快发现未知的漏洞并将其修复,比尔提出了3项重要建议。

    首先,对于如何更新升级核心代码,应该有一个长期的策略和计划。此次苹果的漏洞中涉及的重要文件“vm_map.c”,其最初版本写于1985年,至今仍在使用。

    其次,对于如何快速提高新代码的质量,应该制定短期策略。例如进行广泛的自动化测试,对关键的安全代码进行严格审查,以及创作高效的内部工作日志,以便开发人员了解其代码在整体安全框架中的位置。

    最后,安全性测试不能局限于模糊测试。这不仅意味着要尝试进行更多样化的分析,还要付出大量努力去了解攻击者的工作方式,比攻击者做得更好才能击败他们。

    当然,比尔认为,这些都是科技公司的任务。至于普通用户,保持设备进行系统更新,形成健康的上网习惯即可。好消息是,苹果方面的数据显示,大部分iPhone和iPad用户都会定期更新设备。(据环球科学)  

京ICP备06005116