中文

Sprobes:在 TrustZone 架构上强制实施内核代码完整性

密码学与安全 2014-10-29 v1 操作系统

摘要

许多智能手机现在部署了常规操作系统,因此在桌面和服务器系统上盛行的 rootkit 攻击如今也对智能手机构成了威胁。虽然研究人员主张利用虚拟化来检测和防止针对操作系统的攻击(例如虚拟机内省和可信虚拟域),但由于缺乏虚拟化支持和/或虚拟化成本高昂,虚拟化在智能手机系统上并不实用。当前的智能手机处理器确实拥有运行受保护环境的硬件支持,如 ARM TrustZone 扩展,但此类硬件不足以控制操作系统操作以实现虚拟机内省。特别是,在 TrustZone 上运行的常规操作系统仍然保留对内存管理的完全控制权,rootkit 可利用这一点来阻止有效内省所需的敏感指令或内存访问陷阱。在本文中,我们提出了 SPROBES,这是一种使内省机制能够作用于运行在 ARM TrustZone 硬件上的操作系统的新型原语。利用 SPROBES,受 TrustZone 保护的内省机制可以对其选择的单个操作系统指令进行插桩,并在执行任何 SPROBE 时接收不可伪造的陷阱。设计 SPROBES 的关键挑战在于防止 rootkit 将其移除,但我们确定了一组五个不变量,强制实施这些不变量足以限制 rootkit 仅执行经批准的、由 SPROBE 注入的内核代码。我们在 ARM Fast Models 模拟器上实现了 SPROBES 的概念验证版本,表明在 Linux 内核 2.6.38 中,仅需 12 个 SPROBES 即可强制实施所有这五个不变量。通过 SPROBES,我们展示了利用有限的 TrustZone 扩展将常规内核执行全面限制为仅允许代码的可行性。

关键词

引用

@article{arxiv.1410.7747,
  title  = {Sprobes: Enforcing Kernel Code Integrity on the TrustZone Architecture},
  author = {Xinyang Ge and Hayawardh Vijayakumar and Trent Jaeger},
  journal= {arXiv preprint arXiv:1410.7747},
  year   = {2014}
}

备注

In Proceedings of the Third Workshop on Mobile Security Technologies (MoST) 2014 (http://arxiv.org/abs/1410.6674)