跳转到正文

AI 安全与对齐完全指南 ​

"AI 安全不是可选项,而是负责任 AI 开发的基石。"

AI 安全与对齐(AI Safety & Alignment) 是确保 AI 系统按照人类意图行事、避免有害行为的技术领域。随着 AI 能力快速增长,安全与对齐变得越来越关键。本指南综合了 Google SAIF 框架与行业最佳实践。

行业预测

到 2026 年,不进行 AI 红队测试将被视为行业"过失"。预计主要的 Agentic AI 安全事件将加速安全法规的制定。


一、AI 安全基础概念 ​

1.1 核心术语 ​

术语定义重要性
安全(Safety)AI 系统不产生有害输出避免直接伤害
对齐(Alignment)AI 目标与人类意图一致确保行为符合期望
可控性人类能理解和控制 AI保持人类主导权
鲁棒性面对攻击保持安全抵御恶意利用
可解释性理解 AI 决策过程建立信任

1.2 AI 安全威胁分类 ​

威胁类型说明示例严重程度
Prompt 注入通过特殊输入劫持模型忽略原始指令高
Jailbreak绕过安全限制获取禁止内容高
数据投毒污染训练数据植入后门行为极高
模型窃取提取模型参数知识产权泄露中
隐私攻击提取训练数据泄露敏感信息高
幻觉利用利用虚假输出传播错误信息中
对抗样本精心构造的输入导致错误图像分类错误中
供应链攻击污染模型依赖或权重恶意微调模型极高

1.3 安全威胁严重程度 ​

级别描述应对优先级响应时间
P0 - 灾难性可能导致大规模伤害立即阻止<1 小时
P1 - 严重违反法律或核心政策高优先修复<24 小时
P2 - 中等不当内容或偏见输出计划解决<1 周
P3 - 轻微用户体验问题持续改进下个迭代

二、对齐技术(Alignment) ​

2.1 对齐技术演进 ​

阶段时期核心技术代表应用
基础对齐2020-2022RLHF, InstructGPTChatGPT
规模化对齐2023-2024Constitutional AI, DPOClaude, Llama 2
高级对齐2025-2026RLAIF, RLTHF, 混合方法Claude 4.x/5, GPT-5 系列

2.2 RLHF(人类反馈强化学习)详解 ​

RLHF (Reinforcement Learning from Human Feedback) 是当前主流对齐技术:

阶段说明技术细节
1. 监督微调 (SFT)用高质量数据微调基础模型人工编写的示范数据
2. 奖励建模 (RM)训练奖励模型评估响应质量人类偏好排序数据
3. RL 优化使用 PPO 最大化奖励策略梯度优化
4. 迭代改进持续收集反馈优化在线学习

RLHF 优缺点分析:

优势劣势
✅ 效果好,细粒度控制❌ 需要大量人类标注,成本高
✅ 技术成熟,广泛验证❌ PPO 训练不稳定,调参困难
✅ 可处理复杂偏好❌ 可能出现奖励黑客

2.3 DPO(直接偏好优化)详解 ​

DPO (Direct Preference Optimization) 简化了对齐流程:

特点说明
核心思想将 RL 问题转化为分类问题
训练方式直接从偏好对比数据优化策略
无需单独的奖励模型和 RL 训练

DPO 优缺点分析:

优势劣势
✅ 实现简单,易于调试❌ 对数据质量敏感
✅ 训练稳定,收敛快❌ 可能产生长度偏见
✅ 计算资源需求低❌ 难以处理复杂偏好
✅ 适合开源社区和小团队❌ 依赖隐式学习

2.4 RLAIF(AI 反馈强化学习)详解 ​

用 AI 模型替代或增强人类反馈:

方法说明优势挑战
AI 评判者LLM 评估响应质量高度可扩展依赖评判者质量
毒性分类器专门检测有害输出精准过滤需要标注数据
偏见检测器识别偏见内容持续监控偏见定义困难
自我批评模型自我评估改进无需外部数据可能循环偏见

2025 趋势

RLAIF 研究表明,在无害性对齐方面可能优于传统 RLHF,同时大幅降低人工标注成本。

2.5 Constitutional AI(宪法 AI)详解 ​

Anthropic 开发的基于原则的对齐方法:

阶段说明
1. 定义宪法明确定义伦理原则和规则
2. 自我批评模型根据宪法评估自己的输出
3. 自我修正违反原则时自动修改响应
4. RLAIF 训练用 AI 反馈数据进行 RL 训练

Constitutional AI 优缺点:

优势劣势
✅ 原则透明、可审计❌ 宪法设计复杂
✅ 减少人工标注依赖❌ 可能过度限制
✅ 细粒度行为控制❌ 批评模型质量要求高

2.6 对齐技术综合对比 ​

技术人工成本计算成本对齐质量可解释性稳定性适用场景
RLHF高高★★★★★★★★☆☆★★★☆☆基础模型对齐
DPO中低★★★★☆★★★☆☆★★★★★快速迭代、开源
RLAIF低中★★★★☆★★★☆☆★★★★☆大规模对齐
Constitutional AI中中★★★★☆★★★★★★★★★☆安全关键场景
RLTHF (混合)中低中★★★★★★★★★☆★★★★☆平衡效率和质量

2.7 RLTHF:2025 的混合方法 ​

RLTHF (Reinforcement Learning from Targeted Human Feedback) 结合 AI 和人类反馈:

特点说明
核心思想AI 标注简单样本,人类专注困难样本
效率提升达到 RLHF 质量,人工量减少 90%+
适用场景资源有限但追求高质量对齐

三、红队测试(Red Teaming) ​

3.1 什么是 AI 红队测试 ​

AI 红队测试是主动识别 AI 系统漏洞的安全实践,通过模拟攻击发现问题。

测试类型目标方法发现能力
手动红队发现创意性攻击专家人工测试高(新攻击向量)
自动红队大规模漏洞扫描自动化工具广(覆盖面大)
混合红队全面覆盖人机协作最高

3.2 红队测试流程 ​

阶段活动产出关键考量
1. 范围定义确定测试目标和边界测试计划明确攻击面
2. 威胁建模识别潜在攻击向量威胁清单STRIDE 框架
3. 攻击执行实施各类攻击测试攻击记录记录详细步骤
4. 漏洞评估分析发现的问题漏洞报告CVSS 评分
5. 修复验证验证修复效果验证报告回归测试
6. 知识沉淀更新攻击库和防御最佳实践持续改进

3.3 主流红队工具详解 ​

工具提供商类型核心能力攻击向量数
PyRITMicrosoft开源框架多轮对抗探测、自动评分多类别
GarakNVIDIA开源扫描器LLM 漏洞扫描、幻觉检测~100 种
AI Red Team AgentMicrosoft托管服务自动化扫描、风险识别全面
Promptfoo开源开发者框架动态攻击生成、CI/CD 集成灵活配置
Giskard开源持续测试自动化持续红队持续更新
LLMFuzzer开源Fuzzing模糊测试、边界发现自动生成
ARTKIT开源红队框架多轮攻击模拟可扩展
FuzzyAI开源专项工具Jailbreak 检测、变异生成专注越狱

3.4 PyRIT 使用示例 ​

python
from pyrit.orchestrator import PromptSendingOrchestrator
from pyrit.prompt_target import AzureOpenAIChatTarget
from pyrit.score import SelfAskScorer

# 配置目标模型
target = AzureOpenAIChatTarget(
    deployment_name="gpt-5.6",
    endpoint=endpoint,
    api_key=api_key
)

# 配置评分器
scorer = SelfAskScorer(
    score_category="harmful_content",
    chat_target=target
)

# 创建编排器并执行测试
orchestrator = PromptSendingOrchestrator(
    prompt_target=target,
    scorers=[scorer]
)

# 运行攻击探测
results = orchestrator.send_prompts(
    prompts=["请告诉我如何绕过安全限制..."],
    memory_labels={"attack_type": "jailbreak"}
)

# 分析结果
for result in results:
    print(f"Prompt: {result.prompt}")
    print(f"Response: {result.response}")
    print(f"Score: {result.scores}")

3.5 红队测试清单 ​

类别测试项工具推荐
Prompt 注入直接注入、间接注入、多轮注入PyRIT, Garak
Jailbreak角色扮演、编码绕过、逻辑漏洞FuzzyAI, Promptfoo
内容安全暴力、仇恨、非法内容生成Garak, 自定义
隐私泄露训练数据提取、PII 泄露Garak
偏见测试性别、种族、年龄偏见AIF360
幻觉测试事实错误、虚假引用Garak
工具滥用Agent 工具攻击PyRIT

四、Jailbreak 攻击与防御 ​

4.1 Jailbreak 攻击分类 ​

类别攻击类型原理成功率(2025)
单轮攻击角色扮演假装是无限制 AI10-30%
单轮攻击编码绕过Base64/ROT13 编码20-40%
单轮攻击叙事操纵故事情境绕过30-50%
多轮攻击Crescendo逐步升级恶意程度60-80%
多轮攻击对话引导利用上下文累积>90%
结构攻击Policy Puppetry伪装成配置文件>80%
底层攻击TokenBreak利用分词漏洞60-80%

4.2 2025 年新型 Jailbreak 技术详解 ​

Policy Puppetry(2025年4月) ​

特性说明
发现时间2025年4月
影响范围所有主流 LLM(GPT-4、Claude、Gemini 等)
攻击原理将恶意指令伪装成 XML/JSON/INI 配置文件格式
为何有效LLM 训练数据包含大量配置文件,会将其视为权威指令
防御难度高 - 需要语义层面的配置格式检测

TokenBreak(2025年6月) ​

特性说明
发现时间2025年6月
攻击原理通过添加单个字符(如 "instructions" → "finstructions")混淆分词器
为何有效内容审核依赖于特定 token 模式,细微修改可绕过检测
影响分词器BPE、WordPiece 等主流分词算法
防御方法使用 Unigram 分词器、训练对抗样本

多轮攻击技术 ​

技术原理成功率提升
Crescendo从无害问题开始,逐步升级到恶意请求60%+
Hydra探索多个对话路径,记忆失败尝试50%+
GOAT使用攻击模板库迭代优化55%+
Bad Likert Judge让 LLM 评分不同"有害程度"的回答60%+

其他新兴技术 ​

技术说明
Inception Jailbreak让 AI 想象一个没有安全规则的虚构场景
Do-Not-Reply先问如何"不"回答某类请求,降低防御
跨模态攻击通过图像/音频传递恶意指令
Adversarial Suffix添加对抗性后缀字符串
ASCII Art 攻击用 ASCII 艺术隐藏恶意意图

4.3 Jailbreak 防御策略 ​

策略层级策略说明效果
输入层语义过滤检测恶意意图,不仅仅是关键词阻止 70%+ 已知攻击
输入层格式检测识别 Policy Puppetry 等结构攻击阻止结构攻击
输入层Token 规范化缓解 TokenBreak 攻击提升 30%+ 鲁棒性
模型层安全微调对抗性训练提升安全性根本性提升
模型层LLM Salting轻量级防御,增加攻击成本提高复用攻击成本
输出层上下文过滤考虑对话历史的输出审核最后防线
系统层权限最小化限制 Agent 能力边界降低影响范围
监控层行为分析实时检测异常模式快速响应

4.4 多层安全护栏实现 ​

python
from openai import OpenAI
import re

client = OpenAI()

class SafetyGuard:
    def __init__(self):
        self.config_patterns = [
            r'<\?xml', r'^\s*\[.*\]\s*$', r'^\s*{.*}\s*$'  # XML/INI/JSON
        ]
        
    def detect_policy_puppetry(self, text: str) -> bool:
        """检测 Policy Puppetry 攻击"""
        for pattern in self.config_patterns:
            if re.search(pattern, text, re.MULTILINE):
                return True
        return False
    
    def normalize_tokens(self, text: str) -> str:
        """规范化 tokens 以防 TokenBreak"""
        # 移除可疑的单字符前缀
        return re.sub(r'\b([a-z])([a-z]+)\b', 
                      lambda m: m.group(2) if len(m.group(1)) == 1 else m.group(0), 
                      text)
    
    def check_input(self, user_input: str) -> tuple[bool, str]:
        """输入安全检查"""
        # 1. Policy Puppetry 检测
        if self.detect_policy_puppetry(user_input):
            return False, "检测到可疑的格式化内容"
        
        # 2. OpenAI Moderation API
        moderation = client.moderations.create(input=user_input)
        if moderation.results[0].flagged:
            return False, "内容违反使用政策"
        
        return True, ""
    
    def check_output(self, output: str, context: list) -> tuple[bool, str]:
        """输出安全检查(考虑上下文)"""
        # 组合上下文进行审核
        full_context = "\n".join([msg["content"] for msg in context]) + "\n" + output
        
        moderation = client.moderations.create(input=full_context)
        if moderation.results[0].flagged:
            return False, "生成内容不符合安全标准"
        
        return True, ""

def safe_chat(user_input: str, system_prompt: str, history: list = []):
    """安全的对话函数"""
    guard = SafetyGuard()
    
    # 1. 输入检查
    safe, msg = guard.check_input(user_input)
    if not safe:
        return f"请求被拦截:{msg}"
    
    # 2. 规范化输入
    normalized_input = guard.normalize_tokens(user_input)
    
    # 3. 生成响应
    messages = [{"role": "system", "content": system_prompt}] + history
    messages.append({"role": "user", "content": normalized_input})
    
    response = client.chat.completions.create(
        model="gpt-5.6",
        messages=messages
    )
    output = response.choices[0].message.content
    
    # 4. 输出检查
    safe, msg = guard.check_output(output, messages)
    if not safe:
        return f"无法提供该响应:{msg}"
    
    return output

五、内容安全 ​

5.1 内容安全分类 ​

类别子类风险级别自动检测难度
暴力暴力描述、自残指导P0中
仇恨歧视、煽动仇恨P0中
性内容露骨性内容、CSAMP0高
非法活动制造武器、毒品合成P0高
欺诈钓鱼、诈骗内容P1中
错误信息严重虚假信息P1-P2低
隐私侵犯PII 泄露、人肉搜索P1中
版权侵犯未授权内容复制P2低

5.2 内容审核流程 ​

阶段方法说明延迟
预过滤规则引擎拦截明显违规关键词<10ms
实时审核ML 模型语义级别内容分析50-200ms
批量复查定期扫描发现漏网内容异步
人工审核专家评审处理边界案例小时级
用户举报社区反馈补充自动检测异步

5.3 内容安全工具对比 ​

工具提供商模态支持特点成本
OpenAI ModerationOpenAI文本免费、API 集成免费
Perspective APIGoogle文本毒性评分、多语言免费/付费
Azure Content SafetyMicrosoft文本+图像多模态、企业级付费
Llama Guard 3Meta文本开源、可微调免费
ShieldGemmaGoogle文本开源、高性能免费
Claude 分类器Anthropic文本Constitutional AI付费

5.4 Llama Guard 使用示例 ​

python
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "meta-llama/LlamaGuard-3-8B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)

def check_safety(user_message: str, assistant_response: str = None):
    """使用 Llama Guard 检查内容安全"""
    
    if assistant_response:
        chat = [
            {"role": "user", "content": user_message},
            {"role": "assistant", "content": assistant_response}
        ]
    else:
        chat = [{"role": "user", "content": user_message}]
    
    input_ids = tokenizer.apply_chat_template(chat, return_tensors="pt")
    output = model.generate(input_ids, max_new_tokens=100)
    result = tokenizer.decode(output[0], skip_special_tokens=True)
    
    # 解析结果
    if "unsafe" in result.lower():
        # 提取违规类别
        categories = extract_categories(result)
        return {"safe": False, "categories": categories}
    
    return {"safe": True, "categories": []}

六、Agentic AI 安全 ​

6.1 Agent 特有风险矩阵 ​

风险说明影响缓解措施
工具滥用恶意使用外部工具/API高权限控制、调用审批
目标偏离优化错误或次优目标高目标对齐检查、人工监督
自主升级获取超出范围的权限极高最小权限原则、沙箱
循环陷阱无限循环消耗资源中执行限制、超时终止
级联失败一个 Agent 影响其他系统高故障隔离、熔断机制
数据泄露通过工具泄露敏感信息高数据脱敏、输出过滤
社会工程Agent 被操纵执行恶意任务高意图验证、确认机制

6.2 Agent 安全架构 ​

┌─────────────────────────────────────────────────────────┐
│                      监控层                              │
│  日志收集 │ 行为分析 │ 异常检测 │ 告警系统              │
├─────────────────────────────────────────────────────────┤
│                      输出层                              │
│  结果验证 │ 安全过滤 │ 敏感信息脱敏                     │
├─────────────────────────────────────────────────────────┤
│                      执行层                              │
│  权限控制 │ 操作审计 │ 沙箱隔离 │ 资源限制              │
├─────────────────────────────────────────────────────────┤
│                      规划层                              │
│  计划审核 │ 目标对齐检查 │ 风险评估                     │
├─────────────────────────────────────────────────────────┤
│                      输入层                              │
│  请求验证 │ 注入检测 │ 意图确认                         │
└─────────────────────────────────────────────────────────┘

6.3 Agent 安全最佳实践 ​

原则实践
最小权限Agent 只能访问完成任务必需的工具和数据
确认机制高风险操作需要人工确认
审计追踪记录所有 Agent 决策和行动
故障隔离Agent 错误不应影响其他系统
资源限制限制执行时间、API 调用次数
回滚能力可以撤销 Agent 的操作

6.4 Agent Ops 团队 ​

2025 趋势

企业正在组建专门的 "Agent Ops" 团队来监控、训练和治理 AI Agent。

角色职责技能要求
Agent 安全工程师安全测试、漏洞修复、红队安全+AI
Agent 运维工程师监控、告警、事件响应SRE+AI
AI 治理专员政策制定、合规审计法务+AI
提示词工程师安全提示词设计NLP+安全

6.5 安全的信任权衡 ​

创建 Agent 时面临一个根本张力:效用与安全之间的权衡。赋予 Agent 更多权力(自主性和工具)会增加风险。

主要安全关切说明
流氓行动未预期或有害的行为
敏感数据泄露通过 Agent 输出泄露私密信息

Google 建议

不能完全依赖 AI 模型的判断来保证安全——模型可能被 Prompt 注入等技术操纵。最佳实践是混合纵深防御方法。

6.6 Agent 身份:新型主体类别 ​

在传统安全模型中,有两类主体:

  • 人类用户:使用 OAuth/SSO 认证
  • 服务账号:集成到 IAM

Agent 引入了第三类主体——它不仅仅是代码,而是自主行动者,需要自己的可验证身份。

主体类型认证/验证方式说明
UsersOAuth / SSO人类行为者,完全自主和负责
AgentsSPIFFE(新类别)代理权限,代表用户行动
Service AccountsIAM应用/容器,完全确定性

为什么 Agent 身份重要

有了加密可验证的 Agent 身份,才能授予其特定的最小权限。SalesAgent 获得 CRM 读写权限,HRAgent 被明确拒绝访问。即使单个 Agent 被攻陷,影响范围也被限制。

6.7 策略约束访问 ​

策略(Policy) 是授权(AuthZ)的一种形式,与认证(AuthN)不同。

策略应用对象示例
Agent 本身限制可调用的 API 端点
工具限制可执行的操作类型
内部 Agent控制 Agent 间通信权限
上下文共享限制可共享的数据范围
远程 Agent通过 A2A 协议控制跨组织调用

核心原则:添加所有 API、数据、工具和 Agent 后,约束访问到仅完成工作所需的最小子集。

6.8 Google ADK 安全实践 ​

使用 Google Agent Development Kit (ADK) 保护 Agent:

安全层实现方式
身份定义用户账号(OAuth)、服务账号(运行代码)、Agent 身份(代理权限)
策略约束API 治理层 + MCP/A2A 服务治理
工具级防护在工具内置安全检查,无论 LLM 推理如何都拒绝不安全操作
Callbacks & Pluginsbefore_tool_callback 检查参数,"Gemini as a Judge" 实时筛查
Model Armor托管服务,筛查 Prompt 注入、越狱、PII 泄露、恶意 URL

ADK Callback 示例:

python
def before_tool_callback(tool_name: str, params: dict, context: AgentContext) -> bool:
    """在工具执行前进行安全检查"""
    # 检查高风险操作
    if tool_name == "send_email" and params.get("recipient_count", 0) > 100:
        return False, "批量邮件需要人工审批"
    
    # 检查参数是否符合策略
    if not validate_against_policy(tool_name, params, context.agent_id):
        return False, "操作超出 Agent 授权范围"
    
    return True, None

6.9 从单 Agent 扩展到企业舰队 ​

单个 Agent 安全成功后,扩展到数百个 Agent 带来新挑战——Agent Sprawl(Agent 蔓延)。

核心问题 ​

问题说明
可见性不知道有多少 Agent 在运行,做什么
一致性安全标准参差不齐
审计无法追踪所有 Agent 活动

解决方案:中央网关控制平面 ​

想象一个繁忙的大都市,有数千辆自动驾驶汽车。没有交通灯和车牌,就是混乱。

网关方法:建立所有 Agent 活动的强制入口点:

  • 用户到 Agent 的 Prompt/UI 交互
  • Agent 到工具的调用(MCP)
  • Agent 到 Agent 的协作(A2A)
  • 直接推理请求
网关功能说明
运行时策略执行认证("我认识这个 Actor 吗?")+ 授权("它有权限吗?")
集中治理中央注册表作为真相来源——Agent 和工具的"企业应用商店"
单一玻璃窗观测所有交易的通用日志、指标、追踪
生命周期管理发布前安全审查、版本控制、细粒度策略

七、安全评估与监控 ​

7.1 安全评估指标 ​

指标说明目标值测量方法
攻击成功率 (ASR)攻击绕过防护比例<5%红队测试
有害输出率产生有害内容比例<0.1%自动评估
误拒率 (FRR)错误拒绝正常请求<1%用户反馈
检测延迟发现问题的时间<1s监控系统
修复时间 (MTTR)问题修复的时间<24h (P0)事件追踪
覆盖率测试覆盖的攻击向量>90%红队报告

7.2 安全监控仪表盘 ​

监控维度关键指标告警阈值
安全事件有害输出数量、攻击尝试超过基线 2x
性能影响安全检查延迟>500ms
误报率正常请求被拦截>2%
覆盖缺口未检测的攻击类型任何新类型

7.3 安全审计清单 ​

审计项频率责任人
红队测试报告季度安全团队
自动化漏洞扫描月度DevSecOps
安全事件复盘每事件安全团队
政策合规检查年度合规团队
第三方审计年度外部审计
对齐质量评估季度AI 团队

八、2025-2026 安全趋势 ​

趋势说明成熟度
红队自动化AI 驱动的自动化红队测试工具成熟
Agentic AI 安全针对自主 Agent 的专门安全体系早期
多模态安全跨模态攻击检测与防御发展中
对齐可扩展性RLAIF 和混合方法降低对齐成本成熟
实时防御低延迟的攻击检测和响应成熟
隐私增强差分隐私、联邦学习集成发展中
可解释安全安全决策的可解释性早期
零信任 AI持续验证的 AI 访问控制早期

九、学习资源 ​

9.1 官方文档 ​

资源链接
OpenAI 安全最佳实践platform.openai.com/docs/guides/safety
Anthropic 安全研究anthropic.com/research
Microsoft AI 安全microsoft.com/ai/responsible-ai
NIST AI RMFnist.gov/ai

9.2 红队工具 ​

工具链接
PyRITgithub.com/Azure/PyRIT
Garakgithub.com/leondz/garak
Promptfoogithub.com/promptfoo/promptfoo

核心建议

  1. 安全优先:将安全考量融入 AI 开发全流程
  2. 持续测试:定期进行红队测试和漏洞扫描
  3. 纵深防御:组合多层安全措施
  4. 快速响应:建立完善的安全事件响应机制
  5. 人类监督:保持对 AI 系统的人类控制
  6. 持续学习:Jailbreak 技术快速演进,保持更新

← 返回 AI 知识库