LayerX 研究團隊(現已加入 Akamai)發現一波協同運作的攻擊活動,涉及散布於 Chrome 線上應用程式商店與 Microsoft Edge 附加元件商店的 32 款惡意瀏覽器擴充功能,受影響使用者超過 6,150人。
這些擴充功能偽裝成無害的生產力工具,例如字數統計工具、筆記應用程式及 YouTube 功能增強工具,藉此建立信任,卻在暗中蒐集資料並監控使用者的瀏覽習慣。
靜態分析發現,這些擴充功能的程式碼、遠端設定端點幾乎相同,並留有韓文開發痕跡。這些證據強烈顯示,這批擴充功能與同一個使用韓語的威脅行為者有關。
操作者使用存放於外部的設定檔,並在執行階段進行去混淆處理,以操控網頁瀏覽導向及從事聯盟行銷詐欺,無須透過官方商店的審查流程發布更新。
因應這類會動態改變行為的威脅,必須移除不再需要、卻擁有廣泛權限(如webNavigation、<all_urls>)的擴充功能,監控遠端命令與控制(Command and Control,C2)基礎架構,並將外部設定來源納入瀏覽器商店的審查範圍。
瀏覽器擴充功能已成為威脅行為者持續存取使用者瀏覽活動最有效的途徑之一。相較於傳統惡意程式,惡意擴充功能承接了使用者對其功能的信任,直接在瀏覽器內執行,而且往往只需安裝一次,就能長期保持運作。
LayerX 研究團隊(現已加入 Akamai)在持續針對 Chrome 線上應用程式商店與 Microsoft Edge 附加元件商店進行威脅獵捕時,辨識出一波協同運作的瀏覽器擴充功能攻擊活動,涉及 32 款惡意擴充功能,合計影響超過 6,150 名使用者。
乍看之下,這些擴充功能似乎彼此無關。它們以各種生產力工具的面貌出現,包括文字工具、YouTube 功能增強工具、搜尋引擎最佳化(SEO)輔助工具、筆記應用程式、語言助理、Markdown工具,以及其他方便使用瀏覽器的功能。每款產品都使用不同品牌,宣傳不同的功能。
然而,在這些表面差異之下,多數擴充功能共用幾乎相同的基礎架構,顯示它們可能源自同一套開發框架。此外,所有擴充功能都具有共通的韓文本地化資源、韓文註解及其他開發痕跡。
這些共通特徵進一步支持我們的研判:這些擴充功能屬於同一波攻擊活動,並由同一個威脅行為者開發;該行為者可能是有組織的團體,也可能是個人。
我們的分析顯示,多數擴充功能具有以下行為與特徵:
持續監控使用者的瀏覽活動。
從相同的遠端基礎架構取得由攻擊者控制的設定檔。
解碼遠端指令,並將其快取至本機。
動態決定哪些網站會觸發額外操作。
共用幾乎相同的背景 Service Worker 實作。
使用相同的遙測事件、儲存結構與瀏覽導向邏輯。
更令人擔憂的是,這波攻擊仰賴遠端設定,讓操作者能在擴充功能發布後修改其行為,而不必在瀏覽器商店更新擴充功能。雖然我們主要觀察到的是瀏覽遙測資料蒐集與流量操控,但相同架構也很容易被改作網路釣魚、惡意程式投遞或憑證竊取之用。
除了這波主要攻擊活動,LayerX研究人員還發現另一批由同一發布者帳號上架的惡意擴充功能。在分析當時,這批擴充功能主要從事聯盟行銷詐欺,自動將使用者透過聯盟行銷連結重新導向,以取得未經授權的佣金。
這波攻擊活動自 2025 年 3 月起持續運作,顯示惡意瀏覽器擴充功能正從各自獨立的威脅,演變為可遠端管理的平台,即使通過瀏覽器商店審查已久,仍能改變功能。
與這波攻擊活動相關的最早一批擴充功能於 2025 年 3 月出現,之後數個月仍持續有其他擴充功能發布。
操作者並非反覆上架同一款擴充功能,而是持續推出以相同底層框架建置的新變種。
LayerX 研究人員辨識出的規模如下:
散布管道包括:
Google Chrome 線上應用程式商店。
Microsoft Edge 附加元件商店。
超過 6,150 名使用者受到影響。
這些擴充功能偽裝成看似互不相關的工具,包括:
字數統計工具。
Markdown 工具。
YouTube 功能增強工具。
影片播放速度控制工具。
SEO 工具。
語言助理。
筆記工具。
頁面捲動工具。
AI 相關輔助工具。
雖然這些擴充功能看似彼此無關,靜態分析卻發現,多數都重複使用幾乎相同的背景 Service Worker、遙測邏輯、儲存結構與瀏覽導向處理方式。除了品牌素材和對外宣傳的功能外,底層實作大致不變,強烈顯示它們是由共用的開發框架產生。
單獨檢視時,沒有哪一款擴充功能顯得特別突出。它們各自宣傳看似合理的生產力功能,使用自己的品牌,而且使用者規模相對小。只有交叉比對發布者資訊、程式碼相似度、共用遠端基礎架構與執行階段行為,才能看出背後更大範圍的攻擊活動。
圖 1
說明現今的瀏覽器擴充功能攻擊如何將惡意功能分散到許多看似無關的擴充功能中,讓威脅即使公開存在,也不容易被察覺。

圖 1 攻擊流程
圖中文字:使用者瀏覽網頁後,擴充功能透過 chrome.webNavigation 監控所有已完成的瀏覽導向;接著從 jsDelivr CDN 取得 cf.json 遠端設定檔,進行Base64 碼與解析,還原目標主機名稱、重新導向網址、內部識別碼及規則中繼資料。系統比對造訪的主機名稱與設定規則後,可透過chrome.tabs.update()將使用者導向攻擊者控制的目的地,並蒐集瀏覽活動、傳送至攻擊者伺服器。view_site遙測事件則記錄造訪的主機名稱、時間戳記等資訊。
分析共用程式碼後,我們發現多數變種都具備下列四項核心能力:
持續運作的 C2 通訊與遠端設定擷取。
設定資料去混淆。
瀏覽活動監控。
透過遠端控制操控瀏覽導向。
多數擴充功能並未將操作邏輯全數內嵌於套件,而是從同一個由 jsDelivr 代管的端點取得遠端設定檔,如圖 2 所示。

圖 2 遠端設定檔網址
圖中網址指向存放於 GitHub、經由 jsDelivr CDN 提供的 cf.json 設定檔。完整網址列於本文的入侵指標。
下載完成後,設定資料會經過解析,並快取於本機:
await chrome.storage.session.set({
nav_cfg_cache: parsedConfig
});
使用遠端設定大幅提升了這波攻擊的彈性。操作者只需修改設定檔,就能改變擴充功能的行為,無須透過Chrome 線上應用程式商店或 Microsoft Edge附加元件商店發布新版本。因此,他們能立即更新目標網站、重新導向目的地或攻擊邏輯,而不會再次觸發瀏覽器商店的審查。
調查期間,我們觀察到遠端設定多次變更。其中一個時間點,設定內容完全空白,顯示相關基礎架構可能曾暫時停用或重設,如圖 3 所示。

圖 3 空白設定
圖中 config 陣列為空,對應研究期間觀察到設定暫時清空的狀態。
數天後,設定檔中出現了聯盟行銷流量重新導向規則。這證明攻擊活動的行為是透過遠端設定持續管理,而非以固定形式內嵌於擴充功能中,如圖 4 所示。

圖 4 更新後的設定
更新後的設定檔包含多組規則與編碼資料,顯示操作者可透過遠端設定調整擴充功能行為。
下載的設定資料並非以明文值儲存。主機名稱、重新導向酬載及內部識別碼都經過 Base64 編碼,並在執行階段重建,如圖 5 所示。

圖 5 Base64 解碼
圖中以 atob() 解碼 tags、payload 與 id 等欄位,重建主機名稱、重新導向資料及儲存鍵值。
Base64
編碼不提供密碼學上的保護,對擴充功能本身也沒有功能上的益處。它的作用是將目標網域與重新導向酬載隱藏到執行階段才還原,增加人工檢查與自動化靜態分析所需的成本。
解碼後的值會用來重建瀏覽導向規則,供擴充功能後續執行時使用。
初始化後,背景 Service Worker 會透過 webNavigation API 持續監控使用者的瀏覽活動,如圖 6 所示。

圖 6 onCompleted 事件監聽設定
圖中為 chrome.webNavigation.onCompleted 的事件監聽程式,並檢查 frameId、網址通訊協定與主機名稱。
由於每次完成的瀏覽導向都會受到處理,不論造訪的網站是否與擴充功能宣傳的用途相關,擴充功能實際上都能觀察使用者的瀏覽工作階段,如圖 7 所示。

圖 7 擷取瀏覽活動
圖中以 view_site 事件記錄瀏覽活動,傳入 extension、site 與 url 等欄位。
當主機名稱符合遠端提供的任一規則時,擴充功能就會呼叫 chrome.tabs.update(),在使用者不知情的情況下變更目前分頁的頁面。
相較於將重新導向網址寫死的攻擊活動,這裡的目的地 URL 是根據下載的設定資料動態重建,而非直接內嵌於擴充功能。
由於重新導向目的地由遠端提供,操作者可隨時變更攻擊目標,不必向瀏覽器商店發布新的更新版本。
攻擊歸因本來就相當困難;不過,在這個案例中,多項證據將這波攻擊活動與一個使用韓語的威脅行為者連結起來。該行為者可能是有組織的團體,也可能是個人。觀察到的線索包括:
程式碼中的韓文識別名稱。
韓文本地化資源。
韓文註解與開發痕跡。
從事聯盟行銷詐欺的擴充功能群組使用韓國購物服務。
整波攻擊活動中,最強的技術關聯是共用的遠端設定端點,以及幾乎相同的背景 Service Worker 實作。
程式碼、基礎架構、遙測機制與儲存設計的重複使用,強烈顯示這些擴充功能由單一威脅行為者或密切協作的團體集中開發,而非出自互不相關的發布者。
這波攻擊活動顯示,現今的惡意瀏覽器擴充功能已從各自獨立的惡意程式,演變成可遠端管理的平台。儘管它們以互不相關的生產力工具自居,卻共用相同的基礎架構、程式碼與遠端設定框架。
操作者將關鍵行為移至由攻擊者控制的外部設定檔,無須把惡意邏輯全部直接內嵌於擴充功能,因此即使通過瀏覽器商店審查已久,攻擊活動仍能持續變化。
再加上研究人員發現由同一批發布者操作的另一組聯盟行銷詐欺擴充功能,這些結果顯示,背後存在一個仍在運作的生態系,能同時支援多種獲利模式與攻擊策略。
擴充功能名稱、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
| 戰術 | 技術 |
|---|---|
| 初始存取 | LX3.003(T1199)— 信任關係 |
| 規避防禦 | LX7.003(T1140)— 程式碼混淆與去混淆 |
| 規避防禦 | LX7.021 — 欺騙性流量洗白 |
| 憑證存取 | LX8.008 — 網路竄改 |
| 蒐集 | LX10.012(T1114)— 網頁通訊資料 |
使用者應仔細檢查環境中已安裝的瀏覽器擴充功能,並移除不再需要的項目。尤其應留意要求
<all_urls>、webNavigation 或 tabs 等廣泛權限,卻與其宣傳功能無關的擴充功能。
組織應持續監控瀏覽器擴充功能,檢查可疑的權限組合、遠端設定擷取,以及操控瀏覽導向的能力,並將受遠端控制的擴充功能視為可持續運作的攻擊平台,而不只是行為固定的瀏覽器附加元件。
瀏覽器廠商可依據共用程式碼與基礎架構,辨識彼此相關的擴充功能家族,並擴大審查範圍,檢查那些能在發布後改變擴充功能行為的外部代管設定檔,以進一步降低風險。