WP12 安全、审计与运行证据验证记录
1. 本次工程范围
WP12 在现有凭据、身份、治理和问答记录之上完成安全收口,不新建通用日志平台:
- 管理员专用“审计与运行证据”工作台;
- 登录认证、数据采集、实体合并与回滚、语义与质量发布、质量整改、知识问答六类安全投影;
- 数据源凭据密文状态、采集源明文秘密字段、独立封存密钥、错误边界和安全响应头检查;
- 规范化事件 SHA-256 根摘要、HMAC-SHA256 签名封存与重新计算复核;
- 全局异常响应不回显内部错误,日志使用有界脱敏分类和关联 ID;
app/ 与 deployment/app/ 的 WP12 变更文件保持一致。
离线安装、数据库升级预检、备份、恢复和回滚演练仍属于 WP13。
2. 安全字段边界
审计 API 只返回时间、固定类别、操作代码、状态、操作者身份、对象类型/身份及少量枚举或
计数字段。明确不返回:
- 数据源凭据、加密载荷、Nonce、连接串或源配置;
- 登录 IP、User-Agent 或认证详细错误;
- 实体审核原因、合并/回滚快照;
- 本体图文档、代码审批原因或质量规则正文;
- 质量整改备注、材料、问题消息或证据正文;
- 知识问题原文、回答正文或检索内容。
六类投影查询均使用显式字段白名单;前端表格不提供上述字段列。
3. 封存与复核规则
- 先将安全事件按 UTC 时间和事件身份稳定排序;
- 每条事件使用 canonical JSON 计算 SHA-256;
- 有序事件摘要集合再次计算根摘要;
- 时间窗、类别、事件数、根摘要、密钥版本和封存人使用 HMAC-SHA256 签名;
- 单次最多 50,000 条,超过时失败关闭;
- 复核状态为
intact、tampered 或 invalid_signature;
- 封存结束时间不得晚于服务器当前时间,前端按本地日历并将当天窗口收敛到当前时刻;
- 封存表只有新增和读取接口,不提供更新或删除接口。
- 迁移降级不会静默保留表后回写旧版本号,而是失败关闭;如需降级,必须先走批准的归档迁移。
签名封存用于检测篡改,不等于阻止数据库管理员修改。企业正式启用前必须配置独立
AUDIT_EVIDENCE_SECRET(至少 32 字节)和 AUDIT_EVIDENCE_KEY_VERSION。本地回退密钥
只用于工程验证,安全检查会显示警告;生产环境缺少独立密钥时封存与复核接口失败关闭。
采集源明文秘密字段检查递归扫描嵌套 JSON 配置键。
4. 定向验证
本工作包只执行 WP12 及直接受影响范围的测试,不做全量回测。验证至少覆盖:
- 规范化、分页、过滤、秘密字段递归脱敏和 50,000 条上限;
- 根摘要稳定性、签名元数据被修改、事件变更/缺失检测;
- 六类权威表安全查询和追加式封存表;
- 管理员读取/封存权限,viewer/editor 拒绝;
- ISO 时间窗、服务端封存人、安全 400/404/503;
- 异常中数据库 URL、密码、API Key、Authorization/Bearer 不进入响应或日志;
- 前端六类标签、“暂无记录”和三种复核状态;
- 真实 PostgreSQL 六类事件、封存完整、事务内篡改失败、回滚后恢复完整;
- OpenAPI、数据模型、台账、迁移和发布副本一致性;
- 管理页实际请求、封存、复核和浏览器控制台。
5. 企业验收门禁
工程验证通过不能替代企业安全验收。WP12 只有在以下条件满足后才能标记企业验收:
- 企业安全负责人确认六类审计字段、抽样记录和访问人员;
- 生产环境配置独立封存密钥,明确密钥保管、轮换、遗失和旧版本复核流程;
- 明确五年保留目标、归档位置、清理审批和合规例外;
- 使用真实登录、采集、合并/回滚、发布、整改和问答各抽样至少一条;
- WP13 完成备份、恢复和升级回滚演练后,证明封存记录可随系统恢复;
- 如需要监管级证明,另行建设外部可信时间戳、WORM/对象锁、SIEM 和法务保全。
6. 本地工程验证结果(2026-07-30)
本轮按 WP12 变更范围完成定向验证,没有执行全量回归:
- WP12 后端、权限、迁移、架构、凭据、脱敏、认证和前端契约受影响测试共 52 项通过;
- 前端模型测试 5 项通过;
- WP12 新增 Python 文件及本次触达运行代码 Ruff 检查通过;迁移测试文件中一处未改动的
既有
B905 告警仍保留;新增前端文件 ESLint 检查通过;
- 前端生产构建成功;构建仍报告项目既有的 Browserslist 数据过期、旧页面
console、样式顺序和包体积告警,本次新增页面没有检查错误;
- Docker Compose 配置校验通过,本地 backend/frontend 重建后均为 healthy;
- Alembic 已在本地测试库升级到
360,真实 PostgreSQL 集成测试验证六类事件、
封存完整、事务内修改可检测、回滚后恢复完整;
- OpenAPI 已重新生成,共 219 个操作,并包含 WP12 六个接口;
app/ 与 deployment/app/ 的 WP12 后端文件及迁移文件逐字节一致。
浏览器以管理员身份访问本地“审计与运行证据”页面,确认:
- 六类覆盖卡片均可见;当前 30 日窗口内登录认证 34 条、数据采集 1 条、
实体合并与回滚 2 条、语义与质量发布 2 条、质量整改 5 条、知识问答 0 条;
- 0 条类别明确显示“暂无记录”,没有误报为能力缺失;
- 安全检查显示 1 个数据源凭据已密文保存、0 个采集源明文秘密字段;
- 修正本地日期与未来时间窗边界后,创建了包含 44 条规范化事件的闭合时间窗本地封存,
密钥版本为
local-v1;
- 点击“重新校验”后返回“校验完整”;
- 页面只显示安全白名单字段,浏览器控制台没有错误。
上述封存使用本地工程密钥,不代表生产密钥已交付。企业验收仍以第 5 节门禁为准。