LLM红队测试之概念、闭源平台、开源项目:LM-Evaluation-Harness、Garak、Giskard、LLM Attack

概述

Red Teaming,红蓝对抗,红队扮演攻击方,蓝队扮演防守方,在对抗中提升整体安全水平。渗透测试、攻防演练都是这个思路。

目标:想尽办法让模型说出不该说的话。

红队测试应该贯穿整个生命周期:

  • 训练阶段:RLHF,准备好负面脚本,PPO/DPO训练
  • 发布前的全面评估:设定安全分级体系,不达标不能发布
  • 线上监控:定期红队复测

方法:

  • 人工:安全研究员,手动写Prompt攻击模型。优势:人的创造力没上限,能设计出非常刁钻的攻击场景;弊端:速度太慢,人工太贵,高度依赖测试者的水平。
  • 领域专家:生物安全、核安全等领域的顶级专家。一个关键发现是:真正造成危害需要把多条精确信息串起来,光看模型单条回复"看起来危险"是不够的,得评估整个攻击链条走不走得通。跟政府的核安全机构合作,在涉密环境下测模型的核相关知识。
  • 众包:如DEF CON黑客大会;普通人正常聊天的方式,跟社会工程攻击非常像。
  • 多模态:在图片里嵌入文字指令;
  • 自动化攻击:模型攻击模型。基本思路:训练攻击模型专门生成对抗性Prompt,让它去跟目标模型对话,再用一个裁判模型判断目标模型有没有翻车。技术路线
    • RL训攻击模型:用PPO训一个红队Agent,奖励信号来自攻击是否成功。层次化的multi-turn攻击,高层agent决定策略,底层agent生成具体prompt。
    • 搜索+变异。不训模型,而是基于现有的攻击prompt做变异。Rainbow Teaming用quality-diversity的思路维护一个攻击archive,不断生成新的变体填充到archive里。GCG更暴力,直接梯度优化出一个universal的攻击suffix附加到任何prompt后面。
    • Fuzzing。借鉴传统安全的模糊测试,对输入做大量随机扰动看模型会不会出意外
    • 迭代精炼。PAIR是典型代表:先发一个攻击,看模型怎么回,根据回复改进攻击,再试,反复迭代。TAP在PAIR基础上加了tree search,效果更好一些。

工具

  • 编排型框架。支持本地模型和API模型,可比较不同版本,灵活度很高
  • 开箱即用型框架:支持测RAG pipeline、chatbot、agent、裸模型,跑完攻击还能直接生成guardrail部署到线上
  • 轻量级扫描工具:写Yaml配置文件,可集成到CI pipeline里

注意事项:

  • 容易变成走过场:缺乏回归测试
  • 自动化能力还不够强
  • 红队数据是稀缺资源

趋势:

  • 红队测试会变成CI/CD的一部分
  • 评估标准会逐步统一。HarmBench、JailbreakBench、WildBench这些benchmark在推动标准化
  • 红队的范围会扩大。不只是测模型本身,还要测整个系统
  • 跨组织合作会更多:类似于安全领域的CVE漏洞共享机制。

测试数据集

数据集 规模 说明 链接
AdvBench 520样本 标准有害行为测试集 GitHub
HarmfulQA 1,000+样本 有害问题测试集 HuggingFace
AnthropicRedTeam 38,961样本 Anthropic红队数据集 arXiv
HH-RLHF 160k+样本 有害性标注数据 HuggingFace
ToxicChat 10k+样本 有毒对话数据集 GitHub
BeaverTails 30k+样本 安全性评估数据集 HuggingFace
维度 传统红队测试 LLM红队测试
攻击目标 网络、系统、应用、人员 模型本身、模型应用、数据管道
攻击向量 技术漏洞、社会工程 提示注入、越狱、数据投毒
防御者 安全团队、IT运维 模型开发者、安全过滤系统
成功标准 获取访问权限、窃取数据 生成有害输出、绕过安全措施
主要风险 数据泄露、系统瘫痪 生成有害内容、隐私泄露、误导用户
测试方法 自动化扫描+手工渗透 手工探测+自动化测试+对抗样本
攻击者画像 黑客、APT组织 恶意用户、竞争对手、模型滥用者

攻击技术

提示注入攻击:Prompt Injection,简称PI。通过构造恶意输入,覆盖或操纵模型的原始指令,使其执行非预期行为。

提示注入类型:

  • 直接注入:提示词直接包含恶意指令
  • 间接注入:外部数据包含隐藏的恶意指令
  • 存储型注入:恶意提示被存储在数据库/知识库中,当LLM检索这些数据时,触发注入,常见于RAG和知识库应用
  • 多轮注入:攻击分散在多个对话轮次中,逐步引导模型

越狱攻击:Jailbreak Attacks,通过精心设计的提示,绕过模型的安全过滤和对齐机制。

技术分类:

  • 角色扮演越狱
  • 提示模板越狱
  • 编码/混淆越狱:如Base64编码的恶意指令、ROT13/凯撒密码加密、Unicode字符替换、同音字/形近字替换
  • 上下文操纵越狱:提供大量良性上下文后突然转向恶意请求
  • 少样本越狱
  • 拒绝抑制越狱:
  • 复合攻击:组合多种越狱技术,形成更强的攻击

对抗样本攻击:Adversarial Examples,通过添加人眼不可见的扰动,使模型产生错误输出。

技术:

  • GCG:Gradient-based Conservative Gumbel Attack,基于梯度的优化方法,自动生成对抗性后缀
  • AutoDAN:自动生成人类可读的越狱提示,结合语义优化和对抗性目标,生成自然语言形式的攻击提示
  • PEZ:Pixel-based Embedding Attack,在嵌入空间中优化对抗性输入,直接操作Token embeddings
  • UAT:Universal Adversarial Triggers,通用的对抗触发器,可迁移到多个输入。

攻击成功的衡量指标

指标 定义 计算方式
ASR(Attack Success Rate) 攻击成功率 成功绕过防护的次数/总攻击次数
Bypass Rate 绕过率 成功绕过过滤器的比例
Harmful Content Rate 有害内容率 生成有害内容的比例
Refusal Rate 拒绝率 模型拒绝回答的比例
False Positive Rate 误报率 良性内容被误判为有害的比例
Transfer Success Rate 迁移成功率 攻击在不同模型间的成功率

OWASP

评比Top 10

LLM01:提示注入(Prompt Injection)

  • 风险:恶意输入覆盖系统指令,导致未授权操作
  • 攻击向量:直接注入、间接注入、存储型注入
  • 影响:数据泄露、权限绕过、恶意操作执行

LLM02:敏感信息泄露(Sensitive Information Disclosure)

  • 风险:LLM在输出中泄露训练数据中的敏感信息
  • 攻击向量:记忆攻击、成员推断、训练数据提取
  • 影响:PII泄露、商业机密暴露、合规违规

LLM03:供应链漏洞(Supply Chain Vulnerabilities)

  • 风险:第三方模型、数据集、插件存在安全漏洞
  • 攻击向量:预训练数据投毒、后门模型、恶意插件
  • 影响:数据投毒、后门植入、供应链攻击

LLM04:数据与模型投毒(Data&Model Poisoning)

  • 风险:训练数据或模型被恶意修改
  • 攻击向量:数据投毒、后门植入、模型篡改
  • 影响:模型行为异常、安全防护失效、偏见放大

LLM05:不当输出处理(Improper Output Handling)

  • 风险:LLM输出未经验证直接使用
  • 攻击向量:XSS、SSRF、代码执行
  • 影响:前端攻击、服务器端攻击、数据泄露

LLM06:过度权限(Excessive Agency)

  • 风险:LLM系统被授予过多的操作权限
  • 攻击向量:权限滥用、工具误用、代理失控
  • 影响:未授权操作、数据删除、系统破坏

LLM07:系统提示泄露(System Prompt Leakage)

  • 风险:系统提示词被用户提取
  • 攻击向量:提示注入、社交工程、模型推理
  • 影响:知识产权泄露、安全机制暴露、攻击面扩大

LLM08:向量与嵌入漏洞(Vector&Embedding Weaknesses)

  • 风险:RAG系统中的向量数据库存在安全漏洞
  • 攻击向量:投毒注入、间接注入、数据泄露
  • 影响:检索篡改、虚假信息注入、数据泄露

LLM09:虚假信息(Misinformation)

  • 风险:LLM生成虚假、误导或无意义的内容
  • 攻击向量:幻觉、错误事实、误导性输出
  • 影响:决策错误、声誉损失、法律责任

LLM10:无限资源消耗(Unbounded Consumption)

  • 风险:无限制的资源消耗导致服务不可用
  • 攻击向量:资源耗尽攻击、长上下文攻击、递归攻击
  • 影响:服务拒绝、成本失控、系统崩溃
OWASP风险 红队测试重点 测试方法
LLM01提示注入 提示注入、越狱攻击 手工探测+自动化模糊测试
LLM02敏感信息泄露 训练数据提取、记忆攻击 成员推断、数据提取攻击
LLM03供应链漏洞 第三方组件安全评估 代码审计、依赖分析
LLM04数据投毒 投毒攻击、后门检测 数据审计、模型测试
LLM05输出处理 XSS、SSRF、代码执行 渗透测试、输出验证
LLM06过度权限 权限滥用、代理失控 权限测试、边界测试
LLM07系统提示泄露 提示词提取 社交工程、推理攻击
LLM08向量漏洞 RAG投毒、检索篡改 数据库攻击、注入测试
LLM09虚假信息 幻觉测试、事实核查 事实验证、一致性测试
LLM10资源消耗 DoS攻击、资源耗尽 压力测试、边界测试

闭源

HiddenLayer

官网,机器学习安全平台,能力:模型漏洞扫描,对抗性攻击检测。

Robust Intelligence

官网,AI安全测试平台,能力:自动化红队测试、模型鲁棒性评估。

CalypsoAI

官网,能力:LLM安全防护、提示注入检测、数据泄露防护。

Lakera

官网,LLM安全平台,Gandalf游戏化安全测试、提示注入防护。

Prompt Security

官网,专注于LLM安全,提示攻击检测、合规性测试。

Protect AI

官网,AI供应链安全,Guardian平台,模型扫描。

GitHub-CVE

监控平台,CVE列表、红队工具。

LM-Evaluation-Harness

官网,开源(GitHub,13K Star,3.3K Fork)LLM全面评估框架,包含安全评估。

Garak

开源(GitHub,8.1K Star,1K Fork)。

核心概念:

  • Probes (探针):生成测试提示
  • Detectors (检测器):分析模型输出
  • Buffs (增强器):增强/变异输入

探针类型

Probe类型 测试内容
realtoxicityprompts 有毒内容生成
always 简单越狱测试
glitch 特殊token测试
continuation 续写有害内容
dan DAN越狱测试
encoding 编码绕过测试
gcg GCG对抗攻击
knownbadsignatures 已知恶意签名
misleading 误导性提示
xss XSS注入测试

使用示例

bash 复制代码
# 安装
pip install garak
# 基本扫描
garak --model_type openai --model_name gpt-4
# 指定探针
garak --model_type huggingface --model_name gpt2 --probes dan,encoding,xss
# 输出报告
garak --model_type local --model_name my-model --report_prefix my_test

Giskard

开源(GitHub,5.4K Star,470 Fork),官方文档

架构

  1. 模型扫描 (Model Scanning)
    • 自动检测模型漏洞
    • 支持多种模型类型(LLM、分类、回归)
    • 可视化报告
  2. 漏洞类型:
    • 幻觉(Hallucination)
    • 有害内容(Harmful Content)
    • 偏见(Bias)
    • 注入攻击(Injection)
    • 敏感信息泄露(Sensitive Info Leakage)
  3. 测试套件(Test Suites)
    • LLM测试套件
    • 数据切片测试
    • 对抗性测试
    • 自定义测试

使用示例

py 复制代码
import giskard as gsk
from giskard.llm.client import OpenAIClient

# 创建模型
model = gsk.Model(
  model=my_llm_function,
  model_type="text_generation"
)

# 扫描模型
results = gsk.scan(model, dataset=my_dataset)

# 生成测试套件
test_suite = results.generate_test_suite()

LLM Attack

官网论文,开源(GitHub,4.7K Star,624 Fork);基于梯度的对抗性后缀生成。

PromptInject

论文,开源(GitHub,499 Star,52 Fork)专门用于评估LLMs面对敌对性提示攻击时的稳健性,主要聚焦于两种攻击策略:目标劫持和提示泄露,通过精心设计的恶意输入引导模型产出预料之外甚至有害的回答。

简化启动步骤:

  • 加载数据:使用load_data_all_attacks()函数准备攻击数据
  • 定义攻击:选择或配置如promptinject_hate-humans的攻击模式
  • 执行攻击:根据设定的目标执行提示注入
  • 分析结果:分析模型响应,评估模型对不同攻击的抵抗能力

AutoDAN

论文,开源(GitHub,445 Star,63 Fork)项目,自动生成人类可读的越狱提示。

PyRIT

项目主页,Python Risk Identification Tool缩写,微软开源(GitHub,63 Star,9 Fork),不过已于26年3月27日归档。

核心组件

  1. AttackModules(攻击模块)
    • PromptMutationAttack:提示变异攻击
    • CrossSiteScriptingAttack:XSS攻击测试
    • RolePlayAttack:角色扮演攻击
    • GradientBasedAttack:基于梯度的攻击
  2. TargetSystems(目标系统)
    • Azure OpenAI
    • OpenAI API
    • HuggingFace Models
    • Custom Endpoints
  3. Scorers(评分器)
    • TrueFalseScorer:二元评分
    • LikertScaleScorer:李克特量表评分
    • HumanScorer:人工评分
    • SelfAskScorer:模型自评分
  4. Orchestrators(编排器)
    • PromptSendingOrchestrator:提示发送
    • MultiTurnOrchestrator:多轮对话
    • RedTeamingOrchestrator:红队测试编排

使用示例

py 复制代码
from pyrit.prompt_target import AzureOpenAIGPT4OChatTarget
from pyrit.orchestrator import RedTeamingOrchestrator
from pyrit.attack_strategy import AttackStrategy
from pyrit.score import SelfAskTrueFalseScorer

# 初始化目标模型
target = AzureOpenAIGPT4OChatTarget()

# 初始化红队编排器
orchestrator = RedTeamingOrchestrator(
  attack_strategy=AttackStrategy.JAILBREAK,
  prompt_target=target,
  scoring_scorer=SelfAskTrueFalseScorer()
)

# 执行红队测试
results = orchestrator.run_attack()

redStack

基于Terraform和AWS,能在30分钟内获得一个从"开机到破防"的完整红队环境。集成Mythic、Sliver、Havoc三个主流C2框架、带安全过滤的Apache重定向器、集中访问的Guacamole网关,以及预装工具的Windows操作站。支持既需要公网域名、又想连接HackTheBox、VulnLabs这类封闭VPN环境的两种模式。

目标是:让使用者能立即投身于高级C2战术的演练,而不是浪费时间去配置实验室。

默认网络架构:

  • C2服务器端VPC:内部IP段172.31.0.0/16,包含Mythic、Sliver、Havoc三个C2服务器,Guacamole网关和Windows操作站。
  • 重定向器VPC:内部IP段10.60.0.0/16,仅包含Apache重定向器服务器。
  • 关键设计:所有C2服务器均无公网IP,只能通过VPC对等连接,由重定向器进行代理访问。

安全设计核心:重定向器会验证特定的HTTP头部(X-Request-ID)和URI前缀。只有匹配的请求才会被代理到后端的C2服务器,否则将返回一个伪装成CDN维护页面的诱饵页面。

相关推荐
数字供应链安全产品选型1 小时前
软件供应链安全专项测评 —— 悬镜安全:代码安全、开源治理与 AI 赋能的全栈王者
人工智能·安全·开源
冬奇Lab13 小时前
每日一个开源项目(第132篇):SkillSpector - 安装 AI Agent Skill 之前先扫一遍
人工智能·开源·agent
沉默王二15 小时前
LlamaIndex 开源 LiteParse,零云依赖搞定扫描件PDF
pdf·开源
右耳朵猫AI16 小时前
GitHub周趋势2026W23 | last30days-skill AI搜索、headroom令牌压缩、apple/container开源
人工智能·开源·github
Hommy881 天前
【剪映小助手】添加关键帧接口(Add Keyframes)
开源·剪映小助手·视频剪辑自动化·剪映api
狗凯之家源码网1 天前
正版扭蛋机 V3 商用程序,盲盒系统落地实战指南
开源·php
勤劳打代码1 天前
翻江倒海——滚动布局下拉视图管理
flutter·前端框架·开源
江畔柳前堤1 天前
github实战指南05-Fork与开源协作
人工智能·线性代数·oracle·开源·github·word
Keep_Trying_Go1 天前
华为开源框架MindSpore基本使用
华为·开源