在今天的大多数操作系统上,默认情况是,当我们安装程序时,它可以访问许多可能不需要的资源,而且用户可能无意让它访问。例如,当一个人安装一个封闭的源程序时,原则上没有什么可以阻止它读取~/.ssh
中的私钥并通过互联网将它们发送给恶意第三方,除非用户是安全专家熟练使用跟踪程序,他可能无法发现这种违规行为。
随着计算机上安装许多封闭源程序的激增,不同的操作系统采取了哪些措施来解决沙盒第三方程序的问题?
是否存在任何基于安全设计的操作系统,其中每个程序或可执行文件必须由用户以清晰可读的格式声明运行所需的资源,以便操作系统在沙箱中运行它它只能访问这些资源?例如,可执行文件必须声明它将需要访问文件系统上的某个目录或文件,它必须通过网络访问某些域或IP地址,它将需要一定量的内存,等等...如果可执行文件位于其系统资源要求声明中,则应阻止操作系统访问它们。
答案 0 :(得分:4)
这是虚拟化之美。任何执行测试或操作可疑应用程序的人都应该明智地使用虚拟机。
虚拟机:
使用VirtualBox等无缝模式虚拟化程序,您可以以几乎无缝的方式利用Virtual Machine的沙盒。
答案 1 :(得分:2)
您刚才在最后一段中描述了MAC(强制访问控制)。
答案 2 :(得分:0)
我也一直很好奇。
如今,像Android这样的移动操作系统确实内置了沙盒。安装应用程序时,它会要求访问一组资源/功能的权限。 Windows据我所知,至少在某种程度上。但它更宽容。
具有讽刺意味的是,Linux和其他人似乎距离基于软件的权限很远了#34;并被困在过去,这是一个遗憾。 ...至少,据我所知。我会很高兴有人向我展示错误,并告诉我一个"可用"内置应用程序沙盒/特权的开源系统。目前,据我所知,权限完全基于用户。
我认为这种意识不仅用户需要访问文档的权利,而且还需要权限来访问资源,这种意识已经缺失了几十年。它可能避免了本世纪的病毒和安全问题的瘟疫。