AI 云控制面审计完整性:独立汇聚、摘要验证与保留锁
记录模型部署和 IAM 变更还不够,攻击者可能停掉日志、篡改对象或缩短保留期。本文建立独立安全域、摘要链和缺口检测。
本文要点
- 主题聚焦:AI、大模型、DevOps
- 适合人群:独立开发者、全栈工程师、AI 应用开发者
- 核心价值:快速理解背景、实践路径、常见误区和工程建议
推理端点被换到未批准模型、KMS grant 被扩大、数据集挂载到错误租户时,普通应用 Trace 未必出现异常。更糟的是,拥有云控制面权限的攻击者可能先停掉审计 sink,再执行变更。NIST SP 800-92 把日志管理视为采集、传输、存储、分析和处置的完整过程;AI 平台要把高价值变更送到业务管理员无法删除的证据域。MCP 审计日志设计 聚焦工具调用,本篇聚焦云控制面的日志自身是否完整。
建立 AI 控制面事件目录
冻结 ai.cloud.audit.v1,纳入模型或 adapter 注册与别名切换、推理端点创建更新、系统 Prompt 和安全策略发布、训练或评测数据挂载、IAM role 与 federation policy、KMS key/grant、私有端点与 DNS、日志 sink、保留锁和 break-glass 使用。每类事件记录云原生 event ID、发生与接收时间、主体、源身份、账户/项目、资源、操作、前后摘要、结果和 correlation ID。
前后摘要必须来自控制面返回的规范化配置,而不是把整份敏感策略塞进日志。Prompt、数据样本、token 和密钥材料不进入安全日志;必要时保存不可逆内容摘要与受控证据引用。Prompt 与 Trace 遥测治理 的脱敏和留存边界同样适用,但审计保留期可因合规要求独立设置。
事件生产者、路由器和归档桶使用不同身份。源账户只能追加或投递,安全账户的读取、保留与删除需要独立角色和双人审批;业务平台管理员不得修改保留锁。跨账户 sink 失败不能只在源账户告警,因为攻击者可能同时关闭告警,安全域还应按预期序列主动检测缺口。
完整性不只是一条对象锁
对象版本控制和 WORM/immutable retention 防止覆盖与提前删除,但仍需证明收到的文件未被替换。AWS CloudTrail log file validation 使用 provider 签名的 digest 文件和前序 digest 关联来检测已交付文件的修改、删除或插入。其他云可由受控接收器对 canonical batch 做摘要链,但自签链只证明“接收之后未被修改”,无法证明源端没有漏发、被停用或在到达前被过滤。
验证器运行在独立安全域,固定签名身份与算法,拒绝 manifest 提供任意公钥。窗口只有在 provider-signed watermark、可连续验证的 cursor,或独立组织级事件源证明已覆盖截止点时才可标 COMPLETE。没有这类上游完整性信号时,即使接收器签了空批次也只能标 UNKNOWN;cursor 断裂为 GAP,摘要错误为 INVALID,迟到为 LATE。空批次只说明接收器没收到事件,不能证明源端确实无事件。
安全域还要用独立 heartbeat 周期读取 trail/sink 启用状态、事件类别、组织覆盖范围、目的地和最近交付 cursor,并与组织级管理事件源或第二条只读审计路径核对。该监控身份与被审计 workload 管理员分离;若云平台没有连续 cursor,就保留 UNKNOWN 证据等级,不能用计数相等升级为完整。迟到窗口版本化,补录保留原缺口,不能改写历史状态。
时钟同时记录 provider event time、接收 time 和归档 time;分析以接收序列与原生 event ID 去重,不能只按客户端时间排序。保留锁启用前先在测试桶验证期限和法律冻结,因为部分平台锁定后不可缩短或移除,这不是适合临场试错的开关。
用攻击路径验证证据链
故障注入包括:暂停 sink、源端过滤一个事件类别、伪造空批次、断开 cursor、复制 event ID、乱序到达、篡改对象、删除 digest、替换证书、缩短源保留期、让安全域限流,以及用 break-glass 修改 endpoint。期望是窗口变为 UNKNOWN/GAP/INVALID 并在 SLO 内告警,且 break-glass 从独立组织级路径到达。
每天从归档抽窗重算摘要链、provider watermark/cursor 和对象锁期限。发布门禁要求窗口为可证明的 COMPLETE,且模型别名、KMS grant 和私网策略变更在最大延迟内找到唯一事件;无法证明完整时冻结高风险变更。模型服务金丝雀发布 的 release ID 应关联控制面事件和评测证据。
关键指标包括源到归档延迟分位数、窗口缺口、无效签名、重复 event ID、未知主体、日志配置漂移、保留锁剩余期和验证器最后成功时间。告警接收方与日志平台分离,日志平台自身不可用时仍能通过独立通道通知。AI Agent 可观测性 负责运行行为,二者用 correlation ID 关联而不混成一个可被同时删除的存储域。
迁移和回滚都不能制造盲区
更换 sink 或安全存储时先双写旧、新目的地,对相同窗口比较 event ID 集合、规范化摘要、迟到率和签名状态。连续覆盖业务高峰与低峰后,先把新路径设为权威,旧路径保持只读到审计窗口结束。若新路径丢事件,回滚权威读取到旧路径,但继续保留新路径原始对象用于调查,不把两个集合简单去重后声称完整。
旧路径若已被攻破则不可回滚。此时冻结高风险云变更,只允许经过双人审批的最小恢复动作,并从云提供商原生历史、IaC 状态和资源快照重建缺口,明确标注证据等级。合成 AI 质量探针 可确认数据面服务仍可用,却不能替代控制面取证。
一套审计控制只有在“应记录什么、谁不能删除、怎样发现少了一段、如何验证未被改过”都能重复证明时,才足以支撑 AI 云平台的事故调查和发布问责。
延伸阅读
Related