By: 23pds@慢雾安全团队

背景

2024 年 6 月 3 日,推特用户@CryptoNakamao 发文讲述其因下载恶意的 Chrome 扩展 Aggr 导致 100 万美金被盗的经过,引起广大加密社区用户对扩展风险的关注和自己加密资产安全性的担忧。在 5 月 31 日,慢雾安全团队发布了披着羊皮的狼|虚假 Chrome 扩展盗窃分析一文,对恶意的 Aggr 扩展的作恶方式输出了详细分析。鉴于广大用户缺乏浏览器扩展的背景知识,慢雾首席信息安全官 23pds 在本文通过六问六答,讲解扩展的基础知识和潜在风险,提供应对扩展风险的建议,希望能帮助个人用户和交易平台提高保护账户和资产安全的能力。

Web3安全解惑:为什么小小的Chrome插件可以造成百万美元损失?

(https://x.com/im23pds/status/1797528115897626708)

答疑

1. 什么是 Chrome 扩展?

Chrome 扩展(Chrome Extension) 是为谷歌浏览器(Google Chrome) 设计的插件,能够扩展浏览器的功能和行为。它们可以自定义用户的浏览体验,添加新的特性或内容,或者与网站交互。Chrome 扩展通常由 HTML、CSS、JavaScript 以及其他网页技术构建。

Chrome 扩展的结构通常包括以下几个部分:

  • manifest.json:扩展的配置文件,定义了扩展的基本信息(如名称、版本、权限等)。

  • 背景脚本(Background Scripts):运行在浏览器后台,处理事件和长期任务。

  • 内容脚本(Content Scripts):运行在网页上下文中,能够直接与网页进行交互。

  • 用户界面(UI):如浏览器工具栏按钮、弹出窗口、选项页等。

2. Chrome 扩展有什么作用?

  • 广告拦截:扩展可以拦截和阻止网页上的广告,从而提高网页加载速度和用户体验。例如,AdBlock 和 uBlock Origin。

  • 隐私和安全:一些扩展可以增强用户的隐私和安全性,如防止跟踪、加密通信、管理密码等。例如,Privacy Badger 和 LastPass。

  • 生产力工具:扩展可以帮助用户提高生产力,如管理任务、记笔记、时间跟踪等。例如,Todoist 和 Evernote Web Clipper。

  • 开发者工具:为网页开发者提供调试和开发工具,如查看网页结构、调试代码、分析网络请求等。例如,React Developer Tools 和 Postman。

  • 社交媒体和通讯:扩展可以集成社交媒体和通讯工具,方便用户在浏览网页时处理社交媒体通知、消息等。例如,Grammarly 和 Facebook Messenger。

  • 网页定制:用户可以通过扩展自定义网页的外观和行为,如更改主题、重新排列页面元素、添加额外功能等。例如,Stylish 和 Tampermonkey。

  • 自动化任务:扩展可以帮助用户自动化重复性任务,如自动填写表单、批量下载文件等。例如,iMacros 和 DownThemAll。

  • 语言翻译:一些扩展可以实时翻译网页内容,帮助用户理解不同语言的网页,如 Google 翻译。

  • 加密货币辅助:扩展可以帮助用户在加密货币交易时更加方便,如 MetaMask 等。

Chrome 扩展的灵活性和多样性使得它们几乎可以应用于任何浏览场景,帮助用户更高效地完成各种任务。

3. Chrome 扩展安装后有哪些权限?

Chrome 扩展在安装后可能会请求一系列权限,以便执行特定的功能。这些权限在扩展的 manifest.json 文件中声明,并在安装时提示用户进行确认。常见的权限包括:

  • <all_urls>:允许扩展访问所有网站的内容。这是一个广泛的权限,允许扩展读取和修改所有网站的数据。

  • tabs:允许扩展访问浏览器的标签信息,包括获取当前打开的标签、创建和关闭标签等。

  • activeTab:允许扩展暂时访问当前激活的标签,通常用于在用户点击扩展按钮时执行特定操作。

  • storage:允许扩展使用 Chrome 的存储 API 来存储和检索数据。这可以用于保存扩展的设置、用户数据等。

  • cookies:允许扩展访问和修改浏览器中的 cookies。

  • webRequest 和 webRequestBlocking:允许扩展拦截和修改网络请求。这些权限通常用于广告拦截和隐私保护扩展。

  • bookmarks:允许扩展访问和修改浏览器的书签。

  • history:允许扩展访问和修改浏览器的历史记录。

  • notifications:允许扩展显示桌面通知。

  • contextMenus:允许扩展在浏览器的上下文菜单(右键菜单)中添加自定义菜单项。

  • geolocation:允许扩展访问用户的地理位置信息。

  • clipboardRead 和 clipboardWrite:允许扩展读取和写入剪贴板内容。

  • downloads:允许扩展管理下载,包括启动、暂停和取消下载。

  • management:允许扩展管理浏览器的其他扩展和应用程序。

  • background:允许扩展在后台运行长时间任务。

  • notifications:允许扩展显示系统通知。

  • webNavigation:允许扩展监控和修改浏览器的导航行为。

这些权限使得 Chrome 扩展能够执行许多强大和多样的功能,但也意味着它们有可能访问用户的敏感数据,如 cookies 、认证信息等。

4. 为什么恶意的 Chrome 扩展可以盗取用户权限?

恶意的 Chrome 扩展可以利用所请求的权限盗取用户的权限和认证信息,因为这些扩展可以直接访问和操作用户的浏览器环境和数据。具体原因和方式如下:

  • 广泛的权限访问:恶意扩展通常会请求大量的权限,如访问所有网站(<all_urls>)、读取和修改浏览器标签(tabs)、访问浏览器的存储(storage) 等。这些权限使得恶意扩展能够广泛地访问用户的浏览活动和数据。

  • 操作网络请求:恶意扩展可以使用 webRequest 和 webRequestBlocking 权限拦截和修改网络请求,从而窃取用户的认证信息和敏感数据。例如,它们可以在用户登录网站时拦截表单数据,获取用户名和密码。

  • 读取和写入页面内容:通过 content scripts,恶意扩展可以嵌入代码到网页中,读取和修改页面内容。这意味着它们可以窃取用户在网页上输入的任何数据,如表单信息、搜索查询等。

  • 访问浏览器存储:恶意扩展可以使用 storage 权限访问和存储用户的本地数据,包括可能包含敏感信息的浏览器存储(如 LocalStorage 和 IndexedDB)。

  • 操作剪贴板:通过 clipboardRead 和 clipboardWrite 权限,恶意扩展可以读取和写入用户的剪贴板内容,从而窃取或篡改用户复制粘贴的信息。

  • 伪装成合法网站:恶意扩展可以通过修改浏览器的内容或重定向用户访问的网页,伪装成合法网站,诱导用户输入敏感信息。

  • 长期后台运行:具有 background 权限的恶意扩展可以在后台持续运行,即使用户没有主动使用它们。这使得它们可以长时间监控用户的活动,收集大量数据。

  • 操作下载:使用 downloads 权限,恶意扩展可以下载和执行恶意文件,进一步危及用户的系统安全。

5. 为什么这次恶意扩展的受害者会被盗取权限和资金受损?

因为这次恶意的Aggr 扩展刚好获得了上面我们聊到的背景信息,以下是这个恶意插件 manifes.json 文件 permissions 内容片段:

  • cookies

  • tabs

  • <all_urls>

  • storage

6.恶意 Chrome 扩展盗取用户的 cookies 后,能做哪些操作?

  • 访问账户:恶意扩展可以使用盗取的 cookies 模拟用户登录交易平台账户,从而访问用户的账户信息,包括余额、交易历史等。

  • 进行交易:盗取的 cookies 可能允许恶意扩展在未经用户同意的情况下进行交易,购买或出售加密货币,甚至将资产转移到其他账户。

  • 提取资金:如果 cookies 包含会话信息和认证令牌,恶意扩展可能绕过二次验证(2FA),直接发起资金提取,将用户的加密货币转移到攻击者控制的钱包中。

  • 访问敏感信息:恶意扩展可以访问和收集用户在交易平台账户中的敏感信息,如身份验证文件、地址等,可能用于进一步的身份盗窃或诈骗活动。

  • 修改账户设置:恶意扩展可以更改用户的账户设置,如绑定的电子邮件地址、手机号码等,进一步控制账户和窃取更多信息。

  • 冒充用户进行社会工程攻击:利用用户账户进行社会工程攻击,如向用户的联系人发送诈骗信息,诱导他们进行不安全的操作或提供更多敏感信息。

应对措施

看到这,广大用户可能会想,那怎么办,直接断网不玩了?用单独的电脑做操作?不用网页登陆平台?网络上出现了很多一棍子打死的说法,但其实我们可以学习如何合理防范这类风险:

个人用户的应对措施:

  • 增强个人安全意识:第一个防范建议是增强个人安全意识,始终保持怀疑的态度。

  • 仅安装可信来源的扩展:从 Chrome 网上应用店或其他可信来源安装扩展,并阅读用户评价和权限请求,尽量不授予扩展不必要的访问权限。

  • 使用安全的浏览器环境:避免安装不明来源的扩展,并定期审查和删除不必要的扩展,安装不同的浏览器,隔离插件浏览器和交易资金浏览器。

  • 定期检查账户活动:定期检查账户登录活动和交易记录,发现可疑行为立即采取措施。

  • 记得退出登录:使用完网页操作平台后要记得退出。很多人为了方便,在登录平台完成操作后,不点击退出登录,这个习惯存在安全风险。

  • 使用硬件钱包:对于大额资产,使用硬件钱包进行存储,以提高安全性。

  • 浏览器设置和安全工具:使用安全的浏览器设置和扩展(如广告拦截器、隐私保护工具)减少恶意扩展的风险。

  • 使用安全软件:安装和使用安全软件来检测和防止恶意扩展和其他恶意软件作恶。

最后是给平台的风控建议,通过这些措施,交易平台可以降低恶意 Chrome 扩展给用户带来的安全风险:

  • 强制使用二次验证(2FA):

- 全局启用 2FA:要求所有用户在登录和进行重要操作(如交易、下单、提取资金)时启用二次验证(2FA),确保即使用户的 cookies 被盗,攻击者也无法轻易访问账户。

- 多种验证方式:支持多种二次验证方式,如短信、电子邮件、Google Authenticator 和硬件令牌等。

  • 会话管理和安全:

- 设备管理:提供用户查看和管理已登录设备的功能,让用户可以随时注销不明设备的会话。

- 会话超时:实施会话超时策略,对长时间未活动的会话进行自动注销,减少会话被盗用的风险。

- IP 地址和地理位置监控:检测和提醒用户来自异常 IP 地址或地理位置的登录尝试,并在必要时阻止这些登录。

  • 强化账户安全设置:

- 安全通知:即时向用户发送有关账户登录、密码更改、资金提取等重要操作的通知,可以通过邮件或短信提醒用户异常活动。

- 账户冻结功能:提供紧急情况下用户可以快速冻结账户的选项,控制受损范围。

  • 加强监控和风控系统:

- 异常行为检测:使用机器学习和大数据分析监控用户行为,识别异常交易模式和账户活动,及时进行风控干预。

- 风控预警:对频繁更改账户信息、频繁尝试登录失败等可疑行为进行预警和限制。

  • 为用户提供安全教育和工具:

- 安全教育:通过官方社交账号、电子邮件、平台内通知等渠道向用户普及安全知识,提示用户注意浏览器扩展的风险和如何保护账户。

- 安全工具:提供官方的浏览器插件或扩展,帮助用户增强账户安全,检测并提醒用户可能存在的安全威胁。

结语

坦白说,从技术的角度来看,很多时候把上文提到的风控措施都做了,可能并不是最好的方式。安全和业务需要平衡,安全太重,用户体验会不好,比如下单时需要二次认证,很多用户为了下单快,索性关掉! 结果是方便了自己也方便了黑客,因为一旦 cookies 被盗,不能提币,黑客就可以玩对敲,造成用户资产受损。所以针对不同的平台和用户,采取风控的方式也不相同。至于安全与业务的平衡点在哪,不同的平台有不同的考量,希望平台在考虑用户体验的同时,也能保护好用户账户和资产的安全。