设计原则
1.不要在塑造车轮:诱导用一个更安全的模式扩展操作系统内核。不要这样做,让系统将其安全应用到其控制的对象上。在另一方面,创建应用程序级别的通用安全模型也是可以的。
2.最小授权原则:这个原则适用于沙箱模型和控制沙箱模型的代码。换句话说,沙箱模型应该在用户不能提升至超级用户的情况下依然正常工作
3.假设沙箱模型的代码是恶意代码: For threat-modeling purposes, we consider the sandbox compromised (that is, running malicious code) once the execution path reaches past a few early calls in the main() function.事实上,其几乎和第一个外部输入被接受时同时发生,或者刚好进入主循环时。
4.敏捷:非恶意代码不会试图访问其不能获取的资源。在这种情况下,沙箱应该尽量不要加强影响。在控制管理器中,一个敏感资源需要被修改时,为了这种个别情况,性能代价也是可以的。这通常是操作系统安全政正确适用的情况。
5.仿真是不安全的:仿真和虚拟机的解方案不是因爱其自身提供的安全。沙箱不应该依赖代码仿真,或者代码转换或者补丁,来提供安全。
沙箱模型在windows上的构架
windows上的沙箱模型是一个用户模式。没有特别的内核模型驱动,用户不需要管理员权限,沙箱模型就能正确运行。沙箱主要为32位进程设计,已经在 windows 2000/xp32/vista 32-64位上测试。