Logo

安全与隐私白皮书(总览)第 10 章

第 10 章 日志、监控与事件响应

FileBolt 的可观测性(observability)必须与零知识边界一致:系统需要能够定位故障、发现攻击、量化性能, 同时不引入新的敏感数据泄露面。本章定义记录哪些事件、明确不记录哪些信息、告警与异常检测方法, 以及安全事件响应(IR)流程与对外沟通原则。

10.0 本章摘要

  • SHOULD:日志与监控覆盖运行与安全所需事件,并尽量采用聚合与采样,减少原始明细留存。
  • MUST NOT:任何日志、APM、错误上报不得包含 CEK、URL fragment(location.hash)或包含 fragment 的完整 URL。
  • MUST NOT:不得记录明文内容、解密后的片段、或可推导密钥材料。
  • MUST:对枚举、爆破、刷量与异常请求模式建立检测与告警,并具备遏制措施。
  • MUST:建立事件响应流程(分级、遏制、取证、修复、复盘与对外沟通)。

10.1 记录哪些事件(最小化)

系统日志与监控 SHOULD 仅覆盖“运行与安全所必需”的事件集合,避免把用户内容或敏感凭证带入可观测系统。 推荐将事件分为生命周期、鉴权、存储/网络与安全防护四类,并尽可能聚合。

10.1.1 传输生命周期事件

  • 创建 transfer(生成 transferId)
  • 上传分片完成(以密文层面记录,不记录明文)
  • manifest 写入/更新
  • 到期清理、用户删除/撤销(含清理任务触发与完成)
  • 下载开始/完成(以密文下载层面度量)

10.1.2 认证与授权事件

  • 短期访问 token 签发、校验失败(作用域不匹配、过期、撤销后拒绝等)
  • 长期登录 token 校验失败(管理操作拒绝)
  • 可疑访问模式:异常高频的 401/403/404

注:记录“结果与原因码”即可,MUST NOT 记录 token 原文、Authorization header 原文或签名参数原文。

10.1.3 系统健康与性能指标

  • 请求延迟(p50/p95/p99)、错误率、吞吐
  • 对象存储读写失败率、回源失败率、重试次数
  • 边缘节点异常、队列积压、后台清理任务成功率
  • 带宽与流量趋势(按聚合维度)

10.1.4 安全防护事件

  • 速率限制触发、WAF/防火墙规则命中
  • 疑似枚举/爆破行为的阈值触发
  • 异常并发与刷量模式(同来源大量并发、同资源异常热度)

10.1.5 聚合与采样

  • SHOULD:按分钟/小时聚合计数与延迟分位数,减少明细日志。
  • SHOULD:对高频成功请求进行采样,仅保留错误与异常路径的必要细节。
  • SHOULD:为异常事件保留稳定的分类字段(例如 eventType、reasonCode),方便审计与机器分析。

10.2 明确不记录哪些信息(CEK、fragment、敏感凭证)

维持零知识承诺的关键之一,是在所有可观测系统中持续执行“敏感数据禁止记录”策略。 该策略必须覆盖:服务端日志、APM、错误上报、第三方监控、客户端日志与浏览器控制台输出。

10.2.1 服务端侧 MUST NOT 记录

  • CEK(内容加密密钥)及任何可推导材料
  • URL fragment#...)、location.hash,以及包含 fragment 的完整 URL
  • 明文内容:文件明文、预览内容、解密后的片段或任何明文摘要
  • 敏感凭证原文:短期 token、长期 token、Authorization header 原文、签名 URL 的签名字段原文

若业务需要记录 URL 以排障:MUST 做清洗(移除 fragment;对敏感 query 做脱敏或完全移除),并在代码层强制执行(而非依赖人工约定)。

10.2.2 客户端侧 MUST NOT 记录

  • 不得在生产环境打印 location.href(可能包含 fragment)
  • 不得在错误上报中包含包含 fragment 的 URL、CEK 或 noncePrefix 等敏感材料
  • 调试日志与开发工具输出应默认关闭或最小化

SHOULD:在前端封装统一的日志/上报函数,内部先执行 URL 清洗与敏感字段过滤,再输出/上报。

10.3 监控指标与告警(可用性、性能、安全)

10.3.1 可用性与性能告警

  • 错误率告警:5xx 激增、4xx 异常上升(需区分认证失败与滥用)
  • 延迟告警:p95/p99 超阈值、地区性回源异常
  • 存储告警:对象存储写入失败率上升、读取超时
  • 清理任务告警:到期清理积压、删除任务失败重试过多

10.3.2 安全相关告警

  • 速率限制命中率异常上升
  • 同来源高频 401/403/404,疑似枚举/爆破
  • 单资源下载带宽异常、并发异常,疑似刷量或盗链
  • 关键策略变更(如 WAF 规则、CSP/响应头)应具备变更审计与告警(如适用)

10.3.3 告警治理

  • SHOULD:告警分级(P0/P1/P2)与轮值/升级路径。
  • SHOULD:对易误报指标设置消抖/窗口聚合,避免告警风暴。
  • SHOULD:每个告警附带最小诊断信息(原因码、趋势图、受影响区域/路由),但不包含敏感数据。

10.4 异常检测与滥用识别(枚举、爆破、刷量)

文件传输服务天然面临枚举、爆破、刷量与资源滥用。本节给出可检测信号与应对策略原则。 具体阈值与策略需根据业务规模与误伤成本动态调整。

10.4.1 常见异常模式

  • 枚举:短时间内大量探测 transferId / 资源路径,404/401/403 激增。
  • 爆破:对短码/口令/令牌的高频尝试,失败率曲线异常。
  • 刷量:同资源异常带宽、同来源大量并发连接、重复下载。
  • 协议异常:不合理分片顺序、重复上传、频繁中断重试、异常 UA 模式。

10.4.2 处置策略(原则)

  • SHOULD:速率限制、分级封禁、挑战机制(如适用)、按 ASN/地域/指纹动态策略。
  • SHOULD:对误伤敏感的路径(正常用户可能高频下载)采用更温和策略(例如延迟、分段限速)。
  • MUST:对处置应保留可审计的触发原因(原因码、阈值类别),并提供支持通道(如适用)。

10.5 事件响应流程(分级、遏制、取证、修复、公告)

FileBolt MUST 建立安全事件响应(Incident Response, IR)流程,以确保快速止损、可复盘、可透明沟通。 对于可能影响零知识承诺的事件(如 XSS、供应链注入、日志泄露 fragment 等),应作为最高优先级处理。

  1. 分级:按影响范围与严重度分级(例如 P0/P1/P2),明确升级路径与负责人。
  2. 遏制:快速隔离风险源(封禁攻击源、临时禁用相关功能、收紧策略、旋转令牌密钥等)。
  3. 取证与复盘:基于最小化日志与指标重建时间线;记录决策、影响、修复与后续改进。
  4. 修复与验证:补丁上线、回归测试、安全验证、必要时进行第三方扫描复测。
  5. 沟通与公告:在不扩大攻击面的前提下,对用户与公众透明说明;必要时发布状态页事件报告。

对外沟通中应明确:是否可能导致密钥材料泄露或明文暴露、影响范围、已采取措施、用户需要采取的行动(如有)。

10.6 数据保留与访问控制(最短可用保留期)

日志与监控数据本身也是敏感资产。应采用最短可用保留期与最小权限访问控制,减少泄露与滥用风险。

  • SHOULD:为不同日志类型设置差异化保留期(错误与安全事件略长,成功请求明细更短或不保留)。
  • SHOULD:日志与监控平台使用最小权限访问(RBAC),并保留访问审计。
  • SHOULD:导出与共享日志时必须执行脱敏与最小化(禁止携带敏感凭证与可关联个人身份的信息)。

10.7 第三方监控与最小化集成原则

第三方 APM/错误采集工具可能在默认配置下收集 URL、请求头、表单字段与设备信息。 若使用第三方监控,必须确保其采集边界不破坏零知识承诺。

  • MUST:下载/解密页不加载第三方脚本(与第 9 章一致)。
  • MUST:第三方监控采集项必须显式配置:不采集 fragment、不采集敏感请求头原文、不采集明文内容。
  • SHOULD:对上报的 URL 做统一清洗;对可能包含敏感字段的 payload 禁止上报或做强脱敏。
  • SHOULD:优先使用服务端聚合指标替代客户端细粒度追踪,减少终端侧采集面。

10.8 相关 Claim IDs(预留)

本章涉及“敏感数据禁止记录、告警与事件响应、第三方监控约束”等声明。 对应 Claim IDs 将补充到 附录:Claim IDs 总表 中,并以总表为唯一权威入口。