引言
近期安全研究者提出的 FROST 攻击(Fingerprinting Remotely using OPFS-based SSD Timing)揭示了一个新型浏览器侧信道威胁:恶意网站可通过 Origin Private File System(OPFS)API,在不获取本地代码执行权限的情况下,利用 SSD 访问时序变化追踪用户行为。实验数据显示,该攻击在 macOS 系统上实现网站指纹识别 F1 分数达 88.95%,应用程序识别率达 95.83%,同时可建立传输速率达 891 bit/s 的隐蔽信道。
与传统侧信道攻击依赖内核接口或本地代码执行不同,FROST 完全运行于浏览器沙箱内,仅需 JavaScript 权限即可发起。这一特性使得攻击面从 "需要漏洞利用" 降级为 "仅需用户访问网页",对现有浏览器安全模型构成直接挑战。本文从浏览器厂商防御架构视角出发,提出一套通用的三层缓解策略,旨在为 Chromium、Firefox、WebKit 等主流引擎提供可落地的防御参考。
技术原理与攻击面分析
FROST 攻击的核心机制建立在 SSD 存储设备的物理特性之上。现代 SSD 控制器采用复杂的垃圾回收、 wear-leveling 和缓存策略,当多个进程并发访问存储介质时,会产生可观测的时序扰动。攻击者利用 OPFS API 在浏览器沙箱内创建文件并执行高频读写操作,通过测量这些操作的延迟变化,间接推断系统级 SSD 争用状态。
关键攻击路径包括:
页缓存绕过机制:传统 SSD 侧信道攻击依赖精确控制页缓存状态,而 FROST 采用了一种创新的缓存绕过策略,使得攻击者能够直接观测 SSD 介质访问时序,无需复杂的缓存驱逐操作。
高分辨率时序获取:通过performance.now()或Date.now()等浏览器 API,攻击者可在微秒级精度上测量 OPFS 操作耗时。虽然浏览器已针对 Spectre 类攻击降低了时序精度,但 SSD 访问延迟(通常在毫秒级)仍远高于当前时序抖动防护阈值。
跨站 / 跨标签指纹识别:由于 SSD 控制器是系统级共享资源,即使用户在不同标签页或浏览器实例中访问不同网站,攻击者仍可通过时序模式关联用户活动。
三层防御架构设计
针对上述攻击面,本文提出由时序噪声注入层、存储访问隔离层和速率限制层构成的纵深防御架构。
第一层:时序噪声注入
时序噪声注入旨在破坏攻击者测量 SSD 争用状态的精度。具体实现包括:
API 级时序扰动:在 OPFS 读写操作返回前引入随机延迟。建议参数为:基础延迟 5-15ms,随机抖动范围 ±3ms,服从均匀分布。该参数设置基于 FROST 攻击测量周期(约 1-5ms)的数倍,足以淹没信号而不显著影响用户体验。
时钟精度降级扩展:将现有针对performance.now()的精度限制策略扩展至 OPFS 操作完成事件。建议将 OPFS 相关 Promise 的 resolve/reject 时序精度限制至 1ms 级别,与跨源时序防护保持一致。
确定性延迟调度:采用与现有缓存分区机制类似的策略,为每个站点分配固定的时序偏移量,使得跨站时序关联变得困难。
第二层:存储访问隔离
存储访问隔离致力于切断 SSD 争用信号的传播路径:
进程级 OPFS 隔离:将 OPFS 后端存储从共享 SSD 分区迁移至浏览器进程私有的临时存储区域。每个渲染进程应拥有独立的物理或逻辑存储配额,避免直接争用系统 SSD 队列。
异步写入队列:引入写操作缓冲队列,将 OPFS 写入请求批量化、异步化执行。建议队列深度为 32-64 个操作,刷新间隔 50-100ms,以此平滑 SSD 访问模式。
存储介质抽象:考虑为 OPFS 实现内存优先的写入策略,仅在达到特定阈值(如 128MB)或页面卸载时刷入持久存储。这可将大部分 OPFS 操作转化为内存访问,彻底消除 SSD 时序信号。
第三层:速率限制与监控
速率限制与监控层提供运行时的动态防护能力:
OPFS 操作频率限制:实施基于滑动窗口的速率限制策略。建议参数:每 10 秒窗口内,单个 Origin 的 OPFS 读写操作上限为 1000 次,超出阈值的操作强制延迟至下一窗口。该限制基于 FROST 攻击所需的采样频率(约 100-200 次 / 秒)设定。
异常行为检测:监控 OPFS 访问模式,识别高频、规律性的读写序列。当检测到疑似攻击模式(如固定间隔的连续小文件读写)时,触发降级策略:临时禁用 OPFS 或强制启用时序噪声注入。
用户可见性控制:在隐私设置中增加 "限制站点存储 API" 选项,允许用户全局或按站点禁用 OPFS。同时,当检测到异常 OPFS 活动时,向用户展示警告提示。
实施建议与兼容性考量
上述防御架构的实施需权衡安全性与功能兼容性。OPFS 作为 File System Access API 的重要组成部分,被广泛应用于离线应用、大型文件编辑等场景。建议浏览器厂商采用渐进式部署策略:
分阶段 rollout:首先在隐私浏览模式或严格防护配置中启用完整防御,收集性能与兼容性数据后逐步扩展至普通浏览模式。
站点兼容性列表:维护允许列表,为依赖高精度 OPFS 时序的合法应用(如性能测试工具)提供豁免机制,同时要求这些站点满足额外的安全审查。
标准化推进:将防御机制纳入 W3C 相关规范,推动跨浏览器一致的 OPFS 安全行为。建议新增StorageAccessTiming策略,允许站点声明其时序敏感度需求,浏览器据此调整防护强度。
结论
FROST 攻击展示了浏览器存储 API 在侧信道攻击中的新型利用方式,其完全基于 Web 平台的特性使得传统边界防御失效。本文提出的三层防御架构 —— 时序噪声注入、存储访问隔离与速率限制 —— 为浏览器厂商提供了系统性的缓解思路。这些措施不仅针对 FROST 攻击本身,也为未来可能出现的类似存储侧信道威胁建立了通用防护框架。
随着浏览器功能边界不断扩展,存储、图形、网络等子系统与硬件的交互日益复杂,侧信道攻击面将持续扩大。防御策略的制定需要从单一漏洞修补转向架构层面的安全设计,在功能创新与隐私保护之间寻求可持续的平衡点。
参考来源
- Weissteiner H, et al. "FROST: Fingerprinting Remotely using OPFS-based SSD Timing." DIMVA, 2026. https://hannesweissteiner.com/publications/frost/
- "New FROST attack leverages SSD side-channel to reveal browsing activity." CyberInsider, 2025. https://cyberinsider.com/new-frost-attack-leverages-ssd-side-channel-to-reveal-browsing-activity/
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。