编程笔记

lifelong learning & practice makes perfect

(译)430万浏览器被感染,揭秘 ShadyPanda 持续 7 年的恶意软件活动

引言

Koi 的研究人员发现了一个名为 ShadyPanda 的威胁组织——他们发起并维持了一场持续七年的浏览器扩展活动,已感染约 430 万名 Chrome 与 Edge 用户。

我们的调查揭示了两个仍然活跃的行动:

  • 一个约 30 万用户的 RCE(远程代码执行)后门:五个扩展在多年合法运营后于 2024 年中期被武器化,其中包括曾被标记为“Featured”(精选)和“Verified”(已验证)的 Clean Master。这些扩展每小时都会运行远程代码执行框架——下载并执行具有完整浏览器访问权限的任意 JavaScript。它们监控每次网站访问,窃取经过加密的浏览历史,并收集完整的浏览器指纹。
  • 一个约 400 万用户的间谍软件行动:来自同一发行商的另外五个扩展(其中 WeTab 单独安装量约 300 万)正在积极收集每次访问的 URL、搜索查询与鼠标点击等数据,并将这些数据传回位于中国的服务器。

ShadyPanda 的一些扩展曾被 Google 推荐和验证,从而获得了即时信任和大规模分发。七年来,该组织学会了如何武器化浏览器市场——建立信任、积累用户,并通过静默更新进行攻击。

Clean Master — 曾被 Google 推荐的恶意扩展

阶段 1:壁纸骗局(145 个扩展)

ShadyPanda 的第一次活动简单但规模庞大,发生在 2023 年。共有 145 个扩展,分布在两个市场——Chrome 网上应用店有 20 个,发布商为 nuggetsno15;Microsoft Edge 有 125 个,发布商为 rocket Zhang。所有这些都伪装成壁纸或生产力应用程序。

这波攻击是一次简单的联盟营销欺诈(affiliate fraud)。每当用户点击 eBay、Amazon 或 Booking.com 时,ShadyPanda 的扩展会悄悄注入联盟跟踪代码,从而在每次购买中获得隐藏佣金。这些扩展还部署了 Google Analytics 跟踪,以便把浏览数据货币化——每次网站访问、搜索查询与点击模式都被记录并出售。

这个阶段并不复杂,但很成功,ShadyPanda 学到了三个重要的教训:

  • Chrome 的审核过程侧重于初次提交,而非持续行为
  • 用户信任安装量高且评价积极的扩展
  • 耐心是值得的——有些扩展在被检测到之前运行了数月。你看起来越合法,造成的损害就越大。

阶段 2:搜索劫持演变

ShadyPanda 变得更大胆了。下一波攻击发生在 2024 年初,从被动货币化转向主动浏览器控制。

Infinity V+ 是这一阶段的典型例子。它伪装成新标签页类的生产力工具,但劫持了若干核心浏览器功能:

  • 搜索重定向:每次网络搜索都会通过 trovi.com(一个已知的浏览器劫持者)进行重定向。搜索查询会被记录、货币化并出售,搜索结果也被篡改以牟利。

  • Cookie 窃取:扩展程序读取特定域的 Cookie,并将跟踪数据发送到 nossl.dergoodting.com。创建了唯一的标识符来监控浏览活动。所有这些都未经同意或披露。
    Cookie 窃取

  • 搜索查询收集:搜索框中的每个按键都会发送到外部服务器(s-85283.gotocdn[.]com 和 s-82923.gotocdn[.]com)。在你按下回车键之前,它们就能实时分析用户兴趣。扩展会捕获部分查询、拼写错误与更正,从而构建出你思考搜索问题时的细粒度轨迹。所有这些流量通过未加密的 HTTP 连接传输,使数据容易被拦截和货币化。这不仅记录你搜索的内容,还记录你如何思考搜索。

ShadyPanda 正在学习并变得更具侵略性。但他们仍然被抓住了。扩展程序在部署后的几周或几个月内就被报告并移除。

他们需要一个更好的策略。

阶段 3:长期博弈

五个扩展。其中三个在 2018-2019 年上传——包括拥有 20 万以上安装量的 Clean Master。所有这些都合法运营多年,获得了特色和验证状态。

策略:建立信任,积累用户,然后通过一次更新进行武器化。

在武器化之前,ShadyPanda 部署了隐蔽的安装追踪来优化分发策略——这是一次数据驱动的恶意软件开发过程。

2024 年中期:在积累了约 30 万个安装后,ShadyPanda 推送了恶意更新。借助 Chrome 与 Edge 的受信任自动更新机制,用户自动被感染。所有五个扩展随后都开始运行相同的恶意代码。
Koidex 免费速度测试专业版报告

远程代码执行:定时任务

每台受感染的浏览器都会运行一个远程代码执行框架。该框架每小时轮询 api.extensionplay[.]com,获取新指令,下载任意 JavaScript 并以完整的浏览器 API 权限执行。
远程代码执行

这并非功能固定的恶意软件,而是一个后门。ShadyPanda 决定其行为。今天可能是监视,明天就可能是勒索软件、凭证窃取或企业间谍活动。更新机制自动运行,每小时一次,永不停歇。

完整的浏览器监控

当前的有效载荷监控每次网站访问,并将加密数据窃取到 ShadyPanda 的服务器:
数据窃取示意图

被收集/窃取的数据包括:

  • 每次访问的 URL,包含完整的浏览历史
  • 显示导航模式的 HTTP 引用者
  • 用于活动分析的时间戳
  • 持久的 UUIDv4 标识(存储于 chrome.storage.sync,可跨设备同步)
  • 完整的浏览器指纹:用户代理、语言、平台、屏幕分辨率、时区
  • 所有数据在发送到 api.cleanmasters.store 之前都经过 AES 加密

规避与攻击能力

  • 反分析:恶意代码会检测到开发者工具的打开并切换为良性行为以规避分析。代码高度混淆(变量名被缩短),并通过一个约 158KB 的 JavaScript 解释器执行以规避内容安全策略(CSP)。
  • 中间人攻击:通过 service worker 可拦截和修改网络请求,用恶意脚本替换合法的 JavaScript 文件,从而实施凭证窃取、会话劫持,甚至向任意网站(包括 HTTPS 站点)注入内容。

ShadyPanda 可以每小时更新其中任何一项功能。尽管这些扩展最近已从应用商店中移除,但其全面攻击的基础设施仍部署在所有受感染的浏览器上。

阶段 4:间谍软件帝国(5 个扩展,400 万以上用户)

然而,ShadyPanda 最重要的行动并非 Clean Master。Edge 版 Clean Master 的同一发行商 Starlab Technology 于 2023 年左右在 Microsoft Edge 上推出了另外 5 个扩展,累计安装量超过 400 万。

问题在于:所有 5 个扩展仍在 Microsoft Edge 市场中活跃。与第三阶段被移除的扩展不同,这个针对 400 万用户的监控操作目前仍在进行中。

其中两个是全面的间谍软件。旗舰产品 WeTab 新标签页(WeTab New Tab Page)仅一个就拥有 300 万安装量,它伪装成一个生产力工具,却是一个复杂的监控平台。
WeTab 新标签页图片

全面数据收集

WeTab 收集并将大量用户数据窃取到 17 个不同的域(中国的 8 个百度服务器、中国的 7 个 WeTab 服务器和 Google Analytics):
WeTab 数据收集示意图

收集的内容:

  • 每次访问的 URL——完整的浏览历史实时传输
  • 所有搜索查询——对用户搜索内容的按键级别监控
  • 像素级精度的鼠标点击跟踪——X/Y 坐标和元素识别
  • 浏览器指纹识别——屏幕分辨率、语言、时区、用户代理
  • 页面交互数据——页面停留时间、滚动行为、活跃浏览时间
  • 存储访问——读取 localStorage、sessionStorage,并可访问所有 cookie

第四阶段的规模远超 Clean Master 行动:感染用户达 400 万,而后者仅为 30 万。这些扩展仍在 Microsoft Edge 市场中活跃——它们已经拥有危险的权限,包括访问所有 URL 和 cookie,用户现在仍在下载它们。ShadyPanda 可以随时推送更新,利用第三阶段相同的 RCE 后门框架,或者更糟糕的东西,来武器化这 400 万个浏览器。基础设施已就位。权限已授予。更新机制自动运行。

七年利用

ShadyPanda 的成功不仅仅在于技术上的复杂性。它在于七年来系统地利用了同一个漏洞:应用商店在提交时审查扩展。它们不会监控批准后发生的事情。

将所有这些活动联系在一起的是:代码签名相似性、重叠的基础设施、随着时间演变而相同的混淆技术。同一个行为者。不同的伪装。每个阶段都从上一个阶段中学习——从粗糙的联盟欺诈到耐心的五年运营。

自动更新机制——旨在确保用户安全——变成了攻击向量。Chrome 和 Edge 受信任的更新管道悄无声息地向用户分发恶意软件。没有网络钓鱼。没有社会工程。只有带有静默版本更新的受信任扩展,将生产力工具变成了监控平台。

ShadyPanda 控制着接下来会发生什么:会话劫持、凭证收集、账户接管、通过受损开发者进行的供应链攻击。对于企业而言,受感染的开发者工作站意味着代码库被入侵和 API 密钥被盗。基于浏览器的 SaaS 平台、云控制台和内部工具的身份验证意味着每次登录对 ShadyPanda 都是可见的。扩展绕过了传统的安全控制。ShadyPanda 已在您的网络中潜伏了一年多。

系统性问题不仅仅是一个恶意行为者。而是安全模型鼓励了这种行为:

  • 构建合法的东西
  • 通过审查并获得信任信号(安装量、评论、验证徽章)
  • 积累庞大的用户群
  • 通过更新进行武器化
  • 在被检测到之前获利

ShadyPanda 证明了这种方法是有效的。现在,每个老练的威胁行为者都知道这个套路。

最终思考

一个耐心的威胁行为者和一个教训:信任是脆弱点。

ShadyPanda 证明,市场仍然以七年前的方式审查扩展——提交时进行静态分析,批准后信任,没有持续监控。Clean Master 合法运营了五年。静态分析无法捕捉到这一点。

这篇报告由 Koi Security 的研究团队撰写。

Koi 就是为此而生:对团队从市场获取的扩展进行行为分析与风险评分。我们关注的是扩展安装后的实际行为,而不是其宣称的功能。

威胁指标(IOCS)

C&C 域:

  • extensionplay[.]com
  • yearnnewtab[.]com
  • api.cgatgpt[.]net

窃取域:

  • dergoodting[.]com
  • yearnnewtab[.]com
  • cleanmasters[.]store
  • s-85283.gotocdn[.]com
  • s-82923.gotocdn[.]com

Chrome 扩展:

  • eagiakjmjnblliacokhcalebgnhellfi
  • ibiejjpajlfljcgjndbonclhcbdcamai
  • ogjneoecnllmjcegcfpaamfpbiaaiekh
  • jbnopeoocgbmnochaadfnhiiimfpbpmf
  • cdgonefipacceedbkflolomdegncceid
  • gipnpcencdgljnaecpekokmpgnhgpela
  • bpgaffohfacaamplbbojgbiicfgedmoi
  • ineempkjpmbdejmdgienaphomigjjiej
  • nnnklgkfdfbdijeeglhjfleaoagiagig
  • Mljmfnkjmcdmongjnnnbbnajjdbojoci
  • llkncpcdceadgibhbedecmkencokjajg
  • nmfbniajnpceakchicdhfofoejhgjefb
  • ijcpbhmpbaafndchbjdjchogaogelnjl
  • olaahjgjlhoehkpemnfognpgmkbedodk
  • gnhgdhlkojnlgljamagoigaabdmfhfeg
  • cihbmmokhmieaidfgamioabhhkggnehm
  • lehjnmndiohfaphecnjhopgookigekdk
  • hlcjkaoneihodfmonjnlnnfpdcopgfjk
  • hmhifpbclhgklaaepgbabgcpfgidkoei
  • lnlononncfdnhdfmgpkdfoibmfdehfoj
  • nagbiboibhbjbclhcigklajjdefaiidc
  • ofkopmlicnffaiiabnmnaajaimmenkjn
  • ocffbdeldlbilgegmifiakciiicnoaeo
  • eaokmbopbenbmgegkmoiogmpejlaikea
  • lhiehjmkpbhhkfapacaiheolgejcifgd
  • ondhgmkgppbdnogfiglikgpdkmkaiggk
  • imdgpklnabbkghcbhmkbjbhcomnfdige

Edge 附加组件:

  • bpelnogcookhocnaokfpoeinibimbeff
  • enkihkfondbngohnmlefmobdgkpmejha
  • hajlmbnnniemimmaehcefkamdadpjlfa
  • aadnmeanpbokjjahcnikajejglihibpd
  • ipnidmjhnoipibbinllilgeohohehabl
  • fnnigcfbmghcefaboigkhfimeolhhbcp
  • nlcebdoehkdiojeahkofcfnolkleembf
  • fhababnomjcnhmobbemagohkldaeicad
  • nokknhlkpdfppefncfkdebhgfpfilieo
  • ljmcneongnlaecabgneiippeacdoimaa
  • onifebiiejdjncjpjnojlebibonmnhog
  • dbagndmcddecodlmnlcmhheicgkaglpk
  • fmgfcpjmmapcjlknncjgmbolgaecngfo
  • kgmlodoegkmpfkbepkfhgeldidodgohd
  • hegpgapbnfiibpbkanjemgmdpmmlecbc
  • gkanlgbbnncfafkhlchnadcopcgjkfli
  • oghgaghnofhhoolfneepjneedejcpiic
  • fcidgbgogbfdcgijkcfdjcagmhcelpbc
  • nnceocbiolncfljcmajijmeakcdlffnh
  • domfmjgbmkckapepjahpedlpdedmckbj
  • cbkogccidanmoaicgphipbdofakomlak
  • bmlifknbfonkgphkpmkeoahgbhbdhebh
  • ghaggkcfafofhcfppignflhlocmcfimd
  • hfeialplaojonefabmojhobdmghnjkmf
  • boiciofdokedkpmopjnghpkgdakmcpmb
  • ibfpbjfnpcgmiggfildbcngccoomddmj
  • idjhfmgaddmdojcfmhcjnnbhnhbmhipd
  • jhgfinhjcamijjoikplacnfknpchndgb
  • cgjgmbppcoolfkbkjhoogdpkboohhgel
  • afooldonhjnhddgnfahlepchipjennab
  • fkbcbgffcclobgbombinljckbelhnpif
  • fpokgjmlcemklhmilomcljolhnbaaajk
  • hadkldcldaanpomhhllacdmglkoepaed
  • iedkeilnpbkeecjpmkelnglnjpnacnlh
  • hjfmkkelabjoojjmjljidocklbibphgl
  • dhjmmcjnajkpnbnbpagglbbfpbacoffm
  • cgehahdmoijenmnhinajnojmmlnipckl
  • fjigdpmfeomndepihcinokhcphdojepm
  • chmcepembfffejphepoongapnlchjgil
  • googojfbnbhbbnpfpdnffnklipgifngn
  • fodcokjckpkfpegbekkiallamhedahjd
  • igiakpjhacibmaichhgbagdkjmjbnanl
  • omkjakddaeljdfgekdjebbbiboljnalk
  • llilhpmmhicmiaoancaafdgganakopfg
  • nemkiffjklgaooligallbpmhdmmhepll
  • papedehkgfhnagdiempdbhlgcnioofnd
  • glfddenhiaacfmhoiebfeljnfkkkmbjb
  • pkjfghocapckmendmgdmppjccbplccbg
  • gbcjipmcpedgndgdnfofbhgnkmghoamm
  • ncapkionddmdmfocnjfcfpnimepibggf
  • klggeioacnkkpdcnapgcoicnblliidmf
  • klgjbnheihgnmimajhohfcldhfpjnahe
  • acogeoajdpgplfhidldckbjkkpgeebod
  • ekndlocgcngbpebppapnpalpjfnkoffh
  • elckfehnjdbghpoheamjffpdbbogjhie
  • dmpceopfiajfdnoiebfankfoabfehdpn
  • gpolcigkhldaighngmmmcjldkkiaonbg
  • dfakjobhimnibdmkbgpkijoihplhcnil
  • hbghbdhfibifdgnbpaogepnkekonkdgc
  • fppchnhginnfabgenhihpncnphhafmac
  • ghhddclfklljabeodmcejjjlhoaaiban
  • bppelgkcnhfkicolffhlkbdghdnjdkhi
  • ikgaleggljchgbihlaanjbkekmmgccam
  • bdhjinjoglaijpffoamhhnhooeimgoap
  • fjioinpkgmlcioajfnncgldldcnabffe
  • opncjjhgbllenobgbfjbblhghmdpmpbj
  • cbijiaccpnkbdpgbmiiipedpepbhioel
  • fbbmnieefocnacnecccgmedmcbhlkcpm
  • hmbacpfgehmmoloinfmkgkpjoagiogai
  • paghkadkhiladedijgodgghaajppmpcg
  • bafbmfpfepdlgnfkgfbobplkkaoakjcl
  • kcpkoopmfjhdpgjohcbgkbjpmbjmhgoi
  • jelgelidmodjpmohbapbghdgcpncahki
  • lfgakdlafdenmaikccbojgcofkkhmolj
  • hdfknlljfbdfjdjhfgoonpphpigjjjak
  • kpfbijpdidioaomoecdbfaodhajbcjfl
  • fckphkcbpgmappcgnfieaacjbknhkhin
  • lhfdakoonenpbggbeephofdlflloghhi
  • ljjngehkphcdnnapgciajcdbcpgmpknc
  • ejfocpkjndmkbloiobcdhkkoeekcpkik
  • ccdimkoieijdbgdlkfjjfncmihmlpanj
  • agdlpnhabjfcbeiempefhpgikapcapjb
  • mddfnhdadbofiifdebeiegecchpkbgdb
  • alknmfpopohfpdpafdmobclioihdkhjh
  • hlglicejgohbanllnmnjllajhmnhjjel
  • iaccapfapbjahnhcmkgjjonlccbhdpjl
  • ehmnkbambjnodfbjcebjffilahbfjdml
  • ngbfciefgjgijkkmpalnmhikoojilkob
  • laholcgeblfbgdhkbiidbpiofdcbpeeo
  • njoedigapanaggiabjafnaklppphempm
  • fomlombffdkflbliepgpgcnagolnegjn
  • jpoofbjomdefajdjcimmaoildecebkjc
  • nhdiopbebcklbkpfnhipecgfhdhdbfhb
  • gdnhikbabcflemolpeaaknnieodgpiie
  • bbdioggpbhhodagchciaeaggdponnhpa
  • ikajognfijokhbgjdhgpemljgcjclpmn
  • lmnjiioclbjphkggicmldippjojgmldk
  • ffgihbmcfcihmpbegcfdkmafaplheknk
  • lgnjdldkappogbkljaiedgogobcgemch
  • hiodlpcelfelhpinhgngoopbmclcaghd
  • mnophppbmlnlfobakddidbcgcjakipin
  • jbajdpebknffiaenkdhopebkolgdlfaf
  • ejdihbblcbdfobabjfebfjfopenohbjb
  • ikkoanocgpdmmiamnkogipbpdpckcahn
  • ileojfedpkdbkcchpnghhaebfoimamop
  • akialmafcdmkelghnomeneinkcllnoih
  • eholblediahnodlgigdkdhkkpmbiafoj
  • ipokalojgdmhfpagmhnjokidnpjfnfik
  • hdpmmcmblgbkllldbccfdejchjlpochf
  • iphacjobmeoknlhenjfiilbkddgaljad
  • jiiggekklbbojgfmdenimcdkmidnfofl
  • gkhggnaplpjkghjjcmpmnmidjndojpcn
  • opakkgodhhongnhbdkgjgdlcbknacpaa
  • nkjomoafjgemogbdkhledkoeaflnmgfi
  • ebileebbekdcpfjlekjapgmbgpfigled
  • oaacndacaoelmkhfilennooagoelpjop
  • ljkgnegaajfacghepjiajibgdpfmcfip
  • hgolomhkdcpmbgckhebdhdknaemlbbaa
  • bboeoilakaofjkdmekpgeigieokkpgfn
  • dkkpollfhjoiapcenojlmgempmjekcla
  • emiocjgakibimbopobplmfldkldhhiad
  • nchdmembkfgkejljapneliogidkchiop
  • lljplndkobdgkjilfmfiefpldkhkhbbd
  • hofaaigdagglolgiefkbencchnekjejl
  • hohobnhiiohgcipklpncfmjkjpmejjni
  • jocnjcakendmllafpmjailfnlndaaklf
  • bjdclfjlhgcdcpjhmhfggkkfacipilai
  • ahebpkbnckhgjmndfjejibjjahjdlhdb
  • enaigkcpmpohpbokbfllbkijmllmpafm
  • bpngofombcjloljkoafhmpcjclkekfbh
  • cacbflgkiidgcekflfgdnjdnaalfmkob
  • ibmgdfenfldppaodbahpgcoebmmkdbac

其他报道

欢迎关注我的其它发布渠道