如果不对 ring0 中运行的程序进行正式验证,如何确保安全性?可以在没有不同用户空间内核空间的情况下使用 VM 吗?
问问题
225 次
1 回答
1
这个问题有点令人困惑,但我会尽力回答。
在大多数人理解的意义上,以特权模式运行任何不受信任的代码都不太可能是“安全的”。但是,正如您正确推测的那样,可以使用类似于虚拟机的东西来缓和不受信任的进程在该环境中可以采取的操作。这是现代“管理程序”运行的原则——对硬件(或内存)的访问由一些“监控”软件或硬件调节。
也就是说,如果您采用这种方法,那么很可能需要对虚拟机进行形式验证。否则,恶意构建的程序似乎有可能找到逃离虚拟机的方法,或者使虚拟机以不良方式运行。
解决这个问题的一种合理的现代方法是使用带有证明的代码,其中一段不受信任的代码带有一个机器可检查的证明,证明它的行为符合某些安全策略。主机操作系统此时需要做的就是根据代码检查证明(计算上相当便宜的操作),然后运行该代码是安全的,而无需对其进行虚拟化或进行任何运行时检查。
于 2010-07-18T22:00:53.633 回答