ARM TrustZone,Hypervisor:虚拟机管理程序功能,没有虚拟化扩展

时间:2014-03-11 09:16:02

标签: arm virtualization hypervisor trust-zone

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

基本上,一家名为SierraWare的公司的人开发了一个名为 SierraTEE 的ARM安全模式操作系统(他们说)虚拟化以非安全模式运行的Linux / Android等客户操作系统,仅需要安全扩展程序。他们的一份演示文稿中的一条信息引起了我的注意,特别是在他们所说的PDF http://www.sierraware.com/sierraware_tee_hypervisor_overview.pdf第19页中:

  

Rootkit和内核黑客的完整性检查:

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

通过“ Syscall中断”我理解 SVC(=旧SWI)指令执行(如果我错了,请纠正我),但是通过“监控< / em>“我不太确定,因为它可能实时监控从时间监控对某些事件监控即可。在我看来,他们可以监控 SVC处理程序以防止篡改:

  1. 不时检查SVC处理程序 (例如,计时器中断,因为IRQ和FIQ可以路由到监控模式) - 类似PatchGuard的方法,对我来说似乎没什么用处
  2. 检查SVC处理程序 SVC指令执行(= 某些事件监控
  3. 陷阱 SVC处理程序内存区域写访问(= 实时监控
  4. 关于方法2 :是否可以从安全模式中捕获非安全SVC指令

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

    非常感谢

1 个答案:

答案 0 :(得分:0)

&#34;监视器&#34;这里可以参考安全扩展添加的新模式监控模式

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

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

  

在包含安全扩展的实现中,但确实如此   不包括Virtualization Extensions,以下内容   配置允许非安全状态拒绝服务   安全的状态。因此,ARM建议尽可能使用这些   配置未使用:

     
      
  • 将SCR.IRQ设置为1.使用此配置,非安全PL1软件可以将CPSR.I设置为1,拒绝IRQ所需的路由   监控模式。

  •   
  • 当SCR.FIQ设置为1时,将SCR.FW设置为1.使用此配置,非安全PL1软件可以将CPSR.F设置为1,拒绝   FIQ到监控模式所需的路由。

  •   
     

Virtualization Extensions引入的更改将删除这些更改   可能拒绝服务。

因此,仅使用安全扩展程序似乎无法实现完美的虚拟化。