Lazarus 扮 Rollup package 混入 npm,香港開發機同 CI 要即刻自查
Tech News

Lazarus 扮 Rollup package 混入 npm,香港開發機同 CI 要即刻自查

圖片:via iThome — https://www.ithome.com.tw/news/177138
TechLab 編輯部(譯)·

惡意 package 盯住 browser、crypto wallet 同 Git token

發生咩事

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

JFrog 圖解惡意 npm package 由 Rollup 偽裝入口去到後段 payload 嘅流程

圖片:JFrog Security Research

六個名要認住

JFrog 列出六個 package 名:rollup-packages-polyfill-corerollup-runtime-polyfill-coreswift-parse-streamquirky-tokenreact-icon-svgsrollup-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.jsonpackage-lock.jsonyarn.lockpnpm-lock.yaml 同 private registry cache 搵六個 package 名;有出現就當部機或 runner 可能中過招,先停 runner、隔離 workspace、留低 log,再處理 token rotation。JFrog 建議搵 temp 目錄入面嘅 packscdataldatavhost.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。


參考來源

本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。

分享:WhatsAppThreadsTelegramFacebook