浏览器,大家每天都在用,用它上网查资料、办公、看视频等。可以说,浏览器是在线内容消费的中心平台,如在办公中,都是通关浏览器去访问组织数据和应用程序,用来通信、数据共享、操作等。
好用的浏览器扩展
日常工作生活中,我们经常用到的浏览器有基于Chromium的浏览器(Chrome、Edge、Opera、Brave等)、Firefox和Safari,以及国内的360浏览器、猎豹、夸克等等。这些浏览器之所以好用,是因为它们支持使用Web Extensions(网络扩展)或兼容API的扩展。
而这也就是“浏览器扩展”了。浏览器扩展是为用户的浏览器添加功能的插件,具有广告拦截、密码管理、做标注、检查拼写等基本功能。对于用户使用的浏览器,有官方扩展商店可以帮助用户选择、比较和安装想要的插件,当然也可以从非官方来源安装扩展。
浏览器扩展,为用户提供了巨大的价值。但是,这些扩展插件或API,需要广泛地获取用户权限来更改浏览器,以及查看用户上网行为、访问用户网页内容,进而让这些扩展程序增强功能,提高用户的使用体验。如果没有用户授权的访问权限,这些扩展程序可能完全发挥不了作用。
以Google Chrome为例,扩展程序需要能够读取和更改用户访问的所有网站上的所有数据,才能工作。如在官方Chrome Web商店中,经常用到的谷歌翻译扩展程序的隐私实践部分声明,它会收集有关位置、用户活动和网站内容的信息。但是,它是需要访问用户所有网站的所有数据才能工作,这一事实在用户安装扩展程序之前并不会透露给用户。
如果用户打开浏览器中的扩展中心,可以发现数量超多的扩展程序,有高效办公的、有学术研究的、有网页增强的、有实用工具的,等等。据外网一篇报道内容显示,仅在Chrome的Web Store上就有大约16万个公共扩展和应用。
浏览器扩展的危险
这些为了提高用户体验的扩展程序,也带来了更多的网络安全和隐私威胁。例如,之前,趋势科技的研究人员跟踪了CopperStealer幕后组织的最新部署,其通过基于Chromium的恶意浏览器扩展程序窃取加密货币和用户的钱包帐户信息。
据了解,每年都会发现许多影响全球数百万用户的恶意扩展。这些扩展利用网络商店审查过程的漏洞,进入到用户视野中。因为向网络商店提交的扩展数量众多(每天更新数百次),扩展审查依赖于自动代码分析,并辅以对风险较高的扩展的手动审查。但这个扩展审查使用的是远程托管代码的扩展(在审查期间无法使用这些代码),导致漏洞被利用而来的问题进一步恶化。此外,即使是良性和信誉良好的扩展也可能会变成恶意工具,因为它们容易受到代码和供应链中的漏洞的影响。
例如,Meta Mask浏览器扩展(MM)此前公开了白帽子发现的一个严重的 Clickjacking(MM浏览器扩展钱包)漏洞,这个漏洞可以造成的影响是:在用户的 MM 插件钱包处于解锁状态,用户访问恶意的站点时,站点可以利用 iframe 标签将解锁的 MM 插件钱包页面嵌入到网页中并进行隐藏,然后引导用户在网站上进行点击操作,实际上是在 MM 解锁的页面中进行操作,从而盗取用户的数字货币或藏品等相关资产。
目前,浏览器扩展应用非常广泛,可以访问和控制所有站点上的用户活动和数据。这种访问或直接通过相关浏览器界面授予,或间接通过浏览器设置的配置、在网页上下文中执行代码的能力等授予。
以下是一些流行浏览器扩展经常要获取的访问权限,它们为什么要获取这些权限?这些权限可能会造成什么影响?
语法和拼写检查:许多用户和组织选择使用拼写和语法检查器改善书面交流。这些扩展请求允许注入从网页上下文运行的脚本,以分析用户的文本,通常通过检查输入字段或通过其他方式记录用户的击键。它有效地允许收集和过滤网页上的任何信息,包括密码和其他敏感数据。此外,这样的权限会给潜在的攻击和公司资产盗窃让路,因为脚本可以通过编程方式执行用户可以执行的任何操作。例如,脚本可以更改用户设置和权限,从公司的在线目录中删除文件,读取聊天记录,设置邮件服务的重定向规则等。
广告拦截:Chrome Web Store顶级扩展中最常见的功能。谁不想停止广告、提高浏览器速度和增加保护呢?但是,阻止广告相关内容涉及从页面中删除相关组件,需要与拼写检查器相同的权限。此外,检测和预防需要拦截和修改用户的Web请求。更改响应允许发起不同的攻击,例如禁用安全标头(例如CSP和HSTS),而访问请求会暴露敏感数据,包括用户密码、信用卡和其他敏感信息的有效载荷,如授权令牌和会话cookie,通常足以在不同服务中模拟用户,公开专有公司信息、物理设备位置、照片、在线订单等的链接。
文件格式支持:某些扩展允许打开、修改和转换浏览器中不支持的某些文件类型。在某些情况下,它们需要访问用户的下载路径,才能保存修改或转换的文件。攻击者可以通过多种方式利用此API,例如在用户的计算机上放置任意文件并清除其踪迹。除此之外,还有一些扩展提示用户提供对文件系统的完全访问权限,这可能会危及所有存储的文件。
密码管理:许多具有安全意识的用户和组织使用扩展来减轻基于密码的身份验证的固有痛苦。其中一些扩展提供了复制和粘贴密码的功能,需要获得监视和更改用户剪贴板的权限。此外,他们需要访问网页来检查登录表单和读/写用户凭据,并经常检查Web请求以识别登录尝试并跟踪登录生命周期。这些权限与针对广告拦截器描述的权限具有相同的危险。
浏览器扩展为何如此危险?
根据上述的内容,不难发现造成浏览器扩展如此危险的重要原因——浏览器扩展之所以这么危险,是因为扩展程序这种第三方行为体的控制和访问级别会对用户及其组织(公司)构成重大的安全和隐私威胁。即,这些浏览器扩展程序在为用户提供便利的同时,也获取了访问用户信息甚至隐私的广泛权限,而这些访问权限为恶意软件、不法分子大开方便之门。
例如,屏幕共享和视频会议扩展可以自由捕捉用户的屏幕和音频;VPN扩展通过代理(有时通过未加密的信道)将用户流量的任何部分引导到第三方服务器,可能会窃取数据甚至带宽;隐私保护扩展有时需要访问用户的cookie,可能包含会话ID和其他令牌,否则会隐藏在Javascript运行时中。
可以说,危险并不总是源于厚颜无耻的高风险许可。如扩展不需要使用计算机资源的特殊权限,从而导致了密码劫持扩展的兴起。此外,恶意扩展可能会利用浏览器的非说明性警告,有时无法捕获潜在风险。例如,一些扩展使用权限劫持用户的搜索,这些权限只会提示用户可能读取用户的历史记录。这种方法可以很容易地用于发起钓鱼和其他攻击,这可能会对用户组织带来安全危害。此外,还有许多扩展需要混合权限,也增加了攻击面,及复杂的攻击向量。
再以Chrome的Web商店为例,它通过Chrome和大多数基于Chromium的浏览器直接服务约80%的市场。据相关报道显示,对存储中的扩展的分析表明,成千上万的扩展可以访问我们上面概述的令人担忧的权限。例如,约44.1%(约7万个扩展)可以在网页上下文中运行代码;约31.85%(约5万个扩展)可以访问用户的选项卡和浏览活动;约6.17%(约1万个扩展)可以读取和更改所有站点上的数据;约6%(约9500个扩展)可以直接访问Web请求;约1.75%(约3000个扩展)可以下载文件并访问下载活动。
为了更好地理解这些风险权限的范围,发布者进一步研究了使用它们的扩展的用户数量。虽然Chrome Web Store没有提供准确的用户数量(每个扩展的上限为1000万用户),但我们可以推断出一个粗略的下限。发布者发现,这些权限会影响全球数亿用户。
例如,至少有7.8亿用户拥有可以在网页上下文中运行代码的扩展;至少有7.1亿用户具有可访问用户标签和浏览活动的扩展;至少有3.02亿用户拥有可读取和更改所有站点上数据的扩展;至少有4.41亿用户拥有可直接访问Web请求的扩展;至少有1.06亿用户拥有可以下载文件和访问下载活动的扩展。
总之,约62.43%的扩展具有读取或更改用户数据和活动的权限,而有超过10亿用户(及其组织)选择安装它们。另外,我们还需要考虑:扩展开发人员的可靠性如何?其中有多少可能是恶意的、可利用的漏洞,或者会在未来被恶意行为体接管的?
小结
浏览器扩展在极大地丰富和提高浏览器功能的同时,也容易成为恶意攻击者的目标。利用浏览器扩展的漏洞,攻击者可以编写代码,对用户的电脑进行攻击。相应地,企业修补和更新插件的周期通常比较长,以至于不能及时地跟上利用浏览器插件漏洞的攻击组件。
目前,主流的浏览器为用户提供了一些扩展程序权限控制来限制恶意攻击,但一方面,这些访问控制的粒度太粗糙,很容易被绕过;另一方面,大多数用户的安全意识淡薄,习惯轻易地对各种插件进行授权操作。
简而言之,浏览器扩展已成为增强浏览体验的工具,但是,它们能够访问和更改用户和组织的数据、操作和资产,这令人担忧。因为它们与移动应用程序和其他插件一样,远远不够安全,在攻击者手中可能具有毁灭性。那么,不禁想问,数以亿计的用户和组织对自己将数据和资产交给可能不可靠的第三方行为者的决定是否充满信心呢?
参考资料:
1.《The Beginner׳s Guide to the Untold Dangers of Web Extensions》;原文链接:https://talon-sec.com/blog/the-beginner%d7%b3s-guide-to-the-untold-dangers-of-web-extensions/
2.《浏览器扩展:比你想象得更危险》;来源:黑白之道