HeadlinesBriefing favicon HeadlinesBriefing.com

Drop:支持 gVisor 的无根 Linux 沙箱

Hacker News •
×

我创建 Drop 是因为在我的主用户账户下安装第三方程序让我感到有风险。一个被攻陷的依赖项就可能危及我的系统——或者,由于我发布软件,还会危及我软件的所有用户。容器和虚拟机有所帮助,但对于本地工作而言,它们会剥离掉那些让我高效的工具和配置。

Drop 与语言无关,灵感来自 Python 的 virtualenv,但隔离是被强制执行的。每个环境都有自己的可写、可丢弃的主目录,选定的配置以大多只读的方式挂载。Drop 使用 Linux 命名空间(user、mount、network、PID、IPC、cgroup),不需要 root,并可选用 gVisor 的用户空间内核来针对宿主内核漏洞提供额外保护。

Drop 让你可以隔离编码代理——用 --dangerously-skip-permissions 运行它们,同时 Drop 强制执行操作系统级权限。一个幻觉产生的 rm -rf ~ 不会触及你真正的主目录。针对 ~/.ssh 的提示注入会一无所获。Localhost 服务会被拒绝。来自 PyPI、npm 或任何来源的第三方程序都被限制在容器内。

与 Docker/Podman 不同,Drop 使用你现有的发行版,因此每个已安装的程序都可用。高层 TOML 配置暴露文件、目录和本地服务。所有环境共享一个基础配置。Drop 在执行前丢弃所有用户命名空间能力,防止诸如绑定挂载之类的特权操作。

这是我的第 3 次提交;前两次没有引起任何关注。自那以后,我添加了 gVisor 支持和一个项目网站。

关键实体:公司:Hacker News

FAQ:Drop 与 Docker 或 Podman 有何不同?

Drop 使用你现有的发行版而不是容器镜像,因此所有已安装的程序都保持可用。它以无根方式运行,使用 Linux 命名空间并可选用 gVisor,并且强制执行隔离,而不是依赖约定。

FAQ 问:Drop 与 Docker 或 Podman 有何不同?

FAQ 答:Drop 使用你现有的发行版而不是容器镜像,因此所有已安装的程序都保持可用。它以无根方式运行,使用 Linux 命名空间并可选用 gVisor,并且强制执行隔离,而不是依赖约定。