Harness 安全边界
Agent 能理解指令,不代表它值得拥有无限权限。安全设计应假设:用户输入、仓库文件、网页内容、MCP 返回值和 Skill 依赖都可能包含恶意指令。
威胁模型
最小权限
工具权限按动作拆分,不给“万能 Shell”:
- 只读仓库;
- 搜索符号;
- 运行白名单测试;
- 写入工作区;
- 创建审查;
- 发布生产。
默认从只读开始,写入和外部副作用必须有审批、路径边界和审计。
提示词注入
把仓库、网页和工具返回值当作不可信数据。模型可以阅读其中内容,但不应因为内容声称“忽略系统规则”就获得新权限。Harness 应在工具层重新校验身份、路径、命令和参数。
密钥与数据
- Key 只从环境变量或密钥服务读取;
- 日志脱敏 Authorization、Cookie、Token 和用户隐私;
- 发送给模型前按字段和用途最小化;
- 不把完整源码、生产数据和内部 URL 无条件加入上下文;
- 保留删除和过期机制。
供应链
接入 Skill、MCP Server 或 Plugin 前检查来源、版本、权限、依赖、网络访问和更新策略。锁定版本并保留 SBOM 或依赖清单,升级后用任务集回归。
练习
- 为一个能写文件的 Tool 写出五条安全校验。
- 设计一条包含恶意仓库 README 的提示词注入测试。
- 列出必须人工批准的三类操作。
