跳到内容

13.4 红队、验证与事件响应:把发现变成持续控制

预言厅的红队用一句间接提示让模型尝试外发内部摘要。修掉这条 prompt 后,另一名测试者把同样指令藏进图片 OCR,又触发了相似路径。团队终于意识到:红队不是收集“神奇越狱词”,而是验证攻击路径、控制边界和恢复能力。

红队测试主动模拟对手;TEVV(Testing, Evaluation, Verification and Validation)覆盖更广的质量与风险证据;事件响应处理已经发生或正在发生的损害。三者共享资产、taxonomy 和回归集,但职责不同。

本课目标

  • 从 threat model 导出可复现的红队测试计划;
  • 区分自动扫描、专家测试、领域评审和独立验证;
  • 安全地记录、分级、修复与复测发现;
  • 建立 AI-specific detection 和 incident playbook;
  • 把生产事故沉淀为版本化回归测试。

1. 先写 Rules of Engagement

红队开始前明确:

  • 目标系统、版本、环境和允许时间;
  • 测试账户、tenant、数据和工具范围;
  • 禁止接触的真实个人、生产副作用和外部系统;
  • query/cost/rate budget;
  • 是否允许自动化、社会工程、供应链或物理测试;
  • 证据存储、敏感输出处理与保留期限;
  • stop conditions、紧急联系人和责任豁免;
  • 发现如何分级、通知和修复。

对高风险工具使用 sandbox、fake recipients、测试支付账户和可恢复环境。不要为了证明漏洞而伤害真实用户或传播危险内容。

2. 从攻击路径生成测试矩阵

每个 case 记录:

text
asset / security property
attacker role and capability
entry point and preconditions
attack steps and variants
expected control
success / partial success criteria
evidence to capture
cleanup and recovery

测试维度可包括:

  • 直接/间接 prompt injection、多轮和编码变体;
  • unauthorized retrieval、cross-tenant data 与 citation leak;
  • tool name/argument manipulation、审批绕过和重复副作用;
  • poisoned document、feedback、adapter 或 model artifact;
  • extraction、membership/memorization 和 rate abuse;
  • long context、语言、模态、角色和环境切换;
  • guard unavailable、timeout、partial failure 与日志缺失。

随机 prompt 列表只能发现表面问题。真正测试要对应明确资产和 control。

3. 自动化与人工各自覆盖什么

自动化适合大规模变体、已知回归、schema、policy classifiers、load/cost 和确定性 side effects。专家红队擅长组合漏洞、业务逻辑、适应性攻击和新策略。领域人员能识别医学、法律、招聘等专业伤害;受影响者能发现团队没定义的问题。

独立评估减少开发团队只验证自己假设的风险,但 independence 不是口号:说明资金、权限、样本选择、是否看过内部防线以及谁拥有发布否决权。

LLM 可辅助生成测试或初筛输出,但不能同时充当唯一攻击者和唯一裁判。它可能共享被测模型的盲点。

4. 结果必须可复现

每个发现保存:

  • model/prompt/retriever/index/tool/policy versions;
  • 完整输入序列、外部文档和工具响应;
  • sampling parameters、seed(若适用)和尝试次数;
  • principal、权限和 environment;
  • actual side effects 与被阻止动作;
  • judge/verifier 版本及人工理由;
  • 最小复现、成功率和相邻变体;
  • 敏感证据的位置与访问范围。

只保存“某 prompt 成功越狱”无法判断是稳定漏洞、随机采样还是环境配置错误。生成系统具有随机性,应报告 attempts/successes,而不是挑一个最坏截图代表总体发生率;高严重性单次成功仍需优先处理。

5. Severity 看现实后果和可达性

分级至少考虑:

  • confidentiality、integrity、availability、安全或权利影响;
  • 影响人群和数据敏感度;
  • 是否产生现实 side effect;
  • 攻击前置权限、复杂度、成本和可扩展性;
  • 可检测性、可逆性和持续时间;
  • 是否存在 active exploitation;
  • 法律、合同与通知义务。

一个粗鲁回答和一次跨租户数据泄露不能因为都叫“jailbreak”而同级。Severity rubric 要提前定义,并允许安全、隐私、法务和领域 owner 调整。

6. 修复根因,不追着 Prompt 打补丁

针对间接注入外传数据,可选修复层级:

  1. 取消模型不必要的外发工具;
  2. 对 destination 与数据分类做确定性政策检查;
  3. 使用最小权限 credential 和 tenant-bound access;
  4. 高风险动作增加结构化审批;
  5. 隔离不可信内容和 tool execution;
  6. 增加 detector/guard 作为补充;
  7. 添加攻击变体和 control-failure 回归。

仅把原 prompt 加入 blocklist,容易被改写、翻译或换载体绕过。修复后既测原案例,也测同一攻击目标的邻近路径,并检查正常任务是否被过度阻断。

7. 建立发布门禁

Release report 包括:

  • 测试范围和未覆盖范围;
  • 按 severity/status 的 findings;
  • open critical/high、accepted residual risk 与批准人;
  • safety/security/fairness/privacy/quality guardrails;
  • 与上一版本的 paired regression;
  • 性能、成本和 false refusal trade-off;
  • rollback、feature flag 和 kill switch 已演练;
  • 监控、值班和事件 runbook 已就绪。

“没有发现漏洞”只表示在给定范围、能力和时间内没有发现。报告必须保留这个边界。

8. AI 事件的检测信号

除传统 auth、network、host、application telemetry,还看:

  • prompt injection/unsafe action attempts;
  • unusual retrieval volume、cross-tenant filter denials;
  • tool call sequence、destination 和 duplicate side effects;
  • token/cost spikes、long-context abuse;
  • sensitive-output detector hits;
  • sudden refusal/quality/fairness slice drift;
  • model/prompt/index/policy 未授权变更;
  • 用户投诉、申诉和外部研究者报告;
  • training/feedback pipeline 异常来源。

Detector 会有 false positive,也会被规避。高风险路径应有确定性 preventive control,不能只依赖事后告警。

9. 事件响应要能隔离模型依赖

一个通用流程:

  1. Triage:确认范围、版本、租户、数据和 side effects;
  2. Contain:禁用工具/功能、撤销 credential、隔离 index/model、限流;
  3. Preserve evidence:保护 logs、artifacts、prompts、policy 和供应商通知;
  4. Eradicate/remediate:修复授权、数据、模型、prompt 或供应链根因;
  5. Recover:从已知良好版本恢复,canary 并加强监控;
  6. Notify/coordinate:按法律、合同和内部流程通知相关方;
  7. Learn:复盘伤害路径、控制失效和组织决策,加入回归。

Containment 方案应预先演练。如果产品无法在不关闭整个业务的情况下禁用高风险工具,说明架构缺少隔离边界。

10. Vulnerability Disclosure 与供应商协作

提供安全报告渠道、接收确认、scope、safe-harbor policy 和响应时限。报告可能包含攻击 prompt、个人数据或危险模型输出,要限制传播。

若漏洞位于第三方 model/API,记录供应商 case、临时缓解、受影响版本和对方修复验证。不能等供应商修复后才考虑本地最小权限和监控;系统 owner 对自身部署后果仍负责。

11. 从事件构建活的回归集

对每个已修事件提取去敏最小案例和变体,绑定:

  • failure taxonomy;
  • 应该阻止它的 control;
  • deterministic/behavioral expected result;
  • affected versions 和 fixed version;
  • severity 与 release-blocking status;
  • 定期重放频率。

回归集也会过时:工具 schema、政策、法律和攻击者策略变化后需重标。保留 retired reason,避免旧测试静默消失。

常见误区

  • 红队等于找越狱 prompt:还要测数据、权限、工具、供应链和恢复。
  • 一次成功说明系统总会失败:要报告稳定性;但高严重性单次成功仍需处理。
  • 模型拒答率越高越安全:过度拒答会伤害正常用户,也可能不阻止工具越权。
  • 上线前红队一次即可:依赖、流量和攻击都会变化。
  • 修掉复现 prompt 就关闭发现:需要验证根因控制和邻近变体。

练习

  1. 为间接 prompt injection 写完整 Rules of Engagement。
  2. 设计一个含 partial success 的工具越权判定标准。
  3. 比较自动扫描、专家红队、领域评审的覆盖边界。
  4. 为跨租户检索事件写 containment 与恢复步骤。
  5. 把一个事故转成可版本化的发布阻断回归测试。

小结

红队把 threat model 变成攻击实验,TEVV 把质量与风险结论变成发布证据,事件响应处理已发生的损害。有效流程关注资产、攻击路径、控制和恢复,而不是收集戏剧化 prompt;每项发现都要继续经过修复、复测、监控和回归检查。

下一章回到系统架构。缓存、路由、多模型和多 Agent 只有在这些治理、授权和验证边界内才有意义。

参考资料

Built with VitePress | Software Systems Atlas