没有任何权限的浏览器扩展的危险?

信息安全 网页浏览器 铬合金 火狐 权限 浏览器扩展
2021-08-30 23:57:36

假设 Firefox 或 Chrome 的扩展不请求任何WebExtensions 权限,这个扩展会造成什么危害?

或者换一种说法:没有权限的扩展程序可以执行哪些普通网站无法执行的(可能是恶意的)操作?

1个回答

很难找到有关这方面的信息。

默认情况下,扩展受以下内容安全策略(CSP) 的约束:

"script-src 'self'; object-src 'self';"

在这种情况下,self关键字是指扩展包,因此他们可以访问扩展包本身包含的任何文件。这强烈表明扩展无法访问托管在其他地方的任何脚本,除非默认 CSP 被覆盖。同样,他们不能在eval没有明确允许的情况下运行脚本。

但这实际上并不需要权限,因此,理论上,考虑到一个可能危及浏览器的自包含 JS 缺陷,没有权限的扩展程序可以执行任意代码。这是有限的好处 - 这样的缺陷可能也会在网页上起作用,因此它不符合您的要求。

基于示例 webextensions的存储库,更改特定站点的样式(例如,borderify 示例)、向用户显示的文本内容(例如 Emoji Substitution 示例)或将数据从页面复制到系统剪贴板(选择到剪贴板示例) - 剪贴板示例确实需要“访问所有网站的数据”的能力,这是由content_scriptsvalue隐式授予的<all_urls>

因此,可能会看到一些潜在的恶意行为,尽管站点似乎确实可以阻止这些行为(请参阅有关 addons.mozilla.org 禁止内容脚本的注释):

  • 更改表单的目标,以便在提交时将数据发送给第三方(用户激活提交 - 这实际上只是更改文本)
  • 修改页面上显示的值(例如,更改未使用第二因素确认的网上银行支付目标,当页面返回“支付完成”消息时添加“抱歉您的支付失败,请重试”消息)
  • 与另一个可以读取剪贴板内容的应用程序结合使用,并使用扩展程序将更多有用的数据获取到剪贴板(例如,从登录站点复制值,否则这些值不可见)

所有这些都取决于恶意行为者能够对用户将访问的页面做出合理的猜测,但如果假设用户群很大,这将变成一场数字游戏——最终可能会有人访问目标页面。