如何对应用程序进行沙盒化?

如何对应用程序进行沙盒化?

我想运行不受信任的小型程序,但限制它们访问文件夹之外的任何文件、网络访问以及它们实际上不需要的所有其他内容。实现此目的的最简单方法是什么?

答案1

如果它们确实不受信任,而您想要确保万无一失,那么您可以设置一个单独的盒子。无论是真的,还是虚拟的。

此外,如果你够谨慎,你不会希望那个盒子和你的重要资料在同一个网络中。在所有解决方案中,你都会设置一个没有权限的单独用户,这样就不会向潜在的妥协者开放太多工具。

  • 因此,最安全的选择是从您的网络物理移除一个单独的盒子。
  • 你可以通过将其添加到物理网络,但在不同的子网上稍微让步:内部没有“真正的”连接
  • 虚拟机是一种选择,但可能不得不放弃一些性能

如果你一定要在同一个盒子上运行它,那么你可以使用这个选项

  • chroot。这是许多人执行此操作的默认选项,对于非特定威胁,它甚至可能有效。但它不是一个安全选项,而且很容易被破解。我建议按预期使用它,即不为了安全。

最后,你可能需要设置一个特定的沙盒模型,而不需要虚拟化或单独的盒子,也不需要仍然存在风险的情况chroot。我怀疑这不是你的意思,但看看此链接以获取更多深入信息。

答案2

火狱相当新,并且正在不断开发中。易于使用。

您可以简单地:

sudo apt-get install firejail
firejail app

答案3

完全虚拟化/仿真(VirtualBox)

一种可能的解决方案是虚拟化软件,例如您可以在软件中心找到的 VirtualBox。

  • 安装 Virtual Box
  • 创建启用网络的虚拟机
  • 安装 Ubuntu 或者更轻量的桌面,比如 Lubuntu
  • 完全更新已安装的操作系统(在虚拟盒内)
  • 在虚拟机上禁用网络
  • 拍摄快照

现在,您可以安装您不信任的软件,看看它能做什么。它无法扰乱外界或您的主机操作系统,因为它无权访问。

它可能会破坏您的虚拟机,但如果真的如此,您可以从快照中恢复。

可能还有其他方法可以限制不受信任的软件的破坏力,但这是我能想到的最强大的方法。

基于容器的虚拟化(Docker/LXC)

另一个选择可能是龙芯更多信息这里

LXC 是 Linux 容器的用户空间控制包,是一种轻量级虚拟系统机制,有时被描述为“增强版 chroot”。

LXC由chroot构建而成,实现完整的虚拟系统,在Linux现有的进程管理基础架构上添加了资源管理和隔离机制。

它在软件中心可用。但我没有使用过。

答案4

Mbox 是一种轻量级沙盒机制,任何用户都可以在商品操作系统中使用它,无需特殊权限。

我曾可靠地用它做过一些事情。

相关内容