移动计算设备正在处理越来越多的个人敏感数据。此类敏感数据的存在,再加上与外界的持续连接,导致恶意行为者加大了投资力度,他们有兴趣利用漏洞来进一步实现自己的目标。
操作系统借助硬件内存管理单元 (MMU) 提供抽象化,以隔离不相关的进程。只有属于可信计算库 (TCB) 的组件才被允许直接对这些 MMU 进行编程。
自引入类 Unix 操作系统以来,此模型一直是隐私和安全实施的基础。但是,此要求已变得有问题,因为如今的 TCB 过大:它包括大多数设备和总线驱动程序、复杂的调度程序、文件系统、网络堆栈和协议、缓存、可执行文件解析器和加载程序以及套接字。已变得很难确保这个复杂系统的每个角落都是安全的。
Linux 内核有超过 2000 万行代码,其变更和重写速度惊人。这种增长对 Android 和我们的生态系统来说是巨大的帮助。但是,其庞大的 TCB 使得很难确保不存在可利用的漏洞。
硬件供应商已开发出解决方案,例如 Arm 的 TrustZone,它允许处理器在安全模式下运行,并将内存事务标记为“安全”或“非安全”。在此类系统中,敏感数据存储在安全世界中,并且只能由安全世界直接访问,安全世界按需向非安全世界提供服务。
这些解决方案的主要限制在于,网域过于粗略:只有安全和非安全。随着引入更多需要与操作系统隔离的用例,攻击面会增加,漏洞很可能导致整个设备遭到入侵。
当今解决方案的另一个限制是,它们是为相对静态的世界设计的,其中所有用例资源都已事先核算和分配。这些解决方案不足以满足按需分配资源的动态用例。
此外,Android 操作系统外部使用的 API 是分散的,并且限制了我们在 Android 规模上部署用例的能力,包括 Keymint 和 Gatekeeper 等基本功能。
为了解决这些限制并使 Android 能够为下一代用例提供强大的基础,Android 13 引入了安全虚拟化作为 Android 虚拟化框架 (AVF)。
AVF 的主要目标是为下一代用例提供安全且私密的执行环境。