halencarjunior/frost-guard-firefox

GitHub: halencarjunior/frost-guard-firefox

一款防御性 Firefox 扩展,通过拦截不可信站点的 OPFS 访问、降低计时器精度等方式来缓解基于 OPFS 的 FROST 侧信道攻击风险。

Stars: 0 | Forks: 0

# FROST Guard for Firefox FROST Guard for Firefox 是一个防御性的 Firefox 扩展 MVP,旨在降低基于 OPFS 的侧信道攻击面。 ## 它解决的问题 FROST 是一种侧信道攻击理念,它利用 Origin Private File System(或称 OPFS)来创建或读取大文件,然后从 JavaScript 中测量存储延迟。在某些系统上,这可能会泄露有关存储设备的有用的 timing 信息。 此扩展并不能修复浏览器漏洞或消除底层信道。它只会增加不可信站点上的攻击难度。 ## 扩展功能 - 在 `strict` 和 `balanced` 模式下,拦截白名单之外的 `navigator.storage.getDirectory()` 调用。 - 使用白名单放行受信任的 origin。 - 降低白名单之外 `performance.now()` 的精度。 - 记录 OPFS、storage、timer 和 worker 活动。 - 在 popup 中显示警报和近期事件。 - 提供一个简单的选项页面来管理白名单和清除日志。 - 在支持的情况下,使用静态 `declarativeNetRequest` 规则集作为尽力而为的缓解措施。 ## 模式 - `strict`:拦截白名单外的 OPFS,降低 timer 精度,并拦截白名单外的 Workers。 - `balanced`:拦截白名单外的 OPFS,并降低 timer 精度。 - `monitor`:不进行拦截,但会记录尝试行为。 ## 安装 1. 打开 `about:debugging` 2. 点击 `This Firefox` 3. 点击 `Load Temporary Add-on` 4. 从 `extension/` 文件夹中选择 `manifest.json` ## 如何测试 1. 创建或打开一个调用 `navigator.storage.getDirectory()` 的本地页面。 2. 加载该扩展。 3. 在未加入白名单的 origin 上访问该页面。 4. 确认调用失败并提示 `SecurityError`。 5. 打开 popup,将该 origin 添加到白名单中。 6. 重新加载页面并再次测试。 7. 确认在白名单之外 `performance.now()` 返回的是取整后的值。 测试页面示例: ```



```


## 测试页面

现成的测试页面位于 [`test-page.html`](./test-page.html)。

使用方法:

1. 从本地 web 服务器打开该文件,最好是 `http://localhost`,以便 OPFS 可用。
2. 在 `about:debugging` 中加载该扩展。
3. 打开测试页面并点击 `Run all`。
4. 观察 OPFS 结果、timer 精度和 Worker 行为。
5. 使用 popup 从白名单中添加或删除该 origin,然后再次运行测试。

## 本地服务器

使用单个 Python 命令为代码仓库文件夹启动服务:


```
python serve.py
```


可选的自定义端口:


```
python serve.py 8080
```


然后打开:

- `http://127.0.0.1:8000/test-page.html`
- 或您选择的自定义端口

## 限制

- 这不是根本性的修复方案。
- 在注入的脚本完全修补页面之前,可能仍然存在竞态条件。
- 某些正常的网站可能会受到影响而无法使用,尤其是那些依赖 OPFS 或高精度计时的网站。
- Worker 和 Service Worker 的覆盖范围可能需要在未来加强。
- 理想的缓解措施取决于浏览器内部机制,而不仅仅是扩展。
- Firefox 对 MV3 API 的支持可能因版本而异,因此应在目标浏览器版本上测试其行为。

## 后续步骤

- 在 Workers 中实现更强的拦截。
- 按origin提供审计仪表板。
- 针对快速存储增长的启发式算法。
- 检测密集的 I/O 循环。
- 改进 Chrome/Edge 的兼容性。
- 自动化 Playwright 测试。

## 参考

- [新型 FROST 攻击允许网站通过浏览器侧信道追踪您的 SSD 活动](https://thehackernews.com/2026/06/new-frost-attack-lets-websites-track.html)
- [FROST 论文 PDF](https://hannesweissteiner.com/pdfs/frost.pdf)

## 项目结构


```
frost-guard-firefox/

  .github/

    workflows/

      package-extension.yml

  extension/

    manifest.json

    background.js

    content-script.js

    injected.js

    popup.html

    popup.js

    popup.css

    options.html

    options.js

    options.css

    rules.json

    README.md

  test-page.html

  serve.py

  README.md
```
标签:CMS安全, JavaScript, Web安全, 侧信道防御, 数据可视化, 浏览器扩展, 网络安全, 自定义脚本, 蓝队分析, 调试辅助, 逆向工具, 防御绕过, 隐私保护