
Lazarus 扮 Rollup package 混入 npm,香港開發機同 CI 要即刻自查
惡意 package 盯住 browser、crypto wallet 同 Git token
發生咩事
JFrog 喺 6 月 30 日披露,一批同 Lazarus 有關嘅惡意 npm package 扮成 Rollup polyfill 工具;iThome 7 月 7 日報道呢件事。玩法亦唔止改一兩個字呃人:攻擊者特登揀 rollup、polyfill、core 呢啲開發者成日見到嘅字,令個 package 名望落似正經工具。JFrog 指,正牌 rollup-plugin-polyfill-node 每星期約 29.5 萬下載、上月超過 120 萬下載,忙緊 ship code 嘅人一眼掃過,未必會覺得怪。

圖片:JFrog Security Research
六個名要認住
JFrog 列出六個 package 名:rollup-packages-polyfill-core、rollup-runtime-polyfill-core、swift-parse-stream、quirky-token、react-icon-svgs 同 rollup-plugin-polyfill-connect。iThome 引述 JFrog 當時講法,指 npm 已處理其中兩個 package,其餘仍有流通風險。截至 2026-07-07,npm registry metadata 顯示四個二階段 package 已變成 security holding package,但兩個 Rollup 入口 package 仲見到普通 latest 版本。自查唔應該只望 npm 頁面有冇紅字,lockfile 同 CI cache 都要一齊搵。
麻煩在 build 工具
一般人諗 npm malware,會諗 postinstall script;但 JFrog 呢次講嘅樣本,麻煩喺佢可以喺 build config import package 嗰刻郁,入口 code 前面仲有正常 Rollup plugin 味道。換句話講,npm ci --ignore-scripts 都值得用嚟減少 lifecycle script 風險,但唔等於擋得住呢類 runtime/import payload。對香港好多細 team、freelance developer 同 Web3 team 嚟講,開發機同 GitHub Actions runner 成日有同一批 Git token、npm token、cloud key,爆一部就可能變成連鎖事故。
佢想攞咩
JFrog 分析指,後段 payload 唔止偷一次資料,仲有 RAT 成分。佢會搵 browser profile、wallet extension storage、macOS login keychain、.env、SSH key、AWS/Azure config、VS Code/Cursor/Windsurf history,仲會留意 clipboard。有 crypto wallet 嘅 team 特別要醒,因為 seed phrase、錢包地址、API key、one-time token 好多人都試過 copy/paste。JFrog 公開嘅 IOC 包括 216.126.236[.]244 同 JSONKeeper URL;呢啲資料應該用嚟做 log hunting 同 egress block,唔好當做睇完就算嘅威脅情報。
而家點自查
第一步係喺 package.json、package-lock.json、yarn.lock、pnpm-lock.yaml 同 private registry cache 搵六個 package 名;有出現就當部機或 runner 可能中過招,先停 runner、隔離 workspace、留低 log,再處理 token rotation。JFrog 建議搵 temp 目錄入面嘅 pack、scdata、ldata、vhost.ctl,同可疑連線痕跡。最實際係輪換 npm/GitHub/cloud/SSH token,清 browser 儲存嘅敏感 session,Web3 team 就要搬 wallet key 同 seed phrase,因為單純刪 package 太遲。
之後要收緊
對自家 package 發佈,npm docs 而家推 Trusted Publishing,用 OIDC 代替長期 npm token;做唔到就用短期、scope 細嘅 granular token,同埋套上 2FA。GitHub Actions 方面,官方安全指引講 GITHUB_TOKEN 應該預設只讀,再按 job 放權;secret scanning 同 push protection 亦要開。今次教訓好實際:scanner 只係第一層,一個陌生 package 就算入咗 build,都應該摸唔到你最值錢嗰堆 credential。
參考來源
- iThome — 北韓駭客Lazarus發動NPM供應鏈攻擊,偽裝Rollup建置工具以竊取機密資料與加密貨幣資產 — original report
- JFrog Security Research:Rollup polyfill masquerading — primary 技術分析,核對 package 名、payload、IOC 同 remediation 建議。
- npm registry:rollup-packages-polyfill-core — 核對受影響入口 package 嘅 registry metadata。
- npm registry:swift-parse-stream — 核對二階段 package 嘅 security holding 狀態。
- npm Docs:Trusted publishing — 核對 OIDC 發佈、長期 npm token 風險同 provenance 行為。
- npm Docs:2FA for package publishing — 核對 package 發佈 2FA 同 granular token 設定。
- GitHub Docs:Actions secure use — 核對 GITHUB_TOKEN 最少權限同 workflow secrets 做法。
- GitHub Docs:Push protection — 核對 secret scanning push protection 對 token 外洩嘅防護。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。







