Natalie Zagarov
Natalie Zargarov is a Security Researcher with more than 10 years of experience in cybersecurity as a malware reverser and cyber intelligence researcher.
立即注册,解锁专为您的业务打造的 AI 计算、存储与托管 K8s 服务。
联系我们的销售团队,共同探讨您的业务需求并获取理想的解决方案。
LayerX Research(现为 Akamai 旗下产品)发现了一起协同攻击活动,该活动涉及 Chrome 应用商店和 Microsoft Edge 扩展商店中的 32 款恶意浏览器扩展程序,受影响的用户超过 6,150 名。
这些扩展程序伪装成良性的生产力实用工具(例如,文本计数器、记事应用以及 YouTube 增强工具)以骗取信任,同时在后台秘密收集数据并监控用户的浏览习惯。
静态分析显示,这些扩展程序的代码库、远程配置端点以及韩语开发工件几乎完全相同,这有力地证明了该攻击集群与一名讲韩语的攻击者相关。
幕后操控者利用外部托管的配置文件(在运行时进行去混淆处理)来操纵网页导航并实施联盟欺诈,同时无需通过官方商店的审核流程即可推送更新。
要缓解此类动态威胁,需要移除拥有广泛权限(如 webNavigation 和 <all_urls>)的非必要扩展程序,监控远程命令和控制 (C2) 基础架构,并扩大浏览器应用商店的审核范围,将外部配置源纳入检查。
浏览器扩展程序已成为攻击者持续访问用户浏览活动的最有效途径之一。与传统恶意软件不同,恶意扩展程序能够继承用户信任,在浏览器内部运行,并且通常只需安装一次即可永久保持活动状态。
在针对 Chrome 应用商店和 Microsoft Edge 扩展商店的持续威胁搜寻中,LayerX Research(现为 Akamai 旗下产品)发现了一起有组织的浏览器扩展程序攻击活动,该活动涉及 32 款恶意扩展程序,受影响的用户累计超过 6,150 名。
乍一看,这些扩展程序之间似乎毫无关联。它们将自身伪装成各类生产力工具,包括文本实用工具、YouTube 增强工具、SEO 助手、记事应用程序、语言助手、Markdown 实用工具以及其他旨在提升浏览器便利性的工具。每个扩展程序都使用了不同的品牌标识,并宣称提供不同的功能。
然而,在这种表面的多样性之下,大多数扩展程序都拥有几乎相同的基础架构,这表明它们源自同一个通用的开发框架。此外,所有这些扩展程序都共享了韩语本地化资源、韩语注释以及其他开发工件。
这些共同特征使我们更加确信,这些扩展程序属于同一攻击活动,并由同一攻击者(无论其是有组织的团伙还是个人)开发。
我们的分析表明,其中大多数扩展程序都会:
持续监控用户的浏览活动
从同一远程基础架构中获取由攻击者控制的配置文件
在本地解码并缓存远程指令
动态确定哪些网站需要触发额外操作
共享一个几乎相同的后台服务工作器实现
使用相同的遥测事件、存储结构和导航逻辑
更令人担忧的是,此次攻击活动依赖远程配置,这使得幕后操控者能够在扩展程序发布后修改其行为,而无需在浏览器应用商店中更新扩展程序。虽然我们目前主要观察到的是浏览遥测数据的收集和流量操纵,但这套架构可轻易复用于网络钓鱼、恶意软件交付或凭据窃取。
除了这起主要的攻击活动外,LayerX 的研究人员还发现了在同一个发布者帐户下发布的另一组恶意扩展程序。在进行分析时,我们发现这些扩展程序主要用于进行联盟欺诈,它们会通过联盟链接自动重定向用户,以此赚取非法佣金。
此次攻击活动自 2025 年 3 月以来一直保持活跃状态,它表明恶意浏览器扩展程序正在不断演变,从孤立的威胁演变为可远程管理的平台,即使在通过浏览器应用商店审核很久之后仍然能够改变其功能。
与此次攻击活动相关的最早一批扩展程序出现于 2025 年 3 月,而在随后的几个月里,攻击者持续发布了更多扩展程序。
幕后操控者并没有重新发布同一个扩展程序,而是持续推出了基于同一底层框架的新变体。
LayerX 研究人员发现了:
32 个恶意浏览器扩展程序
通过以下渠道分发:
Google Chrome 应用商店
Microsoft Edge 扩展商店
超过 6,150 名用户受到影响
这些扩展程序伪装成不相关的实用工具,包括:
文本计数器
Markdown 实用工具
YouTube 增强工具
视频速度控制器
SEO 工具
语言助手
记事工具
滚动实用工具
AI 相关助手
尽管这些扩展程序表面上看似毫无关联,但静态分析表明,它们中的大多数都复用了几乎相同的后台服务工作器、遥测逻辑、存储结构以及导航处理机制。除了品牌标识素材及其宣称的功能外,其底层代码实现基本保持不变,这充分表明这些扩展程序是通过同一个通用开发框架生成的。
单独来看,这些扩展程序中的任何一个似乎都算不上引人注目。每一款扩展程序都宣称提供某种看似合理的生产力功能,使用各自的品牌标识,并且用户群相对较小。只有对发布者信息、代码相似度、共享的远程基础架构以及运行时行为进行关联分析,才能揭示出整个攻击活动的全貌。
图 1 说明了现代浏览器扩展程序攻击活动是如何通过将恶意功能分散到大量表面上看似不相关的扩展程序中,从而在众目睽睽之下隐匿行踪的。
对共享代码库的分析揭示了大多数变体都具备的四项核心功能:
活跃的 C2 — 远程配置获取
配置去混淆
浏览活动监控
遥控导航操纵
大多数扩展程序并未将运行逻辑嵌入在扩展程序包内,而是从同一个 jsDelivr 托管端点获取远程配置文件(图 2)
下载后,系统会解析配置并将其缓存在本地:
await chrome.storage.session.set({
nav_cfg_cache: parsedConfig
});
使用远程配置可显著提升攻击活动的灵活性。幕后操控者无需通过 Chrome 应用商店或 Microsoft Edge 扩展商店发布新的扩展版本,只需修改配置文件即可改变扩展程序的行为。这使得他们能够直接更新目标网站、重定向目标地址或攻击活动逻辑,而不会触发浏览器商店的再次审核。
在调查过程中,我们多次观察到了远程配置发生更改。在某一时刻,该配置文件完全为空,这表明其基础架构曾被暂时禁用或重置(图 3)。
几天后,该配置文件中增加了关于联盟流量重定向的规则。这表明该攻击活动的行为是通过远程配置进行主动管理的,而不是静态嵌入在扩展程序内部(图 4)。
已下载的配置不包含明文值。相反,主机名、重定向载荷和内部标识符均采用 Base64 编码,并在运行时进行还原(图 5)。
Base64 编码既无法提供任何加密保护,对扩展程序本身也没有任何功能增益。相反,这种做法会通过隐藏目标域名,并将攻击载荷的重定向延迟至运行时,从而增加了人工检查与自动化静态分析的难度。
随后,这些解码后的值被用于重构在扩展程序的剩余执行过程中应用的导航规则。
完成初始化后,后台服务工作器会利用 webNavigation API 持续监控用户的浏览活动(图 6)。
由于每次导航操作都会被处理,因此该扩展程序能够有效监控用户的浏览会话,而无论所访问的网站是否与其宣称的功能相关(图 7)。
一旦主机名与某条远程提供的规则相匹配,该扩展程序便会调用 chrome.tabs.update() 悄无声息地替换活动标签页。
与硬编码的重定向攻击活动不同,其目标 URL 是根据已下载的配置文件动态重构的,而不是直接嵌入在扩展程序内部。
由于重定向目标是远程动态提供的,而不是嵌入在扩展程序内部,因此幕后操纵者可以随时更改攻击活动的目标,而无需在浏览器商店中发布新的更新。
归因本质上极具挑战性;然而在本次事件中,多项证据将此次攻击活动指向了一位讲韩语的攻击者(无论其是有组织的团伙还是个人)。观察到的迹象包括:
代码库中的韩语标识符
韩语本地化资源
韩语注释和开发工件
在联盟推广集群中使用了韩国购物服务
贯穿整个攻击活动的最紧密的技术关联在于,这些扩展程序不仅共用了一个远程配置端点,而且后台服务工作器的实现也几乎相同。
代码、基础架构、遥测数据以及存储设计的重复使用强烈表明,这些扩展程序由一个攻击者或紧密协作的团伙集中开发,而并非来自彼此无关的扩展程序发布者。
此攻击活动表明,现代恶意浏览器扩展程序已从孤立的恶意软件演进为了可远程管理的平台。尽管这些扩展程序将自身伪装成毫无关联的生产力工具,但它们却共享相同的基础架构、代码库以及远程配置框架。
幕后操控者并未将恶意逻辑直接嵌入扩展程序内部,而是将关键行为外置于受攻击者控制的配置文件中,这种设计使得攻击活动能够在扩展程序通过浏览器商店审核后的很长一段时间内持续演进。
结合此前发现的由同一发布者运营的另一个联盟欺诈集群,这些结果表明,当前存在一个活跃的生态系统,能够同时支持多种变现途径与攻击策略。
| ID | 名称 | 安装次数 | 存储 |
|---|---|---|---|
ID | 名称 | 安装次数 | 存储 |
dblfldpldecohjpjgmhnigajjdjloega | Youtube Detox: Reclaim Your Time, Stay Focused! | 56 | Google Chrome |
ofgiffiieajicdflklkoapgndinhfacm | Eye Rest Reminder
| 91 | Google Chrome |
nokclhllnnnahhfbpibpmnahpepahklo | Youtube Detox: Reclaim Your Time, Stay Focused!
| 25 | Microsoft Edge |
kdkfbahpggclmigankbnjgmhimfoijkk | Eye Rest Reminder
| 24 | Microsoft Edge |
hgcmokdfbgnakiifclhfifdphfofmngp | Quick Memo
| 89 | Google Chrome |
ffjagifkdpammmgijbglgkklomipinem | Quick Memo
| 127 | Microsoft Edge |
mfnlknmbkfnlgcjebdogolbakcekohfj | KoreaDropdown
| 825 | Google Chrome |
ddbhcdcfllihhljfboihdbpfddibkjjg | Language Learning
| 38 | Microsoft Edge |
ekoglbhkaeljnakpledcdpfojbjdllmb | YouTube Summary
| 51 | Microsoft Edge |
pllpmojagjlnbclefckhdebmlkjhhcfh | Air Quality Monitor | 17 | Google Chrome |
cogfipmojjaephpnihpeemgdmofhnaaj | SnapShot | 69 | Google Chrome |
pppcpccgdjdniohmegcejgamdnhilkml | SnapShot | 18 | Microsoft Edge |
coohonllohmhpbklloifbjjibeggijol | Copy as Markdown
| 102 | Microsoft Edge |
bjdlhcllmhaiigiaibaoihlmheomjjgo | YouTube Enhancer
| 32 | Microsoft Edge |
bodnffdkjnpeholiplcncfegnliheamk | SEO Toolkit
| 35 | Microsoft Edge |
ahagmkpannaempjmlijhejhaajoiibel | Text Counter - Word & Character Count | 8 | Microsoft Edge |
ahemlacbncnpikgfoegfjfendahcahdl | Web Highlighter - Highlight Text on Pages
| 10 | Microsoft Edge |
ieigeddfggngchfecpibaikoebaenpgm | Page Ruler - Measure Pixels on Screen | 27 | Microsoft Edge |
bahnaggfidlcllmceahngpllpaahkbkd | Video Speed Controller - Playback Speed
| 13 | Microsoft Edge |
pncbphagfmgfopmhlbkifoonnbfdihbm | Tab Manager - Organize & Search Tabs | 5 | Microsoft Edge |
hbjfkpmmomlaghbembkhhaaegbnlaicf | Scroll to Top - Back to Top Button | 35 | Microsoft Edge |
nehmipanmmnkdpbjjfinnnlficndfhhd | Web Highlighter - Highlight Text on Pages | 60 | Google Chrome |
eobmkhocignkllbfigodhemdefbjldcb | Video Speed Controller - Playback Speed | 108 | Google Chrome |
gajghfhmgcemdgjkamllmoejhkklphnc | Holiday D-day
| 18 | Google Chrome |
pifjjafdfdkglnnkeahlcndkmknlgocm | Reaction Time Test - New Tab Game | 60 | Google Chrome |
ndoihodpeipgbogeecdiphdkjpcjoofp | Page Ruler - Measure Pixels on Screen | 38 | Google Chrome |
bjokekhmbkkgohiedecgkkfgppoghjji | Reading Time — Article Read Time Calculator | 19 | Google Chrome |
efieelkohffbjnblcmomcejjbapaipnh | Scroll to Top - Back to Top Button | 11 | Google Chrome |
gbgdekgkmaaamplkcdaanpdokmjjcdbm | Image Downloader - Save All Images | 29 | Google Chrome |
fkddfdhkgfneiibakfdhgpbkkcnnlook | GitHub 한국어 (GitHub Korean) | 4,000 | Google Chrome |
ebkkpkifaojdccgpaldnpclompdojmbh | SEO Toolkit
| 22 | Google Chrome |
iclkfegmbldfjjlgngidahinmhogbfna | Auto Scroll - Hands Free Page Scroller | 78 | Google Chrome |
jocoenanieejnoookkphbljadiahaopd | YouTube Summary
| 27 | Google Chrome |
https://cdn.jsdelivr.net/gh/chosanghyeon-dev/chosanghyeon-dev@main/cf.json
https://link.coupang.com/a/dUnRI6
https://link.coupang.com/a/ej6z6U
api.pvmf.workers.dev
indie05hacker@gmail.com
| 战术 | 技术 |
|---|---|
初始访问 | LX3.003 (T1199) — 受信任的关系 |
防御规避 | LX7.003 (T1140) — 代码混淆/去混淆 |
防御规避 | LX7.021 — 欺骗性流量清洗 |
凭据访问权限 | LX8.008 — 网络篡改 |
收集 | LX10.012 (T1114) — Web 通信数据 |
用户应仔细审查其环境中安装的浏览器扩展程序并移除那些不再需要的扩展程序,尤其是哪些申请了与自身所宣称功能无关的广泛权限(例如 <all_urls>、webNavigation 或 tabs)的扩展程序。
企业应持续监控浏览器扩展程序是否存在可疑的权限组合、远程配置获取以及导航操纵能力,同时必须将受远程控制的扩展程序视为持续性的攻击平台,而非静态的浏览器插件。
浏览器供应商可通过以下方式进一步降低此风险:根据共享的代码与基础架构来识别扩展程序家族,同时扩大审核流程范围,对那些能在发布后改变扩展程序行为的外部托管配置文件进行检查。