目标:把“能做什么”和“不能做什么”写成规则,并让系统强制执行。
🎯 文章目标
- 明确能力边界:按站点/用户/组织/任务类型定义
- 设计权限模型与策略执行点
- 给出越权检测与红队演练方法
📚 背景/前置
- LLM + 工具难点:模型可能“请求不该有的工具/数据”;需系统兜底
- 安全从设计开始:白名单/黑名单、参数校验、输出审计
🔧 核心内容
1) 权限模型与策略
- 对象:工具、数据域、动作(读/写/删除)
- 主体:用户/角色/组织/站点类型
- 关系:RBAC/ABAC;策略示例:某站点仅可读“公共知识库”
2) 执行点
- 入口:LLM 工具调用前,校验 toolName 与参数
- 出口:响应脱敏;禁止泄露凭证/内部错误堆栈
- 审计:请求/响应/错误记录;越权尝试报警
3) 红队与越狱防护
- 构造攻击样本:提示注入/越权请求/敏感信息套取
- 规则库:拒答模板、替换模板、审计标记
- 人工复核:高风险操作引入人工二次确认
💡 实战示例:Node.js 中间件
javascript
function guard(req, res, next){
const { user, tool } = req
if (!isAllowed(user, tool)) return res.status(403).json({ code:'FORBIDDEN' })
next()
}
📊 对比/取舍(速查)
- 严格限制 vs 灵活能力:安全优先时,明确边界并提供灰度开关
- 线上红队 vs 线下红队:线下批量更安全,线上小流量/可回滚
🧪 踩坑与经验
- 忽略出口审计:响应可能泄露敏感信息
- 规则“写了不执行”:必须在关键路径接入,持续验证
📎 参考与延伸
- 提示注入/越狱样本库与检测工具
- 审计与合规(按公司规范)
💭 总结
- 以“模型能力边界 + 权限模型 + 执行点 + 红队”构建可防御的系统