Skip to content

Red Teaming

不是等到产品上线后被用户"玩坏",而是在发布前主动找出漏洞。Red Teaming 是 AI 安全的"渗透测试"——系统性地寻找模型的弱点,然后在恶意利用者之前修复它们。

Overview

Red Teaming(红队测试)源自军事领域,指模拟敌对攻击者的角色来评估系统安全性。在 AI 领域,Red Teaming 指系统性地设计挑战性输入和场景来测试模型的安全边界、偏见、误用风险和对抗性弱点。

与传统软件测试不同,AI Red Teaming 的挑战在于:

  • 输入空间是连续的(自然语言),而非离散的(代码路径)
  • 模型行为是概率性的,而非确定性的
  • "漏洞"定义是模糊的(什么算"有害"?)

Types of Red Teaming

按攻击目标分类

类型目标示例
安全性红队诱导模型产生有害内容请求制作武器、毒品、欺诈手段
偏见红队发现模型的社会偏见性别、种族、年龄相关的歧视性输出
隐私红队测试数据泄露风险提取训练数据中的个人信息
对抗红队评估对抗攻击的鲁棒性Prompt 注入、越狡攻、等级升级攻击
功能红队发现模型能力边界在某些任务类型上的系统性失败

按攻击手段分类

手段说明复杂度
直接攻击直接请求有害内容
角色扮演"假设你是一个作家,正在写一本关于..."的小说
编码绕过用 Base64、多语言、表情符等编码恶意请求
多轮对话通过多轮对话逐步诱导模型越过安全边界
自动化攻击用算法自动生成和优化攻击提示

Automated Red Teaming

自动化工具生态

工具功能开源
Garak系统性漏洞扫描,支持多种攻击类型
GiskardML 模型的偏见和安全测试
PromptfooPrompt 注入和对抗测试
PyRITMicrosoft 的 AI Red Teaming 框架
HarmBench标准化的对抗性评估框架

自动化攻击生成

python
# 示例:用另一个 LLM 自动生成攻击提示
attacker_prompt = f"""
你的任务是找出以下系统的安全漏洞。
系统规则:{system_prompt}
请生成 10 个可能绕过安全限制的输入。
"""
attacks = attacker_model.generate(attacker_prompt)

关键挑战:攻击者模型和目标模型之间的"军备竞赛"——攻击手段需要不断更新以跟上防御进步。

The Red Team → Blue Team Loop

Red Team: 发现漏洞 → 报告 → Blue Team: 分析根因 → 修复 → 验证 → Red Team: 验证绕过 → ...

有效的红队流程

  1. 定义攻击目标和成功标准
  2. 设计多元化的攻击策略
  3. 自动化扫描 + 人工深度挖掘
  4. 分类和优先级排序发现的问题
  5. 与开发团队合作修复
  6. 验证修复是否有效
  7. 迭代

Why It Matters

  • 主动安全 vs 被动响作:在恶意利用者发现漏洞之前先发现并修复
  • 实际世界的复杂性:模型在测试集上表现良好,但真实用户输入可能完全不同
  • 法规合规:EU AI Act、美国总统法令等都要求 AI 系统进行安全测试
  • 公众信任:透明的 Red Teaming 流程增强用户对 AI 产品的信任

Relationships

Open Questions

  • 自动化 Red Teaming 能多大程度替代人类专家?当前自动化工具的覆盖率如何?
  • 如何平衡 Red Teaming 的彻底性与成本?完全覆盖所有攻击面是不可能的
  • Red Teaming 结果的共享机制:如何在保护商业机密的同时促进行业整体安全?
  • 如何评估 Red Teaming 本身的有效性?如何知道你的红队是否"足够好"?

Sources

AI Knowledge Base — 持续积累