拓冰建站拓冰建站
首页 / 资讯中心 / 正文

OpenSandbox seccomp与AppArmor加固实战:如何为AI Agent沙箱做安全升级

OpenSandbox seccomp与AppArmor加固实战如何为AI Agent沙箱做安全升级【免费下载链接】OpenSandboxSecure, Fast, and Extensible Sandbox runtime for AI agents.项目地址: https://gitcode.com/GitHub_Trending/ope/OpenSandboxOpenSandbox 是一个面向 AI Agent 的安全、快速、可扩展的沙箱运行时Sandbox Runtime它让 AI 在隔离的容器中安全执行代码。对于跑在生产环境中的 Agent 系统来说能跑只是起点跑得住才是关键。本文带你用 5 步完成Docker 沙箱安全加固启用 seccomp 系统调用过滤、加载 AppArmor 强制访问控制、丢弃危险权限再叠加 OpenSandbox 内置的execd 沙箱内加固让沙箱安全再升级。一、先搞懂seccomp 和 AppArmor 是什么在动手之前用一分钟理解这两个 Linux 安全机制机制作用层面通俗理解seccomp系统调用syscall给程序一份系统调用白名单调用不在名单上的内核接口直接拒绝如mount、ptraceAppArmor文件/资源访问按配置文件限制程序能访问哪些文件、路径和网络资源属于强制访问控制MAC一句话概括seccomp 管程序能对内核做什么AppArmor 管程序能碰哪些资源。两者叠加即使 Agent 执行了恶意的模型输出代码攻击面也会大幅缩小。二、查看 OpenSandbox 的默认安全基线OpenSandbox Server 的 Docker 运行时默认已启用多项加固在配置文件中可以直接看到no_new_privileges true—— 禁止进程提权防 setuid 类漏洞drop_capabilities—— 默认丢弃 8 项危险能力NET_ADMIN、SYS_ADMIN、SYS_PTRACE等pids_limit 4096—— 限制每沙箱进程数防 fork 炸弹默认配置参考example.config.toml[docker] drop_capabilities [AUDIT_WRITE, MKNOD, NET_ADMIN, NET_RAW, SYS_ADMIN, SYS_MODULE, SYS_PTRACE, SYS_TIME, SYS_TTY_CONFIG] no_new_privileges true # Optional: set an AppArmor profile name (e.g., docker-default) when AppArmor is enabled apparmor_profile # Seccomp profile: empty string uses Docker default; set to an absolute path for a custom profile seccomp_profile 完整的配置项说明见官方配置文档server/configuration.md三、seccomp 加固三步启用自定义系统调用过滤第 1 步准备 seccomp profile 文件以 Docker 默认 profile 为基础docker info中可导出 Default seccomp profile删掉沙箱确实需要的系统调用保存为 JSON 文件例如/etc/opensandbox/seccomp-profile.json。第 2 步在 Server 配置中指定 profile修改 Server 配置TOML在[docker]段填入绝对路径[docker] # 空字符串 使用 Docker 默认 seccomp填绝对路径 启用自定义 profile seccomp_profile /etc/opensandbox/seccomp-profile.json第 3 步重启 Server 并验证重启 OpenSandbox Server 后新建的每个沙箱容器都会带上该 seccomp 过滤规则。执行逻辑位于 Docker 容器操作模块container_ops.pyServer 会将其转换为security_opt seccomppath应用到每个沙箱。小提示profile 太严会导致容器启动失败或命令执行异常建议先在测试环境用最小 Agent 任务验证一遍再上生产。四、AppArmor 加固为沙箱挂载强制访问控制如果宿主机内核启用了 AppArmor大多数 Linux 发行版默认开启可用aa-status检查只需一行配置即可生效[docker] # 指定 AppArmor profile 名称例如 Docker 自带的 docker-default apparmor_profile docker-default留空时 Docker 会使用其默认 profile显式指定后沙箱容器将受该 profile 的文件访问约束实现默认拒绝、按需放行。对于需要更严格策略的团队可以先运行沙箱观察日志逐步把denied记录收敛成自定义 profile这是标准的 AppArmor 调优流程。五、进阶execd 沙箱内 seccomp 加固第二道防线上面配置的是容器层防护。OpenSandbox 还在容器内部埋了一道更细的防线——由沙箱内的execd组件负责默认开启内置 seccomp 黑名单拦截约 30 个危险系统调用包括mount、chroot、pivot_root、ptrace、bpf、kexec_load等无需任何配置自定义 deny 列表可用[seccomp] deny [...]完全替换内置黑名单no_new_privileges 加固底座用户代码进程经原生 launcher 启动默认丢弃全部 capabilitiesLandlock 文件围栏可选内核支持时将文件访问收敛到白名单路径eBPF 行为审计可选记录 exec、connect、提权事件到 JSONL 审计文件完整配置示例含中文注释的各节说明isolation.example.toml深入文档见docs/components/execd.md# 示例替换内置 seccomp 黑名单deny 会完全替换内置列表 [seccomp] deny [mount, ptrace, bpf, seccomp]运行时能力探测接口GET /v1/isolated/capabilities会报告当前环境实际启用了哪些加固项seccomp / AppArmor / capabilities 降级情况都不会致命只会降级并标注方便你在不同宿主机上批量校验加固生效情况。六、加固效果验证清单完成配置后按下面清单逐项验证验证项方法seccomp 生效容器内执行黑名单中的系统调用应被拒如strace -f观察EPERMAppArmor 生效dmesg或/var/log/audit中出现apparmorDENIED记录no_new_privilegesgrep NoNewPrivs /proc/pid/status应为1execd 内置加固调用/v1/isolated/capabilities检查hardening字段进程数限制fork 超过pids_limit时收到EAGAIN多租户与隔离会话的整体安全模型可延伸阅读docs/guides/isolation-sessions.md 与 docs/architecture/index.md。七、常见问题 FAQQ1seccomp profile 配错了容器起不来怎么办先用空字符串回退到 Docker 默认 profile再对比自定义文件与默认文件的差异定位。最常见的坑是误删了clone、clone3新版内核上容器启动必需。Q2宿主机没有 AppArmor如某些极简发行版会影响 seccomp 吗不会两者相互独立。AppArmor 配置留空即可seccomp、capabilities、pids_limit 均照常生效反之亦然。Q3容器层和 execd 内层的 seccomp 会冲突吗不会而是层层收紧。容器层管整个容器生命周期execd 内层只约束用户代码进程内层黑名单未覆盖的风险点恰好被容器层兜底。Q4加固后 Agent 执行慢了吗seccomp 的每次系统调用仅增加纳秒级开销AppArmor 在缓存命中时接近零开销日常 Agent 负载基本无感。总结给 AI Agent 沙箱做安全加固核心就记住四层️默认基线no_new_privileges capabilities 丢弃 pids 限制开箱即得️seccomp[docker].seccomp_profile一行配置启用自定义系统调用过滤️AppArmor[docker].apparmor_profile挂载强制访问控制️execd 内层加固内置 seccomp 黑名单 no_new_privs 可选 Landlock / eBPF 审计按本文 5 步走下来你的 OpenSandbox 沙箱就从能隔离进化到了扛得住恶意代码的级别。生产环境建议先用小规模任务跑通验证清单再全量铺开。【免费下载链接】OpenSandboxSecure, Fast, and Extensible Sandbox runtime for AI agents.项目地址: https://gitcode.com/GitHub_Trending/ope/OpenSandbox创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门