ARM TrustZone, Hypervisor:没有虚拟化扩展的Hypervisor功能



我发现了一些关于ARM的CPU虚拟化的有趣信息,我想知道你们是否可以帮助我更多地了解它。

基本上,一些叫做SierraWare的公司开发了一个ARM安全模式操作系统,叫做SierraTEE(他们说)虚拟化了一个像Linux/Android这样运行在非安全模式下的客户操作系统,只需要安全扩展。他们的一个演示文档中的一条信息引起了我的注意,特别是在第19页这个PDF http://www.sierraware.com/sierraware_tee_hypervisor_overview.pdf他们说:

Rootkits和Kernel Hacks的完整性检查:

  • 监控系统调用中断和中断处理程序。这将确保核心系统调用不被篡改。

系统调用中断"我理解SVC(=旧SWI)指令执行(如果我错了请纠正我),但通过&;监视&;我不太确定,因为它可能是实时监控定时监控对某些事件的监控。在我看来,他们可以监控SVC处理程序,以防止篡改:

  1. 不时地检查SVC处理程序(定时器中断,例如,因为IRQs和fiq可以路由到监视模式)-类似patchguard的方法,对我来说似乎不是很有用
  2. 检查SVC处理程序在SVC指令执行 (=某些事件监控)
  3. Trap SVC处理程序内存区域写访问(=实时监控)

关于方法2:是否有可能从安全模式中捕获非安全SVC指令执行 ?

关于方法3:是否有可能通过仅使用安全扩展来挂钩非安全内存区域写 ?

这里的"Monitor"可能是指Monitor模式,由Security Extensions添加的新模式。

我不太熟悉安全扩展,但我认为应该有可能将特定的内存区域标记为安全的,因此对它们的任何访问都会导致Monitor模式陷阱,然后可以处理访问并恢复非安全代码执行。

然而,我只是在ARM (B1.8.7异步异常行为摘要)中发现了这个通知:

在包含安全扩展但不不包括虚拟化扩展,以下内容配置允许非安全状态拒绝向安全状态。因此,ARM建议,只要可能,这些未使用配置:

  • 设置可控硅。IRQ为1。通过此配置,非安全PL1软件可以设置CPSR。I到1,拒绝irq的路由到监控模式。

  • 设置可控硅。SCR时FW到1。FIQ设置为1。通过此配置,非安全PL1软件可以设置CPSR。F到1,否认fiq到Monitor模式所需的路由

虚拟化扩展引入的更改删除了这些可能的拒绝服务。

因此,仅仅通过安全扩展来实现完美的虚拟化似乎是不可能的。

最新更新