苹果推出新型内存完整性强制执行技术
苹果在iPhone 17中引入了一项创新的硬件/软件安全功能:“内存完整性强制执行”,专门针对Pegasus等间谍产品通常用来获取未授权系统访问权限的内存安全漏洞。
近年来,全球科技行业兴起一场持续发展的运动,旨在解决普遍存在且隐蔽的内存安全漏洞问题。计算机内存是所有程序共享的资源,当软件能够从计算机内存中提取本应禁止访问的数据,或操纵内存中程序本不应访问的数据时,就会出现内存安全问题。
即使是有经验和安全意识强的开发人员在使用C和C++等普遍使用的历史编程语言编写软件时,也很容易犯导致内存安全漏洞的错误。这就是为什么特殊编程语言等主动工具正在激增,目标是从结构上确保软件不可能包含这些漏洞,而不是试图避免引入或捕获所有漏洞。
由于全球大部分代码库都建立在内存不安全编程语言的基础上,苹果的安全工程与架构团队认为,将内存安全机制置于苹果芯片的核心可能是解决这一棘手问题的有效方案。该团队基于芯片制造商Arm于2019年发布的内存标签扩展规范进行开发,其核心思想是通过硬件为每个内存分配设置密码保护,系统只有在访问请求包含正确密钥时才会授予对该内存区域的访问权限。
Arm开发MTE作为帮助开发人员发现和修复内存损坏错误的工具。如果系统收到未通过密钥检查的内存访问请求,应用程序将崩溃,系统将记录事件序列供开发人员审查。苹果工程师思考MTE是否可以持续运行而不仅仅作为调试工具使用,并与Arm合作于2022年发布了增强内存标签扩展规范版本。
为了实现针对内存安全漏洞利用的持续实时防护,苹果花费数年时间在其芯片深处构建这种保护,使得该功能可以在不影响整体处理器和内存性能的情况下为用户持续启用。尽管为每个内存分配生成并附加密钥,然后要求程序为每个内存请求管理和生成这些密钥可能会影响性能,但苹果表示已成功解决了这一难题。