如何安全地运行不受信任的代码

如何安全地运行不受信任的代码

我想从网上下载/编译/运行各种 c/c++ 库。这些库大多是半生不熟、鲜为人知和/或被遗弃的项目,其中一些来自可疑来源。我如何确保它们在安全的“沙盒”类型的环境中运行?我的意思是它们不会触及文件系统/网络资源。它们应该只返回我对它们进行的函数调用的值。

最好有一个适用于 Win/Linux 的解决方案,但至少适用于 Linux

答案1

对于 Linux,这是容器的理想工作负载。您只需使用 Docker (http://docker.io)这使得容器可以在几秒钟内轻松创建和销毁 - 比虚拟机快得多。

对于 Windows,据我所知,您只能使用 VM。

答案2

以非特权用户身份运行软件通常就足够了。除非您使用的内核容易受到 root 权限提升的影响。

sudo adduser SandBoxGuy
sudo passwd SandBoxGuy

现在以 SanBoxGuy 身份登录并运行您的软件,该软件将无法访问其他用户的文件或对 SandBoxGuy 用户目录之外造成任何损害。

所有这些都假设你的内核不易受到根权限提升的影响。

更大的答案可能是找到这里。它是针对 Raspberry Pi + Xserver 编写的,但它或多或少适合任何 Linux 系统。

相关内容