DifySandbox

DifySandbox(ディファイサンドボックス)は、PythonやNode.jsなど複数のプログラミング言語に対応した、軽量・高速・安全なコード実行環境です。Dify Workflowの様々な要素(コードノード、テンプレート変換ノード、LLMノード、ツールノードのコードインタプリターなど)の基盤となる実行環境として機能します。DifySandboxは、ユーザーが提供したコードを実行しつつ、システムのセキュリティを確保します。

特徴

  • 複数言語対応:DifySandboxはSeccompをベースに構築され、複数のプログラミング言語をサポートする低レベルのセキュリティ機構を実現しています。現在はPythonとNode.jsに対応しています。

  • システムセキュリティ:予期せぬセキュリティ侵害を防ぐため、特定のシステムコールのみを許可する許可リストポリシーを採用しています。

  • ファイルシステムの隔離:ユーザーのコードは独立したファイルシステム環境で実行されます。

  • ネットワーク隔離

    • DockerCompose環境:専用のSandboxネットワークとプロキシコンテナを使用してネットワークアクセスを提供します。これにより、内部ネットワークのセキュリティを保ちつつ、柔軟なプロキシ設定が可能になります。

    • Kubernetes環境:Egressポリシーを用いて直接ネットワーク隔離戦略を設定できます。

プロジェクトリポジトリ

プロジェクトのソースコードの入手や、導入・使用方法に関する詳細な情報については、DifySandboxリポジトリをご覧ください。

貢献

DifySandboxの開発に参加する方法については、貢献ガイドをご参照ください。

Last updated