Skip to content

21. 工具调用的安全性与沙箱隔离怎么做? ​

难度 P1 高频 · 岗位 应用 · 频率 ★★★ · 预计阅读 5 min

本题阅读地图 ​

  1. 💡 简要回答
  2. 📝 详细解析
  3. 🎯 面试总结

👔面试官:工具调用的安全性与沙箱隔离怎么做?

🙋‍♂️我:限制模型只能调白名单里的工具。

👔面试官:白名单是一层,但工具本身可能有危险操作(如执行代码、删数据)。你能讲沙箱隔离、权限控制、审计日志这些更深层的防护吗?

🙋‍♂️我:那就让工具在 Docker 里跑?

👔面试官:对,Docker 是环境隔离的一层。但还有:网络隔离(不能访问内网敏感服务)、资源限制(CPU/内存/磁盘)、只读挂载、非 root 用户。而且调用前后都要有审计日志。

💡 简要回答 ​

三层防护:

层级措施
应用层白名单工具、schema 校验、参数过滤
工具层最小权限、接口鉴权、操作审计
环境层Docker/容器隔离、网络隔离、资源限制、只读挂载

关键原则:

  • 不给模型裸权限
  • 所有危险操作都有审计
  • 默认拒绝,显式允许

📝 详细解析 ​

应用层防护 ​

白名单机制:

  • 只允许调用预定义工具
  • 禁止模型构造任意系统调用

Schema 校验:

  • 参数类型检查
  • 必填字段验证
  • 格式正则校验

敏感参数过滤:

  • 密码、密钥不能作为参数传入
  • 从安全存储读取

工具层防护 ​

最小权限:

  • 查询工具只有读权限
  • 写入操作需要额外审批

接口鉴权:

  • 工具内部做权限校验
  • 不依赖调用方传递的身份

操作审计:

  • 记录谁、什么时候、调了什么工具、传了什么参数
  • 关键操作留痕

环境层防护(沙箱) ​

Docker 隔离:

  • 每个工具调用在独立容器
  • 限制 CPU、内存、磁盘

网络隔离:

  • 不能访问宿主机内网
  • 外网访问白名单

文件系统:

  • 只读挂载(不能修改宿主机文件)
  • 临时工作目录(用完即删)

用户权限:

  • 非 root 用户运行
  • seccomp、AppArmor 额外限制

特别危险的工具 ​

代码执行:

  • 必须沙箱
  • 禁止网络访问
  • 超时强制终止

数据库操作:

  • 只读账号
  • SQL 注入防护
  • 敏感表脱敏

文件操作:

  • 限定工作目录
  • 禁止访问系统目录
  • 禁止删除操作

🎯 面试总结 ​

三层防护:应用层(白名单+校验)、工具层(权限+审计)、环境层(沙箱隔离)。默认拒绝,最小权限。


章节首页 · ← Q20 · Q22 →

最后更新2026-05-01
难度P1
频率medium
阅读5 min
主题tool-use / safety
觉得有帮助?把这个链接转给正在求职的朋友 · 用 Ctrl + K 全站搜索其它题