Drop: 无需 root 的 Linux 沙箱隔离环境
Show HN: Drop – a rootless Linux sandbox with gVisor support

Drop 是一个无需 root 权限的 Linux 沙箱工具,支持 gVisor 集成,让你在不离开熟悉开发环境的前提下安全隔离程序与 AI 编码代理。它利用现有系统分布,无需像 Docker 那样配置容器,只需一条命令即可创建独立环境。Drop 为每个环境提供专属家目录,隐藏原始配置并限制网络访问,有效防止恶意代码或供应链攻击破坏主系统。无论是运行第三方程序还是测试危险脚本,Drop 都能确保你的系统安全无忧。
一个被幻觉触发的 rm -rf ~ 命令,再也无法触及你真实的家目录。
HN 评论区
50- refibrillator
Hi OP,挺巧的,我也正在做类似的东西。看来我们不少人在做这事儿!这算是对你思路的一种验证吧。
我很喜欢你 README 里有几段文字对比了该领域的主流工具。不过个人感觉,它在安全差异化(如果有的话)方面讲得有点轻。比如,你使用的底层原语和 nsjail、runc 等工具是一样的。因此,看起来你在某些方面重新造了这些库,所以很好奇你选择这种方式而不是直接基于这些原语构建的理由是什么。
- saghm
这对我来说超级有趣。我一直慢慢地在做一个类似的项目(https://gitlab.com/saghm/tartarus),因为我理想的沙箱化是“防止向该目录之外写入任何内容,但仍允许读取大多数内容,这样我就不必手动将文件复制到容器或虚拟机中”。我的做法是尝试弄清楚如何基于配置文件构建一个 bubblewrap,使其具备我想要的属性,希望最终能通过像 MacOS 上的 `sandbox-exec` 这样的东西扩展到其他平台,但有一段时间我没时间继续推进了。
乍一看,这似乎提供了我当初决定自己写代码时正在寻找的大部分功能,但它专注于 Linux,并提供了一个更完整的沙箱,而不仅仅是关注我个人需要的一小部分权限。我花最多时间(也是最不加固)的功能,是尝试弄清楚如何允许任意 GUI 应用程序运行,以便我能通过 Zed 在其中运行代理。
我肯定会试用一下,看看它对我来说效果如何。让我觉得疯狂的是,这么大的事,各大 AI 公司竟然还没解决,除了通过其框架中内置的不透明规则,或者极其糟糕的手动规则,要求我硬编码我想允许或禁止的 shell 命令结构。
- programd
所以大家都在使用各种临时的解决方案来处理代理隔离,而 Drop 看起来是经过深思熟虑的。但显而易见的问题是,专业人士用的是什么?Anthropic、OpenAI、SpaceXAI、Google 和 Amazon 内部是如何处理隔离代理环境问题的?
根据过去的经验,我猜大家都在用 Kubernetes,但具体细节是什么?是 Kubernetes 上精简版的 VM?还是加固后的容器?我们其他人能在 K3s 上搭建类似的东西吗?
有人知道答案并愿意分享吗?
- p2004a
感谢你的开发!几周前我开始使用 Drop,到目前为止非常满意(再次感谢你快速修复了我报告的一些问题 :)!)。
对我来说,它在便利性和隔离性之间取得了很好的平衡,我希望最终能将其作为默认选项用于所有开发工作。
我目前面临的主要挑战,也是我之前找到的任何解决方案都无法解决的,包括:
- 容器化应用的开发,例如使用 docker/podman compose 来启动服务
- 需要硬件加速的 GUI 应用开发,比如游戏(也许可以像 flatpak 那样,为 pipewire 和 wayland 设置安全上下文?)
上次我研究这个领域时,https://litterbox.work/ 是另一个我考虑过的选项,它也很不错,但使用门槛比 Drop 高:环境重建更慢,缺乏“基础”配置等。到目前为止,Drop 对我来说更容易上手。
- yu3zhou4
Gratulacje Jan!看起来这在安全方面是当今获得采用的关键。对于其他好奇它如何工作的人来说,我发现这个文档页面比着陆页更 informative:https://droprun.sh/docs/sandbox-overview/