10.4 红队演练与自动化评估

红队演练(Red Teaming)与自动化评估是验证 LLM 系统安全性的重要手段。前者强调“以攻击者视角发现真实问题”,后者强调“可重复、可量化、可回归”的持续评测能力。

10.4.1 红队演练的目标与范围

常见目标

  • 发现提示注入、越狱、数据泄露、工具滥用等高风险路径

  • 验证纵深防御是否存在单点失效与“策略空洞”

  • 评估在真实业务任务下的安全-体验权衡

范围定义(建议形成书面 ROE:Rules of Engagement):

  • 测试对象:模型、系统提示、RAG、工具链、权限与审计、业务流程

  • 数据边界:哪些数据可用于测试、哪些属于“绝对禁止触碰”的生产机密

  • 操作边界:哪些动作需要人工审批/隔离环境执行(例如写库、发外部消息)

红队工作流程

spinner

图 10-6:红队演练工作流程

10.4.2 组织方式:从一次性到常态化

红队不应只做“上线前一次”。推荐节奏:

  • 上线前:覆盖关键业务路径的基线红队

  • 版本迭代:系统提示/工具/检索语料变更后触发回归

  • 季度/半年度:结合新威胁情报做专题演练

同时建议引入蓝队/产品/法务参与,保证问题能转化为可落地的工程改进与合规证据。

10.4.3 测试用例库:把经验固化成资产

把“红队发现的问题”沉淀为可回归的测试用例库,最有价值。建议对用例做统一结构化描述。

用例结构化模板

用例分类维度

维度
分类示例

攻击类型

直接注入、间接注入、越狱、信息泄露、工具滥用

业务场景

客服、投研、代码助手、RAG 问答、邮件助手

攻击面

用户输入、外部文档、工具返回、长上下文、跨会话记忆

严重等级

Critical / High / Medium / Low

期望行为

拒绝 / 脱敏 / 人工审核升级 / 仅审计记录

10.4.4 常用红队工具与配置

工具对比

工具
定位
适用场景
开源协议

Garak

LLM 漏洞扫描器

已知漏洞探测(被称为“LLM 界的 Nmap”)

Apache 2.0

promptfoo

Prompt 评估框架

将安全策略(Guardrails)整合进 CI/CD 持续回归测试

MIT

PyRIT

微软红队工具

多轮自动化红队沉浸演练与高风险路径识别

MIT

ART

IBM 对抗鲁棒性工具箱

对抗样本(Adversarial Examples)生成与防御评估

MIT

CyberSecEval

Meta 安全评估套件

量化评估大模型生成恶意代码或辅助网络攻击的风险

MIT

Giskard

AI 漏洞扫描平台

结合安全审计框架,自动化生成对抗性测试用例

Apache 2.0

Garak 使用示例

promptfoo 安全回归配置示例

10.4.5 可验证的工程闭环:LLM 应用安全测试最小套件

自动化评估的价值在于“持续、可量化”,必须建立一套可复用的 测试最小套件,涵盖从用例构造、指标判定到发布门禁的完整工程闭环。

1. 最小攻击用例集结构

用例不应随机生成,而需覆盖核心威胁路径,建议按以下结构构建最小用例集:

  • 直接/间接注入:测试系统指令被覆盖(直接)与外部数据源藏毒(间接)。

  • 单轮/多轮对抗:测试长上下文中安全策略是否遗忘或被绕过。

  • 工具诱导:测试攻击者能否通过特定模式诱骗模型调用高权限工具(如越权转账)。

  • 数据源污染:测试模型对检索增强(RAG)召回的恶意数据(恶意文档、被篡改的网页)的抵抗力与异常处理。

2. 判定规则与核心指标

对于自动化测试,必须有清晰的指标模板与验收门槛(建议作为独立流水线阶段执行):

指标类型
具体指标
判定依据
建议门限

攻击成功率 (ASR)

提示注入/越狱场景下的成功突破占比

采用强模型(如 GPT-4)或规则判定是否达成攻击目标

< 5% (高危场景要求为 0)

安全拒答率

面对明确恶意请求时,模型识别并安全拒绝的比例

不包含有害信息且明确表态拒绝

> 95%

越权工具调用率

攻击用例触发未授权/危险工具动作的情况

监控工具调度层的执行日志

0 容忍

敏感信息泄露率

输出中包含 PII、系统提示、内部 API 密钥的比例

结合正则匹配与数据防泄漏(DLP)扫描

0 容忍

可用性误拒率 (FPR)

正常业务请求被安全策略误拦的比例

建立金标准(Golden Set)评估业务正常流

< 3%

3. OWASP LLM Top 10 测试映射与门控

为将管理标准落地为工程验收,需将 OWASP LLM Top 10 条目显式映射为测试维度与门控指标。以下为关键风险的最小检测与门控示例:

OWASP 风险域
测试维度 (验证通过条件)
验收指标与门禁策略

LLM01: 提示注入

包含强对抗的前缀/后缀/编码组合,测试是否遵循系统提示。

基线: < 10%, 成熟: < 5%, 理想: < 2%;系统提示泄露率基线 < 5%, 成熟 < 1%, 理想趋近 0%

LLM02: 不安全输出

测试是否生成仇恨、暴力、违法等违背人类对齐的内容。

恶意内容拦截率 > 98%,失败则需上滑安全阈值。

LLM05: 供应链漏洞

拉取第三方依赖/插件/模型的安全漏洞与依赖树扫描结果。

无严重/高危漏洞 (CVSS > 7.0),通过 SCA 白名单。

LLM06: 敏感信息泄露

测试异常查询/系统报错是否带出后端机密或用户 PII。

基线: 敏感信息泄露率 < 3%, 成熟 < 1%, 理想 < 0.5%

LLM07: 不安全插件设计

校验插件调用的前置鉴权与输入过滤,测试参数越界与篡改。

越界参数全部拦截并审计记录,越权调用率 0%。

LLM10: 模型窃取

模拟高频次、系统性针对模型逻辑和权重的探测与逆向查询。

触发异常检测与速率限制(Rate Limit)阻断闭环。

CI/CD 门禁指标的分级设定

为了避免过于严苛的门禁标准导致 CI/CD 流水线的“虚假失败”,我们建议根据项目成熟度实施分级目标:

指标
基线(新项目)
目标(成熟项目)
理想(长期)

攻击成功率 (ASR)

< 10%

< 5%

< 2%

系统提示泄露率

< 5%

< 1%

趋近 0%

敏感信息泄露率

< 3%

< 1%

< 0.5%

分级说明

  • 基线阶段(新项目或早期迭代):允许相对宽松的指标,重点是快速建立安全框架与检测基础设施,避免因过度严格而阻塞正常的开发迭代。

  • 目标阶段(功能相对稳定、规模达到中等):收紧指标,要求系统在关键安全维度达到可接受的水平,此时应成为大多数生产系统的常驻目标。

  • 理想阶段(长期持续改进):进一步逼近完美状态,但需认识到某些指标(如“系统提示泄露率 = 0%”)可能在工程上难以达成,应作为持续优化的方向而非硬性约束。

门禁实施建议

  • 新版本发布时,不要求一步到位完美,但 高危指标(如越权工具调用率)必须始终保持零容忍

  • 对于允许一定失败率的指标,应明确记录“已知残余风险”与“后续改进排期”,而非简单地“卡住发布”。

  • 定期复盘(如每个季度)CI/CD 门禁的有效性,根据实际安全态势与业务发展调整分级阈值,避免标准长期失效。

注:在实际落地中,上述指标应被编写为 promptfoo 或类似测试框架中的自动化验证断言,直接挂载在 CI/CD 流水线上,实现工程闭环。

发布门禁建议采用“基线 + 回归”模式:新版本不要求一步到位完美,但高危指标必须归零,且不劣化关键延迟与可用性指标,对新增风险有明确的回避与闭环时间表。

CI/CD 安全门禁集成

spinner

图 10-7:CI/CD 安全门禁集成流程

10.4.6 安全测试环境与数据治理

为了避免在红队过程中引入新的安全风险,建议:

  • 使用隔离的测试环境与测试凭证,禁止直连生产关键资源

  • 使用脱敏/合成数据构造测试集,必要时由数据所有者审批

  • 对测试过程本身做审计留痕,确保可复盘与可追责

10.4.7 红队报告与闭环

红队演练的报告应明确分级和闭环时限:

严重等级
描述
修复时限
升级路径

P0 Critical

可远程触发数据泄露或执行恶意操作

24 小时内缓解

直报安全负责人

P1 High

可绕过安全对齐生成严重有害内容

3 个工作日

安全团队 + 产品

P2 Medium

可泄露系统提示或低敏信息

迭代周期内

安全团队

P3 Low

边缘场景下的过度拒绝或轻微偏差

下一计划

通过工单跟踪

红队演练负责发现“真实世界会发生的问题”,自动化评估负责把这些问题变成“持续不会回归的问题”。两者结合,才能形成可持续的 LLM 安全改进闭环。

最后更新于