生成式 AI 事故证据保全:可复现快照、保管链与最小暴露
仪表盘截图和事后重跑无法证明事故当时发生了什么。本文冻结模型、Prompt、检索与工具证据,定义追加式封存和转交链,并在保护敏感原文的前提下支持复核。
本文要点
- 主题聚焦:AI、大模型、DevOps
- 适合人群:独立开发者、全栈工程师、AI 应用开发者
- 核心价值:快速理解背景、实践路径、常见误区和工程建议
生成式 AI 事故常在数分钟内失去现场:会话缓存过期、供应商滚动更新模型、检索索引继续变化,值班人员为了复现又覆盖了原 Prompt。监控截图只能说明聚合曲线,不足以回答“哪个输入经哪版策略变成了这次输出”。模型供应商退化事故处置负责定位和降级,AI 云控制面审计完整性保护平台变更日志;本文只处理事故材料从采集到封存、转交和销毁的证据保管链。
先冻结采集范围,再复制现场
依据 NIST SP 800-86 的取证准备思想,团队应预先发布 aiIncidentAcquisitionProfile.v1,按事故类型列出必需、条件性和禁止采集项。一次 case 至少绑定租户、时间边界、触发事件、批准范围、采集 profile、数据分类、保留依据、负责人和可信时钟。不能因“以后也许有用”抓取相邻租户、整库向量或全部员工对话。
对有害回答,最小复现胶囊通常包括:规范化消息序列及顺序、系统 Prompt/bundle 摘要、模型或 provider handle、采样参数、工具 schema 与真实响应、检索 chunk ID/版本/授权快照、安全分类器与阈值 release、运行时判定回执、Feature Flag、请求与响应时间。原始敏感 payload 放在隔离证据库;普通调查视图只拿脱敏工作副本和受控引用。Prompt 与 Trace 遥测治理定义日常采集边界,事故 profile 不能借紧急状态永久扩大默认遥测。
schema: aiIncidentEvidenceCase.v1
caseId: aicase-2026-0719-0042
scope: { tenant: tenant-7, from: 2026-07-19T09:41:00Z, to: 2026-07-19T09:44:00Z }
acquisitionProfile: harmful-output@4
evidenceGeneration: 1
items:
- id: conversation-sequence
source: inference-gateway
contentDigest: hmac-sha256:3e1...
cipherDigest: sha256:82d...
acquiredAt: 2026-07-19T09:47:12Z
redactionProfile: analyst-view@3
retentionClass: safety-investigation-90d
采集器在受信边界内对原始字节计算带 case 密钥的 HMAC,再加密并记录密文摘要;供比较的规范化副本另记 normalizedDigest,不能替代原件摘要。这样既能发现原始字节变化,也避免公开低熵 Prompt 的裸 hash 被字典枚举。密钥由 case 角色隔离,证据对象启用版本与不可变保留。云供应商无法导出当时模型权重时,保存其不可变 request ID、返回的模型标识、响应字节和获取状态,并将可复现性标成 PARTIAL,不能用后来一次近似重跑补成 COMPLETE。
封存是明确的接受点
case 内容状态为 OPEN -> SEALING -> SEALED -> DESTRUCTION_APPROVED -> DESTROYED。转交是可重复的 custody event,legal hold 是带代际的正交保留状态,二者不能塞进单向内容状态机。OPEN 可追加采集;进入 SEALING 后,系统确认每个必需对象已在两个故障域持久化、摘要可重算、解密密钥可恢复、来源和可信时间齐全,再生成排序确定的 manifest root。SEALED 是调查可引用的接受点。迟到材料创建 evidenceGeneration + 1 并引用前一 root,不修改旧 manifest。
RFC 3161 时间戳 token 可证明某份摘要不晚于可信时间存在,但不证明内容真实或采集范围完整;它必须与来源身份、采集动作和 custody event 一起解释。W3C PROV 的 entity/activity/agent 关系可表达“谁从哪个系统取得何物、由哪个脱敏转换生成工作副本”。每次导出、转交、解密、复封和销毁都追加 custody event,记录操作者、角色、目的、前后摘要、时间和接收确认。调查笔记不得回写原件。
legal hold 或监管保留由获授权角色签发,并覆盖自动删除;解除同样需要显式决定。销毁接受点必须原子复验最新 hold generation,不能让并发到达的 hold 被旧删除任务越过。这里的技术状态不替代组织的法律判断。到期销毁要覆盖对象、副本、缓存和 case key,生成可核验 tombstone;统计报表只保留不再能关联个人的最小聚合。AI 应用数据隐私与合规负责合法性和用户权利,保全系统负责忠实执行已批准范围。
用证据缺口演练验收
故障注入包括 trace 被采样丢弃、工具响应已覆盖、provider request 查不到、worker 上传对象后未提交 manifest、客户端时钟快十分钟、重复重试混入另一输出、对象被替换、case key 暂不可用、脱敏器改变语义、跨租户 ID 注入,以及删除任务与 hold 同时到达。系统必须输出 COMPLETE、PARTIAL、SCOPE_VIOLATION 或 UNVERIFIABLE,绝不能拿“文件数正确”冒充完整。
一组上线门可要求:定义为关键的工件在合成事故中十分钟内封存率 100%;manifest、对象摘要和时间戳恢复验证率 100%;未声明证据缺口为 0;跨租户或 profile 禁止字段进入 case 为 0;每季度从冷存储恢复 30 个样本全部可解密且关系图可重建;所有 analyst export 都通过脱敏与授权探针。单纯提高采集量不计为改善。Agent 回放评测可把已批准事故样本转成回归任务,但必须从脱敏派生副本创建,不能直接消费封存原件。
上线先对人工构造的有害输出、检索越权和工具误调用只生成临时 case,验证销毁与恢复;再给 5% 事故告警启用真实封存,并按事故类型扩大。若采集器泄露或延迟过高,alias 回到上一版 profile,紧急关闭敏感原文采集并保留最小 request ID 与摘要;已封存 case 继续按原合同读取,不能因软件回滚而重写。修复后新增 generation 说明缺口,历史证据等级保持不变。
延伸阅读
Related