refactor(sandbox): 按威胁模型精确化——仅不受信任代码进容器

http/db 类工具的子进程是瘦壳(纯计算),危险操作全在受信任主进程,
套容器是纯开销无隔离收益。调整为:

- 开发者预写工具:移除 spec 的 sandbox: profile: stdio,回默认 local
  本地执行(仍保留 env_clear + 白名单注入)
- tool_manager 产出的工具:spec_yaml 自动写 sandbox: profile: stdio,
  不受信任代码(LLM 提供 rust_code)默认进 stdio 容器
- tool_manager 编译:仍走 builder 容器
- 移除 ias-network-runner Dockerfile(当前无工具直接联网)
- executor docker 分支仅保留 stdio/builder,删 network 分支

验证:datetime 本地执行 +08:00;tool_manager 产出工具 spec 含
sandbox: profile: stdio 且容器内执行成功;25 测试通过。
This commit is contained in:
2026-06-22 16:53:36 +08:00
parent 4a5b21a69e
commit 092f3b78f2
23 changed files with 35 additions and 61 deletions
+2 -2
View File
@@ -379,10 +379,10 @@ fn build_local_cmd(spec: &ToolSpec, binary_path: &str) -> Command {
}
/// Docker 隔离执行:一次性容器,默认无网络、只读根、cap-drop ALL、
/// no-new-privileges,仅挂载工具二进制(ro+ tmpfs /tmp
/// no-new-privileges,仅挂载工具二进制(ro+ tmpfs /tmp
/// 供 tool_manager 产出的不受信任工具使用(profile: stdio)。
fn build_docker_cmd(spec: &ToolSpec, binary_path: &str) -> Command {
let image = match spec.sandbox.profile.as_str() {
"network" => "ias-network-runner",
"builder" => "ias-tool-builder",
_ => "ias-stdio-runner",
};