深色模式
LLM 安全威胁总览
摘要:本文是
guide/ai/security/系列的总纲,面向负责把大模型能力接入生产系统的 SRE / 平台工程师。我们用 OWASP LLM Top 10(2025 版)作为威胁分类词汇表,用 NIST AI RMF 作为治理骨架,给出一张可映射到团队职责的威胁面图与防御纵深模型。适用模型/版本:GPT-4o 系列、Claude Opus/Sonnet 4.x、Gemini 1.5/2.x 等主流闭源 API,以及 Llama 3.x / Qwen 等自托管模型。本文不编造任何 Benchmark 或榜单,具体数值结论均标注来源。
适用版本与前提
- 适用范围:使用 LLM / RAG / Agent 的应用,包含 API 网关、编排层(orchestrator)、工具(MCP/function calling)与向量库。
- 风险分类参考:OWASP LLM Top 10 2025 版(version 1.1.0)。
- 治理框架参考:NIST AI RMF 1.0(2023-01-26 发布)+ GenAI Profile(NIST AI 600-1,2024-07 发布)。
- 读者需具备基础应用安全知识(注入、Broken Access Control、SSRF 仍适用)。
版本相关:OWASP 2023 与 2025 分类不同
OWASP LLM Top 10 在 2025 版进行了重组,类目名称与排序与 2023 版差异较大(例如 2023 版 LLM02 Insecure Output Handling、LLM03 Training Data Poisoning;2025 版改为 LLM02 Sensitive Information Disclosure、LLM03 Supply Chain)。本文采用 2025 版分类,对接 Retro/finding 时务必核对你们内部采用的是哪一版,避免编号错位。
核心概念:两个坐标系
LLM 安全需要两套坐标系配合使用,缺一不可:
- 威胁坐标系(OWASP LLM Top 10):回答"会被怎么打"。它是社区维护的风险清单,给安全沟通提供统一术语(说"LLM01"大家知道是提示注入)。
- 治理坐标系(NIST AI RMF):回答"怎么体系化地管"。四个核心函数
Govern / Map / Measure / Manage,把风险落到组织职责与生命周期。
NIST AI RMF 四函数一句话
- Govern:建立风险文化、政策、问责(横切所有其他函数)。
- Map:识别系统上下文、用途、相关方与风险。
- Measure:用定性与定量方法评估、跟踪风险。
- Manage:对识别出的风险制定处置(规避/缓解/转移/接受)。
架构:威胁面与防御纵深
下图把 LLM 应用的攻击面与 OWASP 类目、以及对应防御层叠在一起。注意:传统 AppSec 风险(OWASP Web Top 10)在模型外围的服务里依然成立,LLM Top 10 是叠加透镜而非替代。
OWASP LLM Top 10(2025)十类风险速览
| ID | 风险 | 一句话说明 | 本系列对应章节 |
|---|---|---|---|
| LLM01 | Prompt Injection | 不可信输入劫持模型行为 | prompt-injection-defense |
| LLM02 | Sensitive Information Disclosure | 输出/日志/错误泄露 PII、密钥、系统提示 | data-leak |
| LLM03 | Supply Chain | 第三方模型/数据/插件/依赖带漏洞 | 依赖治理见 model-registry,插件权限见 tool-abuse |
| LLM04 | Data and Model Poisoning | 训练/RAG 数据被篡改植入后门 | data-leak |
| LLM05 | Improper Output Handling | 把模型输出当可信数据喂下游 | content-moderation |
| LLM06 | Excessive Agency | 工具/集成权限过大、缺乏确认 | tool-abuse |
| LLM07 | System Prompt Leakage | 系统提示(含策略/密钥)被提取 | prompt-injection-defense |
| LLM08 | Vector and Embedding Weaknesses | RAG 检索被操纵或泄露数据 | data-leak |
| LLM09 | Misinformation | 幻觉/误导内容被过度信任 | content-moderation |
| LLM10 | Unbounded Consumption | 资源/额度被滥用导致 DoS 与成本失控 | 见下文成本节 |
生产实践:把总览落到职责
给平台/SRE 团队的最小落地清单
- 每个 LLM 功能都过一遍上表,标注哪些行"可达"(真的能触达攻击面)vs"理论"。
- 工具调用一律走白名单 + 最小权限 + 人工确认门(对应 LLM06)。
- 所有输出与日志默认脱敏(对应 LLM02/LLM07),密钥绝不进 prompt。
- API 层加 per-user 速率限制与预算熔断(对应 LLM10)。
- 保留不可篡改的审计日志(对应全部类目的取证)。
验证:如何证明你在覆盖
bash
# 1) 列出你暴露给 Agent 的全部工具(MCP/function),核对是否最小权限
# TODO(verify): 用你们自己的编排层导出脚本替代下面占位
python -m your_orchestrator list_tools --format json | jq '.[] | {name, scope, requires_approval}'
# 2) 对生产流量跑注入红线用例(仅限授权测试环境)
# 参考 llmbestpractices 的 prompt-injection 评估集
pytest tests/redteam/test_prompt_injection.py --env staging
# 3) 检查审计日志是否覆盖工具调用与拒绝事件
curl -s "$LOG_API/health" ; echo1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
回滚与清理
安全加固可能中断业务
收紧工具权限、开启强制内容审核、降低速率上限都会立即影响在线流量。变更前在 staging 灰度,用 kubectl auth can-i 思路(对 AI 即"这个身份能否调这个工具")确认影响面,保留一键回滚配置(feature flag)。
故障排查
- Q:红队用例偶发通过/偶发失败? 大模型输出有随机性(temperature>0)。评估要靠多次采样 + 统计,单次"过了"不代表安全。
- Q:内容审核误杀正常业务? 多为阈值过高或分类体系不匹配业务语义,下调 severity 阈值或加业务白名单,并监控 false positive 率。
成本 / 性能:安全失控的真实代价
安全事件在 LLM 场景会直接转化为账单:
- LLM10 资源消耗失控:提示注入可诱导 Agent 进入"调用→读结果→再调用"的循环(reAct 死循环),无限消耗 token。一个未设预算上限的 Agent 在数小时内可产生数千美元账单。务必设
max_iterations、单会话 token 上限、per-user 速率限制。 - 数据泄露的间接成本:一次 PII 泄露可能触发 GDPR / 个保法下的最高额罚款(EU AI Act 罚款上限为 3500 万欧元或全球营业额 7%,取其高者
[版本相关:Regulation (EU) 2024/1689]),远大于模型调用费。 - 越权工具调用:一次未授权
rm -rf/ 转账 / 发邮件,损失不可量化,必须有确认门与沙箱兜底。
成本护栏是本期重点
对 Agent 类应用,永远设置:(1) 单轮/单会话最大工具调用次数;(2) 单用户每日 token / 费用预算;(3) 高风险工具(写、删、对外发送)的人工确认。三者缺一是生产事故的高概率来源。
安全与合规
- 监管主线:EU AI Act(Regulation (EU) 2024/1689,2024-08-01 生效,禁止类 2025-02-02 起适用,GPAI 义务 2025-08-02 起、全面适用 2026-08-02)按风险分级。
- 治理主线:以 NIST AI RMF 的 Govern/Map/Measure/Manage 建立组织级责任制,GenAI Profile(NIST AI 600-1)给出生成式 AI 专属的 12 类风险与 200+ 建议动作。
- 落地主线:本系列各篇提供可复制配置,详见文末各链接。