我找到了一些有关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处理程序以防止篡改:
关于方法2 :是否可以从安全模式中捕获非安全SVC指令?
关于方法3 :是否可以通过仅使用安全扩展 来挂钩非安全内存区域 ?
非常感谢
答案 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引入的更改将删除这些更改 可能拒绝服务。
因此,仅使用安全扩展程序似乎无法实现完美的虚拟化。