AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Dify 宣布开源 DifySandbox - 快速、安全的代码运行环境
发布日期:2024-07-12 10:09:20 浏览次数: 2850 来源:Dify


Dify 致力于帮助用户构建可投产的 LLM 应用。开发者可以在 Workflow 里添加代码节点来构建复杂的应用,实现自定义的业务逻辑。为了给用户提供安全、高效的代码执行环境,并同时确保系统免受恶意代码的攻击,我们推出了 DifySandbox。今天,我们兴奋地宣布 DifySandbox 正式开源,这标志着 Dify 在开放性和代码透明度方面迈出了重要一步

Dify 为什么需要自研 Sandbox?

为 Dify Workflow 提供代码执行环境

DifySandbox 与 Workflow 深度集成,为 Code 节点、Template Transform 节点、LLM 节点以及 Tool 节点中的 Code Interpreter 提供底层代码执行环境。作为复杂 Workflow 的运行基础,DifySandbox 能够支持 LLM 应用内部的结构化数据转换、数据拼接和逻辑处理,帮助开发者构建更加强大的应用。

阻拦恶意代码

单一的代码执行环境无法提供足够的安全保障。没有适当的限制,正常的业务逻辑和潜在的恶意代码都能在环境中执行。恶意代码可能会访问敏感资源、读取服务器文件,甚至删除数据库。针对这一安全隐患,DifySandbox 实现了双重功能:既能隔离潜在的恶意代码,又能让正常的业务代码顺利运行,从而提供了一个真正安全的代码执行环境。

现有沙盒方案的局限性

通过对目前市面上的主流沙盒方案的调研,我们发现市面上现有的主流方案存在很多局限性:
  • WebAssembly:自由度不够高,安装第三方依赖困难。

  • Docker:基于一次执行一个容器的方案运行速度慢,并可能导致 docker 被劫持。

  • 特定语言的沙盒包:限制在单一语言,不是通用方案。

  • 内核扩展:配置复杂,并要求系统特权,存在潜在安全隐患。


DifySandbox 的安全机制

为了突破传统沙盒方案的瓶颈,提供更安全,灵活,通用的代码执行环境,我们自主研发了 DifySandbox,同时设计了操作系统、文件系统、网络等多个方面的隔离策略来确保 Dify 的安全性:
  • 系统安全:使用白名单策略,只允许运行特定的系统调用,有效防止意外或恶意的系统调用绕过,同时保证了业务代码的正常运行。

  • 文件系统隔离:用户代码将运行在一个独立的隔离的文件系统中。

  • 网络隔离:独立的 Sandbox 网络,使用代理容器进行网络访问,确保内网系统的安全,同时提供了灵活的代理配置方案。

  • 权限隔离:确保恶意代码永远保持在最低权限。

开放透明,拥抱开源

在 Dify,我们坚信开源的力量。对我们而言,这不是一句口号,而是我们对开源文化的坚持,也是我们推动技术共享和社区合作承诺的一部分。为践行这一承诺,我们在GitHub 上公开了 DifySandbox 的源代码。通过开源 DifySandbox 3,000 行代码,我们邀请你成为 Dify 故事的一部分,深入探索 DifySandbox 的技术细节,发掘它的能力。

对于开发者而言,DifySandbox 提供了以下几方面的优势:

  • 可扩展性:DifySandbox 是基于 Seccomp 的系统层级解决方案,已支持 Python 和 NodeJS,并具备扩展至更多编程语言的技术基础。

  • 高性能:作为系统级解决方案,DifySandbox 采用单容器多任务运行模式,避免了为每个任务单独创建容器的资源消耗,从而显著提升了任务处理速度。

  • 开放使用:DifySandbox 不仅服务于 Dify,还是一个独立的开源项目。它为所有需要安全执行代码的开发者提供了自由部署和免费使用的机会。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询