安全与隐私白皮书(总览)第 7 章
第 7 章 反滥用与风控
FileBolt 提供高容量文件传输服务,天然会面对自动化滥用、枚举探测、资源盗用与攻击性流量等风险。 本章定义系统的反滥用与风控(Abuse & Risk Control)原则:在不突破零知识边界的前提下, 用最小必要信号识别异常并实施限制,同时保证策略可解释、可申诉、可审计。
7.0 本章摘要
反滥用体系的目标是抬高攻击与盗用成本,降低资源被恶意消耗的概率,同时尽量减少对正常用户的误伤。 FileBolt 采用分层防护:边缘层速率限制与挑战、服务端会话型 token 约束(查表、作用域、到期)、 以及针对热点下载与高并发的保护策略。所有策略必须与零知识边界一致,不收集或记录 CEK、fragment 或可推导密钥材料。
- MUST:下载/上传相关 token 为短期、会话型、作用域化,到期失效,且可撤销。
- MUST:风控日志与上报不包含 URL fragment、CEK、访问令牌原文或可推导敏感材料。
- SHOULD:对高风险操作采用渐进式处置(限速→挑战→短封禁→长封禁)。
- SHOULD:提供申诉入口与可解释的拒绝信息(不泄露内部规则细节)。
7.1 风险面与滥用类型
7.1.1 资源滥用
- 批量上传占用存储与带宽,绕过配额。
- 批量下载盗用带宽,刷下载次数或制造高额流量。
- 利用并发与重试制造边缘/回源压力(DoS/类 DoS)。
7.1.2 枚举与探测
- 探测/枚举
transferId或访问路径,试图发现可下载资源。 - 高频请求 manifest/分片接口,测试鉴权与错误响应差异。
7.1.3 令牌滥用与重放
- 盗用短期 token 进行批量抓取或重放请求。
- 跨作用域滥用:用错误作用域 token 访问不应访问的接口。
7.1.4 自动化机器人与脚本攻击
- 脚本化批量创建 transfer、探测接口、刷下载。
- 利用低成本代理池与分布式请求规避单点限速。
7.2 设计原则(最小化、可解释、可回滚)
- 最小化:只收集实现防护所需最小信号;不采集与内容相关的敏感数据。
- 分层:边缘层先拦截大部分自动化流量;应用层细化鉴权与资源策略。
- 渐进:优先限速与挑战,尽量减少一刀切封禁,降低误伤。
- 可解释:对用户返回稳定一致的错误与提示(如“请求过于频繁/已到期/不可用”)。
- 可回滚:风控规则应支持快速回滚与灰度,避免造成大面积可用性事故。
- 零知识一致性:任何风控与日志体系 MUST NOT 接触 CEK、fragment 或可推导密钥材料。
7.3 速率限制与配额
7.3.1 边缘层速率限制
- 系统 SHOULD 在边缘层对高频请求进行限速,优先保护 API 与下载分片端点。
- 限速维度可包含:IP/ASN、路径、方法、令牌签发频率、并发连接数等。
- 限速响应 SHOULD 返回稳定的状态码与重试建议(如 429 + Retry-After)。
7.3.2 应用层配额与上限
- 系统 MUST 对上传容量、并发上传/下载、请求频率设置合理上限。
- 对匿名/免费使用与付费用户,可采用差异化阈值(策略需与产品条款一致)。
- 配额与上限 SHOULD 采用“按 transfer/按用户/按风险等级”的组合策略。
7.3.3 失败关闭与资源保护
- 当后端压力过高时,系统 SHOULD 采用保护模式(降载/拒绝高风险请求),避免雪崩。
- 保护模式 SHOULD 优先影响高风险与匿名请求,尽量保障正常业务路径。
7.4 枚举与爆破防护(transferId / token)
7.4.1 transferId 不可枚举性
- SHOULD:
transferId具备足够熵(不可预测、不可递增)。 - SHOULD:对不存在的 transfer 与无权限 transfer 返回一致且最小化的信息,减少枚举差异化信号。
7.4.2 短期 token 的防护价值
- MUST:读取 manifest 与读取分片使用不同作用域 token(参见第 4 章)。
- MUST:token 到期失效,且可在撤销/到期后拒绝续期。
- SHOULD:对 token 校验失败进行速率限制与告警,识别爆破与重放。
7.4.3 错误响应一致性
- 对“无效/过期/作用域不匹配”的 token,响应格式与文案 SHOULD 一致,避免泄露内部判定细节。
- 日志记录 SHOULD 使用脱敏标识(如 token 的哈希截断值),不得记录 token 原文。
7.5 自动化与机器人对抗(挑战、指纹、行为)
7.5.1 渐进式挑战
- SHOULD:对高风险流量触发挑战(例如需要用户交互的验证),低风险流量不触发。
- 挑战策略 SHOULD 支持灰度与回滚,避免影响正常用户。
7.5.2 行为与一致性信号
- 可使用与内容无关的行为信号辅助判定(请求节奏、并发、失败率、重试模式)。
- MUST:不得采集或推断 CEK、fragment 或任何内容相关信息。
7.5.3 误伤控制
- SHOULD:对已通过验证的用户或低风险会话放宽阈值。
- SHOULD:提供合理的重试与恢复路径(例如等待窗口、降低并发、换网络)。
7.6 下载链路滥用与热点保护
7.6.1 热点文件与带宽保护
- 当单一 transfer/文件出现异常高并发下载时,系统 SHOULD 触发保护策略(分级限速/排队/短期封禁)。
- 保护策略 SHOULD 优先针对可疑来源与异常并发,而非直接影响所有下载者。
7.6.2 下载次数、有效期与上限(若适用)
- 系统 SHOULD 支持发送方设置有效期与下载次数上限,以降低误发与扩散风险(参见第 6 章撤销与到期)。
- 当达到上限或到期后,服务端 MUST 使其逻辑失效并拒绝继续下载。
7.6.3 缓存与回源策略
- 若存在边缘缓存,MUST 确保鉴权逻辑先于缓存命中,避免绕过撤销/到期。
- 对大文件分片,系统 SHOULD 控制回源并发,避免对存储造成突发压力。
7.7 风控数据最小化与隐私边界
反滥用常需要一定的安全信号,但必须坚持最小化与零知识一致性:
- MUST NOT:记录 CEK、URL fragment 或包含 fragment 的完整 URL。
- MUST NOT:记录访问令牌原文、Authorization header 原文;如需关联,使用脱敏标识。
- SHOULD:仅记录聚合指标与必要的失败原因分类(如 401/403/429 的计数与比例)。
- SHOULD:为风控日志设置短保留期与自动删除策略(参见第 6 章)。
7.8 处置、申诉与透明度
7.8.1 分级处置
- 系统 SHOULD 采用分级处置:提示与限速 → 挑战 → 短期封禁 → 长期封禁。
- 对明显攻击流量,可直接进入更强处置,但仍需可审计记录(不含敏感材料)。
7.8.2 用户提示与错误信息
- 对被限速/封禁的请求,页面与 API 返回 SHOULD 提供可理解的原因类别(如“请求过于频繁/检测到异常流量”)。
- 错误信息 SHOULD 避免泄露规则细节(例如阈值、指纹判定逻辑)。
7.8.3 申诉通道
- 系统 SHOULD 提供申诉或支持入口(例如 support@ 或帮助中心),用于误伤恢复。
- 申诉流程 SHOULD 以最小信息完成核验,避免要求用户提交敏感内容或完整下载链接。
7.9 相关 Claim IDs(预留)
本章的 Claim IDs 将在你确定最终策略(阈值分级、挑战方案、封禁与申诉流程)后补充到 附录:Claim IDs 总表 中,并以总表为唯一权威入口。