
npm、RubyGems 56 個仿冒套件偷 Windows 資料:裝過點查、未中招點防
惡意套件已下架,但移除套件收唔返俾人偷走嘅 session 同錢包資料
iThome 報道,OpenSourceMalware 發現同一批攻擊者喺 npm 同 RubyGems 放咗至少 56 個惡意套件,專揀 axios、chalk、lodash、typescript、bundler 呢啲開發者見慣嘅名嚟扮。套件裝落 Windows 後會自動下載並啟動竊密程式。目標包埋瀏覽器密碼、Cookie、登入 session、支付卡資料、Telegram Desktop、加密貨幣錢包同助記詞。
56 個套件已確認,全部都要當惡意處理
最初 OpenHack 公開咗 37 個 npm 套件,OpenSourceMalware 之後再搵到 typecript-cli、typecript-core 同 typescrit-cli,所以 npm 名單增至 40 個。研究人員比對過 npm 同 RubyGems 樣本,兩邊下載嘅 Rust loader、藏喺入面嘅 Go 竊密程式、網上基建同 SHA-256 hash 都相同,確認係同一批人分兩路出手,唔係碰巧同期出現嘅另一宗 npm 攻擊。
40 個 npm 套件:
- axios:
axious-core、axois-http - chalk:
chalk-core、chalk-es、chalk-lib、chalk-util - commander:
comand、comander-cli、comander-lib、comanderjs、commander-lib、commandor-cli、commandor-core、commandor-lib、commandorjs - lodash:
ladash-cli、loadashjs、lodahs-cli、lodahsjs、lodash-lib、lodhash-cli、lodsh-cli - TypeScript:
tyepescript-cli、tyepescript-core、typecript-cli、typecript-core、typescipt-cli、typescipt-core、typescirpt-cli、typescirpt-core、typescrip-cli、typescriptt-cli、typescriptt-core、typescrit-cli、typesript-cli、typesript-core、typscript-cli、typscript-core - React:
raectjs - 初始關聯樣本:
testingsmthb1g
16 個 RubyGems 套件: activesupmport、brumdler、brundlef、ubnlder、ubnuler、i18om、i1l8n、iai8n、ie18u、ioe18n、ise18n、ri18nr、orakw、rakier、joxn、reaker。
截至 2026 年 8 月 20 日,OpenSourceMalware 話 40 個 npm 套件都喺推出後約一個半鐘內移除;npm registry 留低嘅 metadata 亦標示相關版本已 unpublished。16 個 gem 嘅官方 API 就回傳 404,研究報告同樣指佢哋已經下架。而家搜尋唔到套件,只代表新安裝受阻,之前裝過嗰部機仍然要查。

圖片:OpenSourceMalware
點解打錯幾個字就可以中招
呢種手法叫 typosquatting。攻擊者會刪走一個字母、調轉次序,或者加個睇落合理嘅 -core、-cli、-lib;例如 axios 變成 axious-core,react 變成 raectjs。開發者趕住裝 dependency、照抄來歷不明嘅教學指令,或者由 AI coding 工具補套件名時,好容易只望個名「似唔似」,冇再核對 publisher、下載紀錄同官方 repo。
危險位係套件裝完已經可以郁手。npm 樣本用 postinstall.js,RubyGems 樣本就借 extconf.rb 呢個原本用嚟設定 native extension 嘅安裝 hook。兩者都會由 package manager 自動執行,套件裝完已經郁到手,之後有冇喺程式碼 import 或 require 佢都冇分別。lockfile 可以幫手追查裝過咩,但第一次揀錯套件時,lockfile 亦會忠實鎖實個錯名,擋唔到嗰次惡意安裝。

圖片:OpenSourceMalware
裝過點查:先睇 lockfile,再查 Windows
Node 專案要搜尋所有 package-lock.json、npm-shrinkwrap.json、yarn.lock 同 pnpm-lock.yaml,Ruby 專案就查 Gemfile.lock,逐個對上面 56 個名。唔好淨係望而家嘅 package.json 或 Gemfile,因為套件可能已移除、藏喺舊 branch、CI workspace、cache 或舊 lockfile。如果係公司環境,最好連 source control 歷史、build log 同 artifact inventory 一齊查,確認邊部 Windows runner 或開發機曾經喺 8 月 15 至 16 日安裝相關版本。
Windows 方面,研究報告確認 Ruby 版本會寫出 Downloads\main.exe,npm 版本就會將 loader 放入 %TEMP%;單憑 main.exe 呢個通用檔名唔足以下定論。已知 loader SHA-256 係 6f088ade49456db2422c3edfbb9998f4a3e9cce7c4c00a7279fb45d672a82b7d,可以用 PowerShell Get-FileHash <檔案路徑> -Algorithm SHA256 核對。公司 IT 亦要翻查 node、npm、ruby 或 gem 有冇衍生可疑嘅 main.exe 或 PowerShell 程序,亦要留意瀏覽器有冇無故終止再啟動。網絡紀錄方面,就查吓當時有冇連去 193.70.34.101:20099、攻擊者用過嘅 GitHub release、Gofile 上載服務及 dresslee.com:20027。正常使用 Gofile 或 api.ipify.org 本身唔等於中招,要配合程序、時間同其他 IOC 判斷。
懷疑執行過,就當憑證已經流出
第一步係即刻斷開嗰部電腦嘅 Wi-Fi 同網線;公司機交畀 IT 或 SOC 保留紀錄,唔好急住喺原機登入更多戶口「逐個檢查」。跟住要用另一部可信、乾淨嘅裝置撤銷瀏覽器、電郵、GitHub、npm、雲端服務同 Telegram 嘅登入 session,再換晒曾經儲喺瀏覽器嘅密碼、相關 API key 同 token。支付卡資料如果曾經儲存喺受影響瀏覽器,應該聯絡發卡機構監察或更換卡,單純刪走惡意套件收唔返已經上載嘅資料。
如果電腦存過助記詞或軟件錢包,OpenSourceMalware 建議直接當佢哋已外洩:用可信而且未受影響嘅裝置開一個全新錢包,再將資產轉走,舊助記詞唔好重用。處理完戶口同資產後,個人用家可以交可信技術人員評估重裝 Windows;公司就按內部事故程序 reimage 同重發憑證。研究暫時冇確認呢批樣本設有長期常駐機制,但「冇見到 persistence」唔代表原機可以繼續放心使用。
未中招點防:核對來源先撳 install
日常做法其實唔複雜:由項目官方文件或 repo 複製套件名,安裝前核對 registry 上嘅 owner、版本歷史、推出時間同下載走勢;突然出現、名字似熱門庫、介紹又空泛嘅套件要停一停。團隊可以喺 code review 強制檢查 lockfile 新增項目,CI 對全新或未批准 dependency 報警,再用 allowlist、內部 registry mirror同 dependency scanner 減少手滑空間。--ignore-scripts 可喺部分檢查環境阻止安裝 hook,但有啲正常套件都靠 script 建置,開啟前要先測清楚,唔好當佢係一鍵萬能防線。
今次 40 個 npm 套件喺八分鐘內由五個帳戶一齊推出,反映攻擊者可以好快換名再開下一輪。守住一份靜態黑名單只夠處理今次事故;開發團隊長遠要管好新增 dependency、安裝 script 同 Windows build runner,先至跟得上呢種玩法。
參考來源
- iThome — NPM與RubyGems出現56個仿冒套件,Windows竊密程式鎖定瀏覽器與錢包資料 — original report
- OpenSourceMalware:Windows Infostealer Hits npm and Ruby — 主要研究更新,列出完整 40 個 npm 套件、時間線、共同 hash、攻擊流程同 IOC。
- OpenSourceMalware:StubMaker RubyGems Campaign — RubyGems 原始技術分析,提供 16 個 gem、Windows 行為、檔案 hash、資料目標同事故處理建議。
- OpenHack:37 Package npm Typosquat Windows Stealer — 另一個研究團隊獨立發現嘅 npm 樣本,交叉核對首批 37 個套件同 Windows stealer。
- npm Docs:Threats and Mitigations — npm 官方對 typosquatting、惡意套件同帳戶保安措施嘅說明。
- RubyGems Guides:Gems with Extensions — RubyGems 官方文件,解釋安裝 gem 時點樣自動執行 extconf.rb。
本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。






