BlackHat USA 2018 | 即将开幕的全球黑客狂欢盛典
|
3. 用户空间下的只读内存“杀伤力”巨大
如今,很多现代操作系统在各自的CPU架构层级中都实现了只读内存映射功能,并依靠此方法来抵御某些常见的安全攻击行为。通过将内存数据映射成只读内容,内存数据的拥有者(进程)将能够信任可访问到的内存数据,并减少一些不必要的安全方面的担忧,例如内存边界检测和TOCTTOU等问题。因为在只读内存映射功能的帮助下,我们可以假设其他进程在各自的虚拟空间内是无法对映射出来的只读内存进行直接操作的。 但是,这种假设并不一定是正确的。在过去的几年时间里,安全社区已经解决了不少相关的逻辑问题了,而这些问题绝大多数都是由操作系统对只读内存映射功能处理不当所导致的。比如说,某些情况下操作系统会将只读数据映射为可写数据,并且还没有对权限进行设定。这样一来,目标进程所拥有的内存内容将不再是可信任的了,并引起内存崩溃等问题,甚至还有可能导致攻击者在用户空间内实现权限提升。不过随着现代操作系统的不断升级,这些问题也很少出现了。从另一方面来看,移动设备附加的外围设备所提供的功能越来越丰富,DMA(直接内存访问)技术将允许我们快速地在主机和外围设备之间进行数据交换。DMA技术利用了IOMMU(输入/输出内存管理单元)来进行内存操作,因此CPU MMU所提供的内存保护机制在DMA进行数据传输期间将处于不可用状态。在2017年中旬,Google Project Zero团队的Gal Beniamini就利用DMA技术成功实现了对Nexus 6P和iPhone 7的攻击。然而,这种新型的攻击模型通常只适用于从设备到主机的攻击场景,并且需要固件漏洞才有可能实现对目标设备的完整控制。不幸的是,DMA相关的接口并不会直接暴露给用户空间的应用程序。 经过了几个月的研究之后,我们在iOS设备上发现了一个特例:即Apple图形(驱动)。在2017年的MOSEC移动安全技术峰会上,我们演示了如何对iOS 10.3.2和iOS 11 beta2系统进行越狱,而这两个版本是当时的iOS最新版本,iPhone 6s和iPhone 7运行的都是这两个版本操作系统的其中之一,不过演示过程的具体细节我们至今都没有对外公布。 在此次演讲过程中,我们将介绍相关漏洞的核心概念,其中包括:
在下一个部分中,我们将介绍两个漏洞的技术细节:第一个漏洞是DMA在处理主机虚拟内存时出现的,第二个漏洞是一个越界写入漏洞,该漏洞是由不受信任的用户空间只读内存导致的。 最后,我们将介绍怎样结合Apple Graphics组件中的这两个漏洞来在iOS应用程序沙箱中实现稳定的内存代码执行。 4. 无线安全:我们如何远程入侵特斯拉的网关、BCM以及自动驾驶ECU
(编辑:PHP编程网 - 湛江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

