云计算百科
云计算领域专业知识百科平台

AI安全攻防与治理之十三:如何设计一套大模型应用攻防演练,从资产盘点到风险复现

很多企业开始做大模型安全测试时,第一步通常是收集一批越狱提示词:

  • 忽略之前的指令;
  • 进入开发者模式;
  • 假设没有任何限制;
  • 要求输出系统提示词;
  • 用角色扮演绕过安全规则。

这些测试可以作为起点,但不能代表一套完整的大模型应用攻防演练。

因为企业真正需要防护的,不只是模型输出内容,还包括:

  • 用户和租户数据;
  • RAG 知识库;
  • 会话记忆;
  • 工具和插件;
  • 业务 API;
  • 生产数据库;
  • 云平台和代码仓库;
  • 自动化审批、退款、发信和配置变更。

因此,一套成熟的演练目标应当是:

在模拟真实业务和真实攻击条件的前提下,验证攻击者能否影响模型判断、突破数据和权限边界,最终改变业务系统状态。

可以将整个演练概括为:

资产盘点
  ↓
威胁建模
  ↓
信任边界识别
  ↓
攻击用例设计
  ↓
隔离环境验证
  ↓
风险复现与证据保全
  ↓
整改、回归与持续监控

一、先明确演练目标,而不是先写提示词

攻防演练开始前,必须先明确演练要回答什么问题。

常见目标包括:

1. 模型行为安全

  • 是否会泄露系统提示词;
  • 是否会被直接或间接提示词注入;
  • 是否会生成违规或危险内容;
  • 是否会把外部文档当成系统指令;
  • 是否会在多轮对话中逐步放宽边界。

2. 数据安全

  • 是否存在跨用户或跨租户访问;
  • RAG 是否会检索越权文档;
  • 向量库和会话记忆是否隔离;
  • 敏感字段是否被最小化;
  • 日志、缓存和备份是否残留数据。

3. 工具和权限安全

  • 模型是否可以调用不应调用的工具;
  • 工具参数是否可以被篡改;
  • 服务端是否独立校验权限;
  • 是否可以绕过二次确认和审批;
  • 是否可以通过多个低风险工具组合出高风险结果。

4. 业务安全

  • 是否能修改订单、工单、客户等级或配置;
  • 是否能发起退款、付款或转账;
  • 是否能对外发送敏感信息;
  • 是否能执行生产环境命令;
  • 是否能影响真实业务决策。

如果没有清晰目标,演练很容易变成:

找到几个模型回答异常的问题
→ 截图
→ 标记为越狱
→ 演练结束

这对企业实际风险的解释能力非常有限。

二、第一步:资产盘点

大模型应用的资产远不止模型 API。

建议至少盘点以下对象。

1. 模型资产

  • 基础模型;
  • 微调模型;
  • 嵌入模型;
  • 重排序模型;
  • 内容安全模型;
  • 模型版本;
  • 部署区域;
  • 模型服务商;
  • 推理接口;
  • 备用模型和降级模型。

2. 提示词与上下文资产

  • 系统提示词;
  • 开发者指令;
  • Agent 规划模板;
  • 工具描述;
  • 输出格式模板;
  • 安全规则;
  • 会话记忆;
  • 长期用户画像;
  • Prompt 缓存。

3. 数据与知识资产

  • 原始文件;
  • 文档解析服务;
  • RAG 知识库;
  • 向量数据库;
  • 搜索索引;
  • 文档元数据;
  • 权限标签;
  • 训练和评测数据;
  • 日志、缓存和备份。

4. 工具与业务资产

  • 内部 API;
  • 数据库查询;
  • CRM;
  • 工单系统;
  • 财务和支付接口;
  • 邮件和消息系统;
  • 代码仓库;
  • 云平台;
  • 运维平台;
  • 生产环境脚本;
  • 第三方插件。

5. 身份和权限资产

  • C 端用户;
  • B 端客户;
  • E 端员工;
  • 管理员;
  • 服务账号;
  • Agent 身份;
  • API Key;
  • OAuth 应用;
  • 云角色;
  • 供应商运维账号。

6. 监控与审计资产

  • API 网关;
  • WAF;
  • DLP;
  • SIEM;
  • EDR;
  • 链路追踪;
  • 工具调用日志;
  • 业务审计日志;
  • 告警和响应平台。

资产盘点的核心不是列出产品名称,而是明确:

谁可以访问它
它可以访问什么
它会把数据传给谁
出现异常后能否追踪

三、第二步:绘制数据流和信任边界

演练必须建立在真实架构上。

一个常见的 AI 应用数据流可能是:

用户输入
   ↓
前端和 API 网关
   ↓
身份认证与租户识别
   ↓
输入检测与上下文编排
   ↓
RAG 检索和会话记忆
   ↓
模型推理
   ↓
工具网关
   ↓
业务 API、数据库和云平台
   ↓
输出、日志、缓存和审计

在这条链路上,要标记信任边界:

  • 用户输入是否可信;
  • 上传文档是否可信;
  • 知识库内容是否可信;
  • 工具返回结果是否可信;
  • 模型输出是否可信;
  • Agent 是否拥有独立身份;
  • 服务端是否重新执行权限校验;
  • 哪些系统具有真实业务副作用。

尤其要找出以下危险连接:

不可信输入 → 高权限工具
低权限用户 → 共享管理员身份
RAG 文档 → 系统指令
模型输出 → 生产 API
工具结果 → 无过滤上下文
缓存内容 → 跨用户复用

这些位置通常比模型本身更值得优先测试。

四、第三步:建立威胁模型

可以从几个角色出发:

1. 外部匿名用户

目标可能是:

  • 获取内部提示词;
  • 访问其他用户数据;
  • 诱导客服 Agent 违规操作;
  • 利用上传文件注入恶意指令;
  • 试探系统工具和内部流程。

2. 普通注册用户

目标可能是:

  • 越权访问其他订单;
  • 绕过退款或售后限制;
  • 利用多轮对话获取更多上下文;
  • 污染公开知识库;
  • 组合低风险工具完成数据外传。

3. 低权限员工

目标可能是:

  • 访问其他部门文档;
  • 读取高密级知识库;
  • 调用未授权内部工具;
  • 导出客户或员工数据;
  • 利用 Agent 横向访问业务系统。

4. 恶意供应商或外部内容提供方

目标可能是:

  • 上传被投毒的文档;
  • 影响 RAG 回答;
  • 插入工具调用指令;
  • 污染训练、评测或标注数据;
  • 获取其他客户信息。

5. 被盗用的服务账号

目标可能是:

  • 利用 Agent 的高权限工具;
  • 批量查询或导出;
  • 执行生产变更;
  • 隐藏真实操作者;
  • 绕过人工审批。

威胁模型最终要形成:

攻击者
→ 可控制的输入
→ 可影响的模型行为
→ 可调用的工具
→ 可突破的权限
→ 可能造成的业务后果

五、第四步:设计高价值攻击用例

高价值用例不能只写一句提示词,而应描述完整场景。

建议每条用例至少包含:

字段内容
用例编号 唯一标识和版本
业务场景 客服、采购、财务、研发、运维等
攻击者身份 匿名用户、普通员工、供应商等
初始权限 原本可以访问什么
攻击入口 对话、文件、网页、邮件、API 等
攻击目标 数据、工具、权限、业务状态
前置条件 需要哪些能力或配置
攻击步骤 输入、交互和调用过程
预期控制 哪个模块应当阻断
实际结果 模型和系统真实行为
影响范围 数据、资金、生产、客户等
证据 输入、日志、调用和业务记录
整改建议 可落地的修复方案
回归结果 修复后是否仍可复现

示例:间接提示词注入导致越权退款

场景:

  • 客服 Agent 支持订单查询和退款申请;
  • 用户可以上传售后凭证图片;
  • 图片会经过 OCR;
  • OCR 内容会进入模型上下文;
  • 退款接口由 Agent 调用。

攻击步骤:

上传含恶意指令的图片
   ↓
OCR 识别出恶意文字
   ↓
模型将文档内容当成任务指令
   ↓
模型尝试查询其他订单
   ↓
模型把自然语言“确认”视为退款授权
   ↓
调用退款工具
   ↓
观察服务端是否校验订单归属和确认凭证

风险是否成立,不取决于模型是否理解了恶意文字,而取决于:

  • 是否读到了越权数据;
  • 是否生成了越权工具调用;
  • 工具网关是否拦截;
  • 业务服务是否独立校验;
  • 是否改变了真实退款状态。

六、攻击用例应覆盖哪些类别

1. 输入与提示词注入

  • 直接提示词注入;
  • 间接文档注入;
  • 网页和邮件注入;
  • 多轮对话注入;
  • 多语言和编码绕过;
  • 图片、音频和二维码注入;
  • 工具返回结果注入。

2. 系统提示词与配置泄露

  • 套取系统提示词;
  • 提取工具名称和参数;
  • 暴露内部数据源;
  • 暴露审批逻辑;
  • 暴露调试配置;
  • 推断模型和插件架构。

3. RAG 与知识库安全

  • 跨租户检索;
  • 文档权限撤销后仍能召回;
  • 知识库投毒;
  • 版本冲突;
  • 低可信文档覆盖正式制度;
  • 向量索引残留;
  • 过量字段返回。

4. Agent 与工具调用

  • 未授权工具调用;
  • 工具参数篡改;
  • 高风险工具绕过确认;
  • 状态机绕过;
  • 工具组合攻击;
  • 批量调用;
  • 重复执行;
  • 通过外部邮件和文件实现数据外传。

5. 身份和多租户

  • 用户冒充管理员;
  • 会话串线;
  • 缓存跨租户复用;
  • 服务账号权限过大;
  • Agent 使用统一管理员身份;
  • 供应商运维越权;
  • 离职账号仍可访问。

6. 输出与业务执行

  • 敏感字段泄露;
  • 模型输出直接进入数据库;
  • 自动生成 SQL;
  • 自动执行生产命令;
  • 自动发信;
  • 自动审批;
  • 错误退款、付款和配置变更。

七、第五步:准备隔离演练环境

大模型攻防演练应尽可能在可控环境中完成。

建议准备:

1. 测试租户

使用专门的演练租户,避免与真实客户数据混用。

2. 脱敏和模拟数据

模拟:

  • 客户;
  • 订单;
  • 合同;
  • 退款;
  • 供应商;
  • 员工;
  • 生产配置。

不要为了追求“真实效果”直接将真实客户数据放进演练环境。

3. 受控工具

工具应使用:

  • 测试 API;
  • 沙箱数据库;
  • 模拟付款;
  • 可回滚配置;
  • 只允许有限范围的脚本;
  • 防止访问真实生产秘密。

4. 完整日志

至少记录:

  • 原始输入;
  • 模型版本;
  • 系统提示词版本;
  • 检索结果;
  • 工具调用;
  • 权限判定;
  • 业务结果;
  • 告警和拦截;
  • 测试人员和时间。

5. 清理和回滚机制

演练前确认:

  • 可以删除测试数据;
  • 可以回滚工具状态;
  • 可以撤销测试权限;
  • 可以恢复知识库;
  • 可以清理缓存和会话;
  • 可以关闭临时接口。

八、第六步:执行演练并保全证据

演练执行时,不应只记录“成功”或“失败”。

每次测试都要保存:

测试时间
测试账号
测试租户
输入内容
上传文件
会话 ID
模型版本
检索文档
工具调用
权限结果
业务状态
日志和告警

证据应能够复现完整链路:

攻击入口
→ 输入载体
→ 模型响应
→ 检索或工具调用
→ 权限控制
→ 业务执行
→ 最终结果

例如,不能只写:

模型被越狱,存在高风险。

应写成:

普通客户账号通过上传含恶意文本的图片,诱导客服 Agent 生成客户资料查询请求。工具网关未验证目标客户与当前账号的对象归属,查询接口返回了其他客户的联系方式。模型将返回结果输出给攻击者,构成跨对象数据越权。

这才是能够推动整改的结论。

九、如何给风险定级

风险定级不应只依据“模型是否被绕过”。

建议至少考虑:

  • 攻击门槛;
  • 是否需要登录;
  • 是否需要特定文件或账号;
  • 是否可以稳定复现;
  • 是否影响一个用户还是多个租户;
  • 是否涉及敏感数据;
  • 是否可以调用高风险工具;
  • 是否改变真实业务状态;
  • 是否可以批量利用;
  • 是否容易被发现;
  • 是否存在审计证据;
  • 是否可以撤销和恢复。

可以将结果分为:

内容层风险
数据层风险
权限层风险
工具层风险
业务执行风险
生产环境风险

例如:

  • 输出一句违规内容,可能是内容层风险;
  • 返回其他客户资料,是数据和权限层风险;
  • 诱导退款接口执行,是业务执行风险;
  • 执行生产命令,是生产环境高风险。

十、整改要优先修复哪些控制点

1. 将授权移出模型

模型不应独立判断:

  • 用户身份;
  • 租户归属;
  • 对象权限;
  • 审批状态;
  • 交易确认。

这些应由服务端和确定性业务规则完成。

2. 工具最小权限

不要给 Agent:

execute_any_action()

应拆分为:

query_order_status()
reate_refund_request()
submit_refund_for_review()

3. 高风险操作增加独立确认

退款、付款、删除、发信、生产变更等操作,应具备:

  • 二次确认;
  • 一次性凭证;
  • 审批人;
  • 金额和范围限制;
  • 幂等控制;
  • 完整审计。

4. 建立输入、检索、工具和输出四道控制

输入层:识别不可信内容
检索层:执行权限和来源过滤
工具层:校验能力、参数和身份
输出层:脱敏、阻断和审计

5. 修复后必须回归

回归测试应覆盖:

  • 原始攻击用例;
  • 同义改写;
  • 多语言版本;
  • 多轮对话;
  • 不同用户角色;
  • 不同租户;
  • 不同模型版本;
  • 不同工具组合;
  • 不同缓存和会话状态。

十一、演练后的复盘与持续机制

大模型攻防不是一次性项目。

每次以下变化都应触发重新评估:

  • 更换基础模型;
  • 修改系统提示词;
  • 新增工具;
  • 扩大工具权限;
  • 接入新的知识库;
  • 开启网页抓取;
  • 增加文件和多模态输入;
  • 调整租户或角色;
  • 修改缓存和记忆策略;
  • 接入新的供应商;
  • 将 Agent 推向生产。

演练结果应沉淀为:

  • AI 资产清单;
  • 攻击用例库;
  • 风险登记册;
  • 修复任务;
  • 回归测试集;
  • 监控和告警规则;
  • 事件响应手册;
  • 业务方风险接受记录。

结语

一套真正有效的大模型应用攻防演练,不是让模型回答几句违规内容,也不是收集越狱截图。

它应该完成一条完整验证链:

资产盘点
→ 数据流和信任边界
→ 威胁建模
→ 攻击用例
→ 隔离复现
→ 证据保全
→ 风险定级
→ 工程整改
→ 回归验证
→ 持续监控

最终要回答的不是:

模型会不会被诱导?

而是:

当模型被诱导之后,企业的身份、数据、权限、工具和业务控制,是否仍然能够阻止攻击继续向下游扩散?

只有从资产盘点一直做到风险复现和业务影响验证,AI 红队才真正成为企业安全体系的一部分。

赞(0)
未经允许不得转载:网硕互联帮助中心 » AI安全攻防与治理之十三:如何设计一套大模型应用攻防演练,从资产盘点到风险复现
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!