reverse-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# AI 攻击决策树与证据分级
|
||||
|
||||
攻击面由「目标形态 × 接口能力」决定,先侦察再动手。本文档与 SKILL.md 步骤 1-4 配套使用。
|
||||
|
||||
## 目标形态决策树
|
||||
|
||||
```
|
||||
评估目标
|
||||
├─ 黑盒 API(只能查询)→ 提取攻击 / 黑盒对抗样本 / 行为指纹
|
||||
├─ 模型文件(拿到权重)→ 白盒分析:权重指纹、成员推断(白盒)、FGSM/PGD
|
||||
│ (文件解析与格式还原走 [[re-ai-model]])
|
||||
└─ 嵌入/微调产物(LoRA/适配器)→ 与基础模型比对差异(指纹来源分析)
|
||||
```
|
||||
|
||||
## 接口能力分支
|
||||
|
||||
```
|
||||
API 查询
|
||||
├─ 返回完整 logits/softmax 概率 → 蒸馏优先(soft label 训练)
|
||||
├─ 返回 top-k 概率 → 蒸馏降级(截断概率,标注信息损失)
|
||||
├─ 仅返回标签 → 决策边界采样(边界 + 对抗扰动查询),不做概率重建
|
||||
└─ 带温度/归一化扰动 → 先校准再蒸馏(softmax 温度影响教师信号)
|
||||
```
|
||||
|
||||
## 取证目的分支
|
||||
|
||||
```
|
||||
取证请求
|
||||
├─ 「是不是复制品」→ 行为指纹提取 + 距离阈值判定
|
||||
│ ├─ 距离 < 阈值且多输入集稳定 → 强相似(高置信)
|
||||
│ ├─ 距离 < 阈值但单输入集 → 弱相似(标注输入集局限)
|
||||
│ └─ 距离 > 阈值 → 不相似;但先排除「指纹被抹除」(见 [[gotchas]])
|
||||
├─ 「某样本是否在训练集」→ 成员推断(影子模型/损失分布)
|
||||
│ ├─ 分布显著分离 + 校准 → 统计判定(带置信区间)
|
||||
│ └─ 分布重叠 → 无法判定(输出区间而非断言)
|
||||
└─ 「有没有被加水印」→ 触发器检测(已知/未知触发器枚举)
|
||||
```
|
||||
|
||||
## 证据分级表
|
||||
|
||||
| 证据 | 弱 | 中 | 强 |
|
||||
|---|---|---|---|
|
||||
| 指纹距离 | 单输入集接近 | 多输入集稳定接近 | 多输入集 + 独有行为特征一致 |
|
||||
| 成员推断 | 损失高于基线 | 分布分离 + 校准 | 多攻击面一致(白盒+黑盒) |
|
||||
| 水印触发 | 单触发器响应 | 多触发器响应 | 触发器 + 输出结构特征吻合 |
|
||||
| 对抗鲁棒性 | 单样本扰动有效 | 多样本/多方法一致 | 迁移到替代模型仍有效 |
|
||||
|
||||
任何「强」证据都要排除替代解释(同源训练/公开基础模型微调——基础模型相同会天然产生指纹接近,见 [[gotchas]])。
|
||||
|
||||
## 组合套路(提取评估流程)
|
||||
|
||||
1. 接口能力侦察(预算内小批)
|
||||
2. 采样集设计(代表 + 边界 + 标签均衡)
|
||||
3. 蒸馏训练 → 评估(一致率/分布/校准)
|
||||
4. 指纹提取(多输入集)→ 距离报告
|
||||
5. 结论按证据分级表定级 + 标注局限(授权、预算、数据分布假设)
|
||||
|
||||
## 实现教训(内化)
|
||||
|
||||
- 先问「接口给什么」,再选攻击面——logits 可得性是策略分水岭
|
||||
- 多指标评估:精度高 ≠ 提取成功,一致率 + 标签分布联合看
|
||||
- 指纹判定要排除「同源基础模型」假说(微调自同一公开模型会天然相似)
|
||||
- 报告永远是统计性/概率化陈述,成员推断与指纹判定都带置信度
|
||||
|
||||
## 使用注意
|
||||
|
||||
- 仅授权评估场景(授权边界见 SKILL.md 红线与 [[gotchas]])
|
||||
- 结论按 [[re-analyze/analysis-contract]] 交付;攻击代码不部署到生产环境
|
||||
- 防御侧参考(对抗训练/输出裁剪)只作评估结论的旁注,不展开
|
||||
@@ -0,0 +1,36 @@
|
||||
# AI 攻击方法论坑与边界
|
||||
|
||||
## 提取攻击坑
|
||||
|
||||
- **接口裁剪**:服务端裁剪输出(温度缩放/截断 logits/量化)会削弱教师信号——先探测输出分布(相同输入多次查询看方差),再决定蒸馏策略
|
||||
- **查询限额**:限流/计费/风控会中断长查询任务——预算内设计采样(先小批估计分布,再决定规模);被风控时换查询节奏并记录
|
||||
- **数据分布不匹配**:查询分布与目标域分布不符时蒸馏模型「学会了查询集」而非「目标模型」——采样覆盖目标域,标注分布假设
|
||||
- **缓存与批处理**:API 前有缓存/批处理层时相同输入返回相同输出(正常),但去重/缓存会让查询统计失真——评估有效性时用随机扰动输入
|
||||
- **防提取对策**:水印(后门触发)、输出扰动、查询风控都可能存在——提取结果不可用时标注「存在防提取机制」,别当失败
|
||||
|
||||
## 指纹/水印坑
|
||||
|
||||
- **同源基础模型假说**:嫌疑模型与受害者模型都微调自同一公开基础模型时,行为指纹天然接近——判定前先比对「独有特征」(训练数据/任务特有的行为),排除同源解释
|
||||
- **指纹被抹除**:剪枝/量化/微调/蒸馏都会削弱指纹——用鲁棒指纹(多触发器/行为签名);距离「接近但未达阈值」输出「弱相似」而非「无关」
|
||||
- **触发器过拟合**:单触发器验证可能只是「该输入的特殊性」而非水印——多触发器 + 触发器族(结构/噪声/语义类)交叉验证
|
||||
- **阈值无普适值**:指纹距离阈值依赖模型家族与输入集——阈值按同族对照模型校准(训练 1-2 个对照模型量距离分布),不套用他人阈值
|
||||
|
||||
## 成员推断坑
|
||||
|
||||
- **过拟合 ≠ 成员**:高置信度输出可能只是模型对特定输入过拟合,不是「在训练集中」——用影子模型(同分布代理)校准分布,再判定
|
||||
- **影子模型同分布假设**:影子模型与目标训练分布不一致时校准失效——影子训练数据尽量贴近目标域(公开同域数据),标注假设
|
||||
- **隐私保护训练对抗**:DP-SGD/差分隐私训练的模型成员推断信号弱——分布不分离时输出「无法判定」,别硬给结论
|
||||
- **统计性质误读**:成员推断是统计判定(带 TPR/FPR),单样本断言「肯定在训练集」不成立——报告带置信区间
|
||||
|
||||
## 评估边界与反例
|
||||
|
||||
- **对抗样本迁移性**:白盒扰动迁移到黑盒目标不保证有效——迁移成功率是评估指标,不是攻击保证
|
||||
- **反例:误用「精度」**:提取模型在测试集精度接近目标 ≠ 功能等价(输出分布可能完全不同)——功能等价要看一致率与分布
|
||||
- **反例:模型版本差异**:同一模型的不同部署版本(量化/蒸馏部署版)指纹与训练版不同——比对前确认版本口径
|
||||
- **范围外**:提示注入/提示泄露(LLM 侧)不在本技能(面向分类/生成模型的提取、指纹、成员推断与对抗评估);训练数据版权判定是法律问题,本技能只出统计证据
|
||||
|
||||
## 使用注意
|
||||
|
||||
- 仅授权评估场景(范围/目标/数据确认先行);不绕过付费/访问控制边界
|
||||
- 结论按 [[re-analyze/analysis-contract]] 交付,统计性陈述 + 置信度 + 局限
|
||||
- 相关文件分析衔接 [[re-ai-model]];经验沉淀转 [[re-feedback]](脱敏)
|
||||
@@ -0,0 +1,39 @@
|
||||
# AI 攻击实现笔记(Implementation Notes)
|
||||
|
||||
SKILL.md 操作步骤的流程(Overview + Checklist)之外的实现经验——按步骤分组,命中对应步骤时参考。
|
||||
|
||||
## 步骤 1:模型提取
|
||||
|
||||
- **soft label 优于 hard label**:API 输出带 logits/概率时蒸馏质量显著高于仅标签(决策边界信息更丰富);仅有标签时降级为决策边界采样,输出分布重建受限(标注局限)
|
||||
- **边界扰动**:输入空间小幅扰动(噪声/旋转/亮度)覆盖决策边界附近区域,提升蒸馏对边界形状的拟合
|
||||
- **评估一致性**:同一输入多次查询看 logits 方差——方差大说明输出随机化/防提取机制
|
||||
- **蒸馏训练要点**:学生模型容量与教师相近(过小欠拟合边界、过大过拟合采样噪声);训练轮次/学习率按小验证集调
|
||||
- **蒸馏评估基线**:随机初始化学生模型与目标模型同分布对比——排除「模型本身输出相似」的假象
|
||||
- **查询日志**:每次查询记录(输入指纹/输出/时间/配额消耗),供审计与复现
|
||||
- **查询预算**:预算内先小批估计(限流/计费中断处理见 SKILL.md 坑 1)
|
||||
|
||||
## 步骤 2:模型指纹/水印检测
|
||||
|
||||
- **指纹输入集设计**:覆盖类别/难度分层(简单+难例)——难例区分度更高
|
||||
- **比对前归一化**:输出向量先归一(softmax 温度/缩放差异)再算距离(L2/余弦)
|
||||
- **反例对照组**:触发器响应可能来自模型训练偏差而非水印——先测无触发器输入的基线响应
|
||||
- **抹除对抗**:剪枝/微调/蒸馏会削弱指纹——用鲁棒指纹(多触发器)并标注「可能被抹除」
|
||||
- **指纹时效**:模型热更新后指纹漂移——比对前确认版本/时间窗
|
||||
- **未知水印枚举**:触发器候选(特定输入模式/语义后门)逐个测,先小批探测再扩大
|
||||
|
||||
## 步骤 3:成员推断
|
||||
|
||||
- **对照基线**:同分布随机样本(非训练样本)的损失分布作基准线,再对比目标样本位置
|
||||
- **隐私敏感性**:成员推断涉及个人数据判定——结论脱敏,不公开样本身份
|
||||
- **统计口径**:输出 ROC/阈值曲线(给定 FPR 下的 TPR、置信区间),不是确定性结论;隐私保护训练目标可对抗(误报控制:阈值校准)
|
||||
|
||||
## 步骤 4:对抗样本
|
||||
|
||||
- **扰动预算(epsilon)**:FGSM/PGD 都设扰动上限——评估口径可比
|
||||
- **评估对照**:先测干净样本基线(扰动前准确率),报告扰动前后对比
|
||||
- **预算梯度**:epsilon 从 0 起递增,报告不同预算下的准确率曲线
|
||||
- **迁移性边界**:对抗样本迁移性差——白盒扰动对黑盒目标不保证有效
|
||||
|
||||
## 使用注意
|
||||
|
||||
- 本文件是经验参考,不替代 SKILL.md 的步骤流程;实现细节与目标模型域冲突时以目标域为准(见 [[decision-tree]] 分支)
|
||||
Reference in New Issue
Block a user