无接触窃取手机文件和照片研究人员详细解释苹果致命漏洞是如何产生的

  • 2020-12-09 14:04
  • 科技日报

12月1日,谷歌信息安全团队ProjectZero的研究员伊恩比尔发表了一篇3万字的文章,详细描述了他是如何发现并验证iOS系统的一个严重漏洞,即——,iOS内核内存损坏。

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

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

AWDL协议为攻击者提供了机会

比尔指出,这种漏洞攻击是通过苹果无线直连(AWDL)驱动程序中的缓冲区溢出实现的。

AWDL协议是空投和机载功能的基础协议。空投是一种在苹果设备之间传输文件的方式,而机载可以将iPad变成苹果笔记本的扩展显示器。

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

因为Wi-Fi设备(比如笔记本电脑、平板电脑、手机等。)具备同时接收和传输Wi-Fi信号的能力,设备间直接点对点通信成为可能。AWDL协议就是基于这一原理,使得苹果的设备无需外部网络就可以直接连接。

由于AWDL是通过蓝牙激活的,理论上,用户在使用蓝牙时,可以激活周边地区所有苹果设备的AWDL接口,这就为攻击者利用漏洞控制设备提供了机会。但是,并不是每个人都会一直打开设备的蓝牙功能。因此,要实现进攻,我们需要想办法先逼开AWDL。

代码错误导致系统崩溃

将超出其容量的数据写入缓冲区会导致缓冲区溢出,这是安全漏洞的重要原因之一。缓冲区溢出攻击会导致程序故障、系统停机、重启等后果。更严重的是,可以用来执行未经授权的指令,甚至获得系统权限,进而进行各种非法操作。

2018年,比尔在分析一个当年更新的苹果操作系统时,发现苹果开发者在苹果操作系统OSX的XNU内核代码中出现了编程错误,内核在解析带有不可信数据的代码时出现了缓冲区溢出。

比尔建立了一个远程任意存储器读/写原语来激活AWDL接口。激活成功后,可以使用AWDL缓冲区溢出来访问设备,植入的程序可以作为root用户(可以理解为管理员用户)运行,启动后几秒钟内即可获得内核内存的读/写权限。至此,可以说攻击基本实现了。

在Bill制作的演示视频中,我们可以看到,受害者的iPhone11Pro与攻击者并没有任何肢体接触,但是在攻击发起两分钟后,攻击者就轻松获得了手机刚刚拍摄的照片。

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

幸运的是,没有证据表明该漏洞被黑客非法使用。在谷歌的信息安全团队向苹果报告该漏洞后,苹果在今年5月的更新中修复了该漏洞。

威胁解除了,但是警报响了

为了避免漏洞重复出现,发现未知漏洞并尽快修复,Bill提出了三个重要建议。

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

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

最后,安全测试不能局限于模糊测试。这就意味着不仅要努力做更多样化的分析,还要下大力气去了解攻击者的工作方式,以做得比攻击者更好的方式打败他们。

当然,比尔认为,这些都是科技公司的任务。至于普通用户,保持设备更新,养成健康的上网习惯。好消息是,苹果的数据显示,大多数iPhone和iPad用户定期更新设备。(据《全球科学》报道)

头条推荐
图文推荐