AI 数据安全测试方法论
攻击面总览
| 阶段 | 攻击类型 | 目标 |
|---|---|---|
| 应用层 | System Prompt 泄露、API 信息泄露、PII 窃取 | 配置/接口/用户数据 |
| 模型层 | 训练数据推导、成员推断、模型反演 | 训练数据/模型参数 |
| 部署层 | RAG 投毒、向量库越权、缓存泄露 | 知识库/基础设施 |
与 prompt-leak 的边界
prompt-leak 专注 System Prompt 泄露的 6 类技巧(直接请求、格式化、间接诱导、反射、侧信道、多轮提取)。本 skill 将 Prompt 泄露作为应用层攻击面之一,重点覆盖训练数据、模型层、RAG 数据链路等更广泛的数据安全问题。需要深入 Prompt 泄露时直接调用 prompt-leak。
Phase 0: 数据资产识别
测试前先摸清 AI 系统的数据资产边界:
- 训练数据 — 预训练语料、微调数据集、RLHF 标注数据
- RAG 知识库 — 文档库、向量数据库、检索索引
- API 端点 — 推理接口、管理接口、内部调试端点
- 缓存与日志 — 对话历史、中间推理结果、审计日志
Phase 1: 应用层数据泄露
- System Prompt 泄露 — 详见
prompt-leakskill,此处不再展开 - API 信息泄露 — 构造 prompt 诱导模型输出 API 端点、模型版本、参数配置;探测
/v1/models、/debug、/health等常见端点暴露内部信息 - 隐私数据窃取 — 利用对话上下文提取 PII(姓名、电话、邮箱);通过假定业务场景让模型复述其他用户的交互内容;关注多租户场景下的上下文隔离缺陷
Phase 2: 模型层数据攻击
- 训练数据推导 — 前缀补全:提供训练数据的可能前缀让模型自动补全("我的社保号是...");Divergence 攻击:要求模型无限重复某个词,当模型偏离正常分布后可能吐出训练样本
- 成员推断攻击 — 训练 Shadow Model 模仿目标模型行为;比较目标模型对"训练集内"与"训练集外"数据的输出概率差异;高置信度输出往往意味着数据曾出现在训练集中
- 模型反演攻击 — 白盒场景下通过梯度优化从模型输出反推输入特征;黑盒场景下通过大量 API 查询重建输入分布(如人脸重建攻击)
Phase 3: 数据投毒与篡改
- RAG 知识库投毒 — 向公开数据源注入恶意文档,等待 RAG 系统索引后影响检索结果;操纵 embedding 使恶意内容在语义上接近高频查询
- 对话语料投毒 — 如系统使用用户反馈进行微调,注入特定对话模式污染训练集
- 级联幻觉攻击 — 诱导模型生成错误信息,当下游系统依赖该输出时触发数据链路级错误
Phase 4: 部署层数据安全
- 向量数据库未授权访问 — 检测 Milvus / Pinecone / Weaviate 等向量库的认证配置、网络暴露面
- 备份/日志/缓存泄露 — 对话历史明文存储、推理日志包含敏感 prompt、模型快照未加密存放
检测清单
- System Prompt 是否可通过任意方法泄露
- API 端点是否暴露模型版本/参数/内部配置
- 模型是否在输出中泄露训练数据片段
- 多租户场景下对话上下文是否隔离
- RAG 数据源是否可被外部投毒
- 向量数据库是否有认证与访问控制
- 日志/缓存是否包含敏感数据且未加密
深入参考
- 各攻击类型的详细技术步骤与 payload → references/data-attack-techniques.md

