为什么需要「可控失败」
大模型应用一旦接入工具、外部 API 或企业知识库,攻击面就从「文本输出」扩展到「动作」。安全目标不是追求绝对不被攻破,而是让系统在异常输入下可观测、可降级、可回滚,并把失败限制在可接受范围内。
威胁建模:先列资产与对手
建议从三类资产出发:数据(用户/企业/第三方)、能力(工具权限、网络访问)、声誉(品牌与合规)。对手可能是:普通误用用户、恶意用户、自动化脚本、以及内鬼场景。不同对手的动机与能力不同,测试策略也应不同。
红队测试的最小清单
- 提示注入:尝试让模型忽略系统指令、泄露系统提示、或执行非目标动作。
- 工具滥用:对可写操作(发邮件、删文件、改配置)做参数边界与二次确认测试。
- 数据外泄:在检索上下文中混入敏感片段,观察模型是否会在回答中复述。
- 越狱与角色扮演:测试常见越狱模板,但要在合规与伦理范围内进行。
记录与复现
每一次有效攻击路径都应记录:输入、模型版本、温度、工具链版本、以及最小复现步骤。没有复现步骤,修复只能「凭感觉」。
与产品流程的接口
把高风险操作设计成需要显式授权、或默认拒绝;把安全告警接入监控与值班流程。安全不是单点检查,而是发布流程的一部分。
从“测试通过”到“持续防护”
红队不应只在上线前做一次。模型版本、提示词、外部工具能力都会变化,今天安全不代表下周仍安全。建议把典型攻击样本纳入 CI 回归,每次模型或策略变更都自动跑一轮。这样你会更早发现“修复 A 破坏了 B”的连带问题。
对业务方可读的风险分级
安全报告要让非技术同学也能读懂。建议把风险分成高、中、低三级,并明确每级对应的处置时限和负责人。高风险通常要求立即回滚或下线相关能力;中风险可限流并跟进修复;低风险进入排期但持续监控。分级清楚后,安全决策会更快落地。
结语
红队的价值在于提前暴露「可控失败」的路径。把测试用例沉淀成回归集,比一次性渗透报告更有长期价值。