8.1 纵深防御原则

纵深防御(Defense in Depth)是安全领域的核心原则,在 LLM 安全中同样适用。

8.1.1 纵深防御概念

纵深防御通过多层独立的安全措施,确保单一防护失效时整体安全不被突破。

层级示意

spinner

图 8-1:纵深防御概念流程图

核心理念

原则
描述

多层防护

每层都提供独立的安全保障

独立失效

一层失效不影响其他层

互补机制

不同层使用不同检测技术

假设失败

假设任何一层可能被突破

8.1.2 LLM 安全防御层次

针对 LLM 应用的纵深防御架构:

spinner

图 8-2:LLM 安全防御层次架构图

8.1.3 各层防护详解

边界防护层

输入安全层

[!TIP] 开源工具参考:LLM Guardarrow-up-right 提供开箱即用的输入扫描器(注入检测、有害内容、PII、越狱等);NeMo Guardrailsarrow-up-right 支持通过可编程“护栏”对输入进行话题控制与安全过滤。

上下文安全层

模型安全层

[!TIP] 开源工具参考:Llama Guardarrow-up-right 是 Meta 开源的安全分类模型系列。最新的 Llama Guard 3(基于 Llama 3.1-8B)支持 8 种语言和 14 个安全类别,还提供了 Llama Guard 3.2(1B 参数轻量版)和支持图像内容审核的 Vision 版本。可对输入提示和输出响应进行安全判定,适合作为模型层的独立安全检查组件。

工具安全层

输出安全层

[!TIP] 开源工具参考:Microsoft Presidioarrow-up-right 提供 PII 识别与脱敏能力,可部署在输出侧对模型响应进行敏感信息过滤;LLM Guard 同样提供输出扫描模块(有害内容、PII、相关性验证等)。

运营安全层

8.1.4 防御组合策略

不同威胁需要多层协同防护:

提示注入防护

层级
措施

输入层

注入模式检测

上下文层

来源标记区分

模型层

安全对齐抵抗

输出层

异常行为过滤

数据泄露防护

层级
措施

输入层

过滤信息提取请求

模型层

限制敏感信息复现

输出层

PII 检测和脱敏

运营层

泄露事件监控

8.1.5 层间冗余设计

关键防护应在多层实施,避免单点失效:

spinner

图 8-3:层间冗余设计流程图

即使每层只有部分有效,多层组合可以大幅提高整体安全性。

8.1.6 动态防御

纵深防御不是静态的,需要持续演进:

spinner

图 8-4:动态防御流程图

动态调整原则

  • 根据新威胁调整防护策略

  • 基于监控数据优化规则

  • 定期进行安全评估

  • 持续改进防御能力

8.1.7 攻击-防线快速对照表

下表从工程视角总结典型攻击与对应防线,便于快速定位防护措施:

攻击类别
主要目标
典型入口
关键防线(优先级由高到低)

直接提示注入/越狱

改写行为/绕过规则

用户输入

输入检测(分类器/规则)→ 输出验证 → 权限收敛

系统提示泄露

套出系统提示、策略、工具链信息

多轮追问/复述/总结

机密不入上下文 → 输出脱敏/拦截 → 日志/错误处理不回显

间接提示注入

借外部内容注入指令

RAG 文档/网页/邮件

外部内容视为不可信数据 → 文档注入检测 → 上下文最小化

RAG 检索投毒

控制检索结果与回答

向量库/网络内容

来源白名单/信誉 → 检索过滤 → 异常检测

工具/智能体注入

诱导调用工具越权、外泄数据

工具调用、工作流

工具最小权限/参数约束 → 沙箱执行 → 审批/审计

不安全输出处理

触发 SQL/XSS/模板/命令注入

下游执行器

参数化/转义/静态检查/沙箱;不要执行自由文本

训练数据投毒

植入后门/系统性偏差

预训练/微调数据

数据审核 → 供应链安全 → 行为监控

资源消耗/DoS

拉高成本/拖垮服务

超长输入/复杂推理

速率限制 → 输入长度限制 → 成本告警

[!TIP] 此表可作为安全设计评审的检查清单。对于每种攻击类别,确保至少有一层有效防线。

8.1.8 防御成本与收益权衡

为什么需要成本效益分析

"安全第一"的原则在实践中往往面临一个现实难题:资源有限,而防御措施无限。一个企业不可能同时部署"多模型交叉验证、TEE 隔离、差分隐私"等所有高端防护技术——这样不仅成本爆炸,而且会严重拖累用户体验(延迟、成本)。

合理的安全架构设计应该是**"有所为,有所不为"**:

  • 有所为:对高风险、高收益的场景投入高成本的防护

  • 有所不为:对低风险或已接受风险的场景,采用轻量级防护甚至接受风险

这个权衡决策应该由三个因素驱动:

  1. 业务风险等级:数据敏感性、用户规模、合规要求

  2. 攻击可能性:根据历史事件和威胁模型评估

  3. 防护成本:实施复杂度、性能开销、运维负担、计算成本

防御措施不可能全面覆盖,企业应根据业务风险等级与资源预算进行选择性部署。以下表格总结了常见防御措施的成本与效能,帮助团队做出理性决策:

防御措施
实施成本
延迟影响
防御效果
适用场景

输入关键词过滤

<1ms

低(易绕过)

所有场景的基础层,最低成本快速拦截

LLM 分类器检测

50-200ms

中-高

高安全要求场景,如代码执行、金融建议

多模型交叉验证

200-500ms

金融、医疗、法律等关键场景,对准确度要求极高

差分隐私训练

训练时间增加 2-5x

涉及敏感个人数据的模型训练,长期合规需求

TEE 隔离推理

推理延迟增加 10-30%

高合规要求场景(如医疗数据、财务系统)、硬件成本可控

实时监控与日志

10-50ms

所有场景,用于事后分析与改进

成本与收益的权衡原则

  1. 分层递进策略

    • 从“最小可行安全集”开始部署:输入关键词过滤 + 实时监控。

    • 根据实际风险事件的发生情况,逐步增加 LLM 分类器等更强的防御手段。

    • 避免过度投资低风险场景,浪费资源。

  2. 业务风险等级驱动

    • 低风险场景(如通用信息查询、创意写作):仅需关键词过滤 + 基本监控。

    • 中等风险场景(如代码生成、数据分析建议):加入 LLM 分类器与敏感信息过滤。

    • 高风险场景(如医疗诊断、金融交易、法律建议):考虑多模型交叉验证、TEE 隔离、人工审核环节。

  3. 延迟与用户体验权衡

    • 关键词过滤的 <1ms 延迟对用户体验无感。

    • LLM 分类器的 50-200ms 延迟可以接受,但在实时对话场景需要异步处理或流式反馈。

    • 多模型交叉验证的 200-500ms 延迟适合非实时场景(如批量审核、定时检查)。

  4. 组织能力与技术成熟度

    • 如果团队 ML 工程化能力薄弱,直接跳到“多模型交叉验证”会导致高昂的维护成本与频繁失效。

    • 建议先在关键词过滤与 LLM 分类器阶段积累经验,再考虑更复杂的方案。

  5. 定期复盘与优化

    • 每个季度复盘实际发生的安全事件,评估现有防御的有效性。

    • 如果某类攻击频繁突破,主动升级该类防御的强度,而不是盲目增加所有防御。

    • 如果某类防御长期无事件触发,考虑适度削减成本。

企业部署建议清单

纵深防御是 LLM 安全的核心框架,但不是“大而全”的堆砌。后续各节将详细介绍各层的具体实现。

8.1.9 防御措施成本效益对照

多维度评估框架

选择防御措施的四个核心评估维度:

  1. 延迟影响:对用户体验最直接的指标。毫秒级延迟在同步 API 场景可能无法接受,但在异步处理中则完全可以。

  2. 实施复杂度:反映了在现有架构中集成该防御的难度。简单措施可以快速上线,复杂措施需要长期投入。

  3. 计算成本:API 调用费用、GPU 算力、带宽成本的组合。这对于不断增长的流量会产生复利效应。

  4. 误报风险:高误报率意味着大量合法请求被拒绝,直接影响用户满意度。

分层防御的经济学

以下表格展示了防御措施在这四个维度的权衡,帮助团队根据场景选择合适的组合:

防御措施
实施复杂度
延迟影响
计算成本
误报风险
推荐优先级
典型应用场景

输入长度限制

<1ms

极低

P0(必选)

所有应用,基础防线

关键词/正则过滤

<5ms

中-高

P0(必选)

快速拦截显而易见的恶意内容

编码规范化

<2ms

极低

极低

P0(必选)

防止编码绕过(Unicode、零宽字符等)

输出内容过滤

10-50ms

P0(必选)

防止敏感信息泄露(PII、密钥)

LLM 语义检测

100-500ms

低-中

P1(推荐)

中等风险应用,需要精细化检测

多模型交叉验证

200-1000ms

很高

P2(增强)

高敏场景(金融、医疗),批量处理

RAG 来源校验

10-30ms

P1(推荐)

RAG 应用,防止文档注入

差分隐私(DP-SGD)

很高

训练时

很高

N/A

P2(高敏场景)

涉及隐私敏感训练数据的模型

TEE 隔离推理

很高

10-30%

很高

极低

P2(高敏场景)

极高合规要求(医疗、金融)、硬件成本可控

注意:以上数据为典型范围估计,实际值取决于模型规模、硬件配置和业务场景。建议在选型时进行基准测试。

分阶段决策树

选择防御措施的实用决策树:

最后更新于