Skip to main content
QUICK REVIEW

[论文解读] Sprobes: Enforcing Kernel Code Integrity on the TrustZone Architecture

Xinyang Ge, Hayawardh Vijayakumar|arXiv (Cornell University)|Oct 28, 2014
Security and Verification in Computing参考文献 18被引用 74
一句话总结

本文提出 SPROBES,一种新颖机制,通过在特定内核指令上启用不可伪造陷阱,实现对启用 ARM TrustZone 的智能手机的内核代码完整性保护。通过强制执行五个关键不变量,SPROBES 防止 rootkit 移除检测代码,证明仅需 12 个 SPROBES 即可保护 Linux 内核 2.6.38。

ABSTRACT

Many smartphones now deploy conventional operating systems, so the rootkit attacks so prevalent on desktop and server systems are now a threat to smartphones. While researchers have advocated using virtualization to detect and prevent attacks on operating systems (e.g., VM introspection and trusted virtual domains), virtualization is not practical on smartphone systems due to the lack of virtualization support and/or the expense of virtualization. Current smartphone processors do have hardware support for running a protected environment, such as the ARM TrustZone extensions, but such hardware does not control the operating system operations sufficiently to enable VM introspection. In particular, a conventional operating system running with TrustZone still retains full control of memory management, which a rootkit can use to prevent traps on sensitive instructions or memory accesses necessary for effective introspection. In this paper, we present SPROBES, a novel primitive that enables introspection of operating systems running on ARM TrustZone hardware. Using SPROBES, an introspection mechanism protected by TrustZone can instrument individual operating system instructions of its choice, receiving an unforgeable trap whenever any SPROBE is executed. The key challenge in designing SPROBES is preventing the rootkit from removing them, but we identify a set of five invariants whose enforcement is sufficient to restrict rootkits to execute only approved, SPROBE-injected kernel code. We implemented a proof-of-concept version of SPROBES for the ARM Fast Models emulator, demonstrating that in Linux kernel 2.6.38, only 12 SPROBES are sufficient to enforce all five of these invariants. With SPROBES we show that it is possible to leverage the limited TrustZone extensions to limit conventional kernel execution to approved code comprehensively.

研究动机与目标

  • 应对运行传统操作系统的智能手机上日益增长的 rootkit 攻击威胁。
  • 克服基于虚拟化的内省机制的局限性,该机制在智能手机上不切实际,原因在于缺乏虚拟化支持且开销过高。
  • 利用 ARM TrustZone 的硬件隔离,实现内核代码完整性,而无需完整虚拟化。
  • 设计一种机制,防止 rootkit 移除检测代码,确保恶意代码的持续检测能力。
  • 证明仅需极少数 SPROBES 即可全面保护可信硬件上的内核执行。

提出的方法

  • 引入 SPROBES 作为一种新原语,使可信监控器能够对单个内核指令进行内省检测。
  • 利用 TrustZone 的安全世界强制执行五个不变量,限制内核仅执行经批准的、已注入 SPROBE 的代码。
  • 通过使 SPROBE 执行在正常世界内核中可检测且不可逆,确保陷阱生成不可伪造。
  • 在 ARM Fast Models 模拟器上实现针对 Linux 内核 2.6.38 的概念验证原型。
  • 设计 SPROBE 机制,使得任何试图移除或绕过它的行为都会违反至少一个不变量。
  • 利用硬件强制内存隔离和安全异常处理,防止恶意内核对 SPROBE 状态进行操纵。

实验结果

研究问题

  • RQ1在硬件虚拟化支持有限的智能手机上,能否强制实现内核代码完整性?
  • RQ2在无完整虚拟化支持的情况下,TrustZone 中的可信监控器如何检测并防止 rootkit 对内核代码的篡改?
  • RQ3何种最小不变量集合可确保 rootkit 无法移除或绕过 SPROBE 检测?
  • RQ4是否可行仅使用少量 SPROBES 实现对真实世界内核的全面内核内省?
  • RQ5SPROBES 是否能以足够高的效率实现,从而在移动平台上具备实用性?

主要发现

  • SPROBES 通过在选定内核指令上启用不可伪造陷阱,成功在 ARM TrustZone 上强制执行了内核代码完整性。
  • 仅需 12 个 SPROBES 即可强制执行 Linux 内核 2.6.38 中的所有五个不变量,证明了其高效率。
  • 五个不变量共同作用,防止 rootkit 移除或绕过 SPROBE,确保了持续的内省能力。
  • 在 ARM Fast Models 模拟器上的概念验证实现,证实了 SPROBES 在真实世界内核上的可行性。
  • SPROBES 实现了有效的内省,且无需完整虚拟化,因此在移动系统中具备实用性。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。