【问题标题】:Sandboxed operating system沙盒操作系统
【发布时间】:2011-06-20 04:21:42
【问题描述】:

在当今的大多数操作系统上,默认设置是,当我们安装程序时,它被授予对许多它可能不需要的资源的访问权限,并且用户可能不打算授予它访问权限。例如,当安装一个闭源程序时,原则上没有什么可以阻止它读取~/.ssh中的私钥并通过互联网将其发送给恶意的第三方,除非用户是精通的安全专家使用跟踪程序,他可能无法检测到此类违规行为。

随着许多封闭源程序安装在计算机上的激增,不同的操作系统采取了哪些措施来解决沙盒第三方程序的问题?

是否存在从一开始就考虑到安全性的操作系统,其中每个程序或可执行文件都必须以用户清晰可读的格式声明它需要运行哪些资源,以便操作系统在沙盒中运行它它只能访问那些资源?例如,可执行文件必须声明它需要访问文件系统上的某个目录或文件,它必须通过网络到达某些域或 IP 地址,它需要一定数量的内存等...如果可执行文件位于其系统资源要求的声明中,则应阻止操作系统访问它们。

【问题讨论】:

    标签: security operating-system sandbox


    【解决方案1】:

    这是虚拟化的美妙之处。任何执行测试或操作有问题的应用程序的人都应该使用虚拟机。

    虚拟机:

    • 无需直接硬件访问即可提供完整操作系统的优势
    • 可以在不影响主机的情况下崩溃或失败并重新启动
    • 在各种环境中部署和配置成本低廉
    • 非常适合使用为其他平台设计的应用程序
    • 沙盒应用程序可能会尝试访问您计算机上的其他私人数据

    借助 VirtualBox 等虚拟化程序提供的无缝模式,您可以以几乎无缝的方式利用虚拟机的沙盒。

    【讨论】:

    • Qubes (qubes-os.org/Architecture.html) 是一个使用虚拟机实现独立域的项目。在某些方面,这是使用虚拟化作为构建块重新发现/重新实现 MAC。
    • 虚拟化的开销很大,必须为每个应用程序安装单独的操作系统。拥有一个具有强制访问控制的单一操作系统会更有效,它将每个应用程序沙箱化。
    • 是的,我同意每个应用程序的虚拟化都是对开销的巨大浪费。如前所述,这是强制访问控制的妥协。但是,如果您需要现代操作系统来运行相关应用程序,则用户可以轻松设置和管理多个应用程序的单个虚拟化实例。
    【解决方案2】:

    您刚刚在上一段中描述了 MAC(强制访问控制)。

    【讨论】:

      【解决方案3】:

      我也一直很好奇。

      如今,Android 等移动操作系统确实内置了沙盒功能。安装应用程序时,它会请求访问一组资源/功能的权限。据我所知,Windows 也是如此,至少在某种程度上是这样。但它更宽容。

      讽刺的是,linux和其他人在“基于软件的权限”问题上似乎遥遥无期,一直停留在过去,很可惜。 ...至少,据我所知。我会很高兴有人向我展示错误并向我展示一个“可用”的开源系统,其中内置了应用程序沙盒/特权。目前,据我所知,权限完全基于用户。

      我认为这种意识已经缺失了几十年,即不仅用户需要访问文档的权限,而且可执行文件也需要访问资源的权限。它可能避免了我们这个世纪的病毒和安全问题的瘟疫。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-23
        • 2014-05-27
        • 2019-02-21
        相关资源
        最近更新 更多