进程级Agent沙箱轻量化落地方案

根据《进程级Agent沙箱的12道安全防线》,对主流操作系统的12个管控维度,推荐了轻量级落地方案,供大家参考。
macOS(Seatbelt)
| 管控方向 | 轻量化方案 |
|---|---|
| 文件系统隔离 | SBPL 规则定义工作目录白名单与读写权限,其余默认 deny;分配独立私有 tmp 目录,TCC 全局屏蔽隐私路径 |
| 环境变量隔离 | execve 启动前批量清理,仅白名单透传 PATH、HOME、TMPDIR 等必要变量,剔除 DYLD 注入类变量 |
| 工具管控与权限分级 | 代码签名 + 公证校验,搭配 Hardened Runtime 加固;禁用交互式 Shell,限制 -c/-e 等危险参数 |
| 人工确认机制 | Seatbelt 底层拦截定时任务、服务注册等高危操作,用户态弹窗展示命令与风险;超时默认拒绝,支持可信规则放行 |
| 进程权限降权 | 标准用户身份运行,禁用sudo提权;依托SIP保护系统路径,禁止setuid程序执行 |
| 硬件访问管控 | SBPL 规则限制 IOKit 设备访问,配合 TCC 框架全局屏蔽摄像头、麦克风等隐私硬件;收敛/dev目录权限,阻断块设备直接访问 |
| Syscall 过滤器 | Seatbelt内置调用拦截,屏蔽ptrace、task_for_pid等高危调用;强制内存 W^X 保护 |
| 进程树与生命周期管控 | 进程组绑定+父进程监控回收完整子进程树;限制最大进程数防御fork炸弹 |
| 资源限制 | setrlimit管控CPU、内存、文件句柄、单文件大小配额;SBPL补充磁盘写入量与tmp用量约束 |
| 网络隔离 | ALF 防火墙默认拦截全部入站连接,Network Extension 实现出站域名白名单;支持三级网络模式切换 |
| IPC 与信号屏蔽 | SBPL deny mach-lookup 隔离 Mach 端口,限制跨进程调试信号发送 |
| 审计日志与溯源 | OpenBSM Audit Trail 全量记录行为,日志输出至沙箱外目录;高危操作实时告警 |
总结:Seatbelt (SBPL) 为核心,TCC为辅助,Hardened Runtime 兜底。
Linux(Namespace + Seccomp)
| 管控方向 | 轻量化方案 |
|---|---|
| 文件系统隔离 | bubblewrap白名单挂载工作目录,只读挂载系统依赖库;独立挂载私有/tmp,屏蔽系统敏感目录; 内核5.13以上版本,启用Landlock LSM,可实现无需特权即可生效的文件路径级强制访问控制(MAC) |
| 环境变量隔离 | bwrap --clearenv 清空默认变量,--setenv 显式配置变量白名单 |
| 工具管控与权限分级 | 路径 + SHA256 双重校验工具身份;禁用交互式 Shell,限制 -c/-e 代码执行参数;子进程自动继承规则 |
| 人工确认机制 | 父进程(Agent Host)拦截 execve 高危调用,弹窗展示风险;超时默认拒绝,支持可信规则自动放行 |
| 进程权限降权 | User Namespace 映射沙箱 root 为宿主机高 UID 普通用户;cap_drop 裁剪高危能力;开启 PR_SET_NO_NEW_PRIVS禁止execve提权 |
| 硬件访问管控 | 仅挂载 /dev/null、/dev/zero 等基础设备,屏蔽磁盘、音视频、串口等所有外设节点 |
| Syscall 过滤器 | seccomp-bpf白名单模式,拦截ptrace、mount、kexec等高危调用;强制内存 W^X 规则 |
| 进程树与生命周期管控 | PR_SET_PDEATHSIG + PID Namespace,父进程异常退出子进程自动终止;RLIMIT_NPROC+cgroups pids.max双重限制最大进程数 |
| 资源限制 | Cgroups v2 硬配额管控 CPU、内存、磁盘IO带宽与IOPS、进程数;配置执行超时强制终止 |
| 网络隔离 | Network Namespace默认仅保留lo,基于用户态透明代理实现出站域名白名单,nftables做IP/端口层兜底;禁止入站连接与内网IP访问 |
| IPC 与信号屏蔽 | IPC Namespace 隔离共享内存、消息队列;PID Namespace 阻断跨沙箱信号与进程探测 |
| 审计日志与溯源 | Auditd监听execve/open/connect等syscall全量落盘;内核5.15以上版本,配合CAP_SYS_ADMIN可启用Fanotify做文件层实时拦截(特权环境);日志存储于沙箱外,高危行为实时告警 |
总结:bwrap (Namespace) 打底,Seccomp 守门,Cgroups 限流。
Windows(AppContainer)
| 管控方向 | 轻量化方案 |
|---|---|
| 文件系统隔离 | AppContainer文件夹重定向至独立工作区;NTFS DACL配置读写权限分级;分配独立临时目录;注册表层面,AppContainer对HKCU指定分支自动虚拟化,HKLM系统键默认无写入权限,防范持久化后门 |
| 环境变量隔离 | CreateEnvironmentBlock 定制环境,剔除危险注入类变量,仅透传业务必要项 |
| 工具管控与权限分级 | 进程代码完整性(CIG)禁止加载未签名动态模块,配合AppContainer限制可执行文件范围;禁用交互式Shell,限制危险执行参数 |
| 人工确认机制 | COM 接口拦截高危 Shell 执行,弹窗展示命令与影响范围;超时默认拒绝,支持可信规则放行 |
| 进程权限降权 | AppContainer SID + 低完整性级别(Low IL);禁用 runas 等提权命令 |
| 硬件访问管控 | 设备 Capability 屏蔽摄像头、麦克风、USB 存储等外设;限制硬件设备访问权限 |
| Syscall 过滤器 | ACG 阻断动态代码生成,Win32k 系统调用过滤;强制内存 W^X 保护 |
| 进程树与生命周期管控 | Job Object 绑定全进程树,开启 KILL_ON_JOB_CLOSE;限制最大进程数防 fork 炸弹 |
| 资源限制 | Job Object 管控 CPU、内存、文件句柄配额;配置执行超时强制终止 |
| 网络隔离 | WFP做IP/端口级出站管控,配合用户态代理实现域名白名单;默认禁止全部入站连接,限制内网IP段访问 |
| IPC与信号屏蔽 | 独立 Window Station / Desktop,阻断 UIPI 窗口消息注入;隔离命名管道与共享内存 |
| 审计日志与溯源 | ETW 全量记录文件、进程、网络、拦截事件;日志存储至沙箱外目录,高危行为实时告警 |
总结:AppContainer为墙,Job Object为锁,WFP/ETW为监控。老版本Windows可退化为受限令牌+Job Object+Low IL组合方案。
对于各平台的落地方案,你有什么好的建议呢?欢迎留言,一起讨论和改进