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 ​

  • 安全框架:AI Safety & Alignment — Red Teaming 是 AI 安全开发流程的核心环节
  • 对齐方法:Constitutional AI / RLAIF — CAI 的原则可以指导 Red Teaming 的设计
  • 评估体系:LLM Evaluation — Red Teaming 是评估的一个特殊分支(对抗性评估)
  • 对抗攻击:Prompt Engineering — Prompt Injection 是 Red Teaming 的重要攻击手段
  • 实践主体:Anthropic、OpenAI 等公司都有专门的 Red Team

Open Questions ​

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

Sources ​

AI Knowledge Base — 持续积累