TL; DR
Í um það bil tveir mánuðir, einn upplýsingaþjófur með npm hefur komið fram aftur undir snúningsbundnum pakkaheitum á meðan hann sendi nánast óbreyttan farm. Það byrjaði opinberlega sem forge-jsxy, fæddur forge-jsx3 / forge-jsx4 systkini, og hættu síðan alveg að nota „forge“ vörumerkið til að þykjast vera innviðir forritara — fyrst zredis-typed, og síðast pinokio-redis.
Hver afbrigði ber með sér sama innri verkfærakeðjan: skrár með nöfnum forge-jsx-explorer-*, a relayPackageServe eining sem þjónar forge-jsxy-package.tgzog varanlegur keyrslutími falinn undir punktamerktri möppu svo hann lifir af eyðingu npm pakkans.
Notkunin les efni dulritunargjaldmiðils veskis og forritaraupplýsingar frá hýsingaraðilanum og sendir þær á Discord vefinnhooks, HuggingFace Hub upphleðslur og harðkóðað C2 endapunkt. Það setur upp sjálfvirka ræsingu á stýrikerfisstigi svo það keyrir aftur eftir endurræsingu og það skráir klippiborðs-, lyklaborðs- og skjávirkni. Nýjasta útgáfan, pinokio-redis, lýsir sér sem „Autodesk Forge“ samþættingu — lýsing sem tengist ekki því sem kóðinn gerir.
| Vistkerfi | npm |
| Notkunarflokkur | fjölþrepa upplýsingaþjófur + fjarstýringaraðili (RAT) |
| Aðalmarkmið | dulritunarveski, viðbætur fyrir vafraveski, aðgangsupplýsingar fyrir forritara/ský |
| Þrávirkni | falinn, endingargóður keyrslutími + sjálfvirk ræsing stýrikerfis (lifir af þegar pakkar eru fjarlægðir) |
| Úthreinsun | Discord vefurhooks + rofi, HuggingFace Hub, harðkóðaður C2 á tengi 9877 |
| Mælt spenna | Maí 2026 – júlí 2026 (áframhaldandi) |
| Nýjasta nafn | pinokio-redis:1.0.127 |
Líffærafræði árása
Sérhver afbrigði í þessari fjölskyldu setur upp í gegnum sama lögun: pakka sem lítur út fyrir að vera óvirkt á skráningarsíðunni en lýsir yfir postinstall krók, svo Notkunarkóðinn keyrir um leið og pakkinn er settur upp sem ósjálfstæði. Krókur knýr fimm þrepa keðju.
- Stig 1 — verða að veruleika. Uppsetningarforskriftin afkóðar pakkað, kóðað blob inn í safn af keyrslutímaskriftum og skrifar þau í falda möppu undir stillingastaðsetningu kerfisins (forge-jsxy útgáfurnar notuðu punktamerkið .forge-jsxy/runtime/v / slóð). Þar sem þetta eintak er utan node_modules, þá fjarlægir það ekki keyrandi umboðsmaðurinn þótt npm pakkann sé fjarlægður eða afútgáfa hans.
- Stig 2 — halda áfram. Keðjan skráir sjálfvirka ræsingu stýrikerfisins þannig að umboðsmaðurinn endurræsist við endurræsingu. Í Windows keyrir þetta í gegnum falið PowerShell greiningarforrit; umboðsferlið er ræst án tengingar og með windowsHide stillt þannig að enginn stjórnborðsgluggi birtist.
- 3. stig — komast undan. Keyrslutíminn leitar að samfelldum samþættingarmerkjum og lokar hljóðlega þegar hann greinir CI umhverfi, þannig að sjálfvirkir byggingarsandkassar sjá ekkert. Í forge-jsxy útgáfunum sagði í heimildarathugasemd að sýnilegur forgeInstall reitur hefði vísvitandi verið sleppt úr package.json „vegna þess að sá reitur væri sýnilegur á npm“ — rekstraraðilinn hélt kveikjulýsigögnum vísvitandi frá opinberu skráningunni.
- Stig 4 — safna. Þegar umboðsmaðurinn er kominn í gang uppsker hann í einni umferð:
- Efni fyrir dulritunarveski. Innifalinn marklisti af gerðinni secret_filename_patterns.json keyrir skráakerfisleit fyrir wallet.dat, *.mnemonic /.seed / *.phrase skrár, keypair.json, Ethereum UTC– lyklageymslur og *.p12 / *.pfx / *.jks lyklageymslur. Veskisafleiðusöfn (bip39, secp256k1, base58check og Solana hjálparar) eru til staðar í pakkanum.
- Viðbætur fyrir vafraveski. chromiumExtensionDbHarvest eining les staðbundna gagnagrunna viðbótargeymslu Chromium vafra, staðsetninguna þar sem vafrabundnar veskisviðbætur geyma geymslugögn sín.
- Persónuskilríki og leyndarmál. Umboðsmaðurinn skannar skeljasögu og skrár sem innihalda leyndarmál og les innskráningarupplýsingar forritara/skýjaupplýsingar og kóðar síðan innskráningarupplýsingar fyrir HuggingFace til upphleðslu.
- Lifandi inntak. Innihald klippiborðs, innsláttur á lyklaborði og skjámyndir eru tekin upp stöðugt.
5. stig — útsíunSafnað gögn fara frá gestgjafanum í gegnum þrjú rásir sem starfa samsíða: Discord vefurhooks (discordWebhookPost) og Discord relay upphleðsluforrit sem talar við `discord.com/api/v10` (discordRelayUpload), upphleðslur á HuggingFace Hub (hfUpload) og a Náð var í gegnum tengi 9877 á harðkóðaðan C2 endapunkt. RelayPackageServe einingin þjónar einnig forge-jsxy-package.tgz bakútgangi — það sama Nafn grips í hverri endurnefningu.
Mikilvægur punktur í uppbyggingu er að stig 1–3 keyra á uppsetningartíma með engin notendaviðbrögð og stig 1 setur farminn einhvers staðar í pakkanum stjórnandi fylgist ekki með. Forritari sem tekur eftir undarlegum ósjálfstæði og keyrir npm uninstall fjarlægir skráninguna en ekki umboðsmanninn.
Notkunin þolir einnig hraðlestur. Keyrslutímaforskriftirnar eru ekki sendar. í skýru ljósi: kóðunar-dreifingarskref heldur rekstrarrökfræðinni sem kóðaður blettur sem aðeins stækkar í læsileg forskriftir eftir að uppsetningarkeðjan er lokið afkóðar það í falda keyrslutímamöppuna. Skrárnar sem eru sýnilegar á listanum — þunna millileggið eftir uppsetningu og dreifingarefni hjálpar — segir lítið um hvað keyrir að lokum. Þessi kóðaða afhending hönnun hefur haft mælanleg áhrif á flokkun: yfir líftíma fjölskyldunnar, margar staðfestar afbrigði voru metnar öruggar með sjálfvirkri flokkun, og farmurinn hefur verið nógu ógegnsæur til að stöðva sjálfvirka endurskoðun algjörlega. Hegðunin sem afhjúpar fjölskylduna er aðeins sýnileg eftir að dulkóðaða Stigið er stækkað og keyrslutíminn er lesinn beint.
Timeline
Farmur fjölskyldunnar hefur haldist ótrúlega stöðugur; það sem breytist er nafnið á kassanum. Boginn liggur frá opnu „smíða“ vörumerki í átt að dulbúast sem ótengd forritunartól.
| Dagsetning (2026) | Pakki: útgáfa | Athugaðu |
|---|---|---|
| Maí (snemma) | forge-jsxy:1.0.81, :1.0.90 | Fyrstu staðfestu afbrigðin — RAT með AES-256-GCM-dulkóðuðu C2 |
| kann 19 | forge-jsxy:1.0.92 / 1.0.105 / 1.0.107 / 1.0.108 | Herferð í virkri útgáfu; 1.0.92 var upphaflega ranglega merkt sem örugg og afturkölluð við endurskoðun kóðans |
| Síðla maí | forge-jsx3 / forge-jsx4:1.0.122 / 1.0.123, zod-pino | Systkinapakkninganöfn, sama verkfærakeðja |
| júní 4 | forge-jsxy:1.0.120 | Framhald; flokkað öruggt samkvæmt ML líkaninu (mistekst) |
| 21.–23. júní | forge-jsxy:1.0.121 | Einingarsett óbreytt frá 1.0.120 |
| júlí 6 | zredis-typed:1.0.127 | „forge“ fellur niður úr nafninu; skip enn forge-jsxy-package.tgz og forgeAgent* stillingarlyklar |
| júlí 7 | pinokio-redis:1.0.127 | Sama verkfærakeðja; nýtt C2; lýsir sér sem „Autodesk Forge“ samþættingu |
Tveir hlutir standa upp úr á tímalínunni. Í fyrsta lagi er útgáfunúmerið 1.0.127 endurnýtt orðrétt af bæði zredis-typed og pinokio-redis — nafngiftin breytist en byggingarlínan núllstillist ekki. Í öðru lagi fellur breytingin frá „forge-*“ nöfnum saman við breytingu í átt að nöfnum sem lesa sem venjuleg innviði (redis, pinokio), sem minnkar líkurnar á að forritari skoði nafnið og hiki.
Vísbendingar um málamiðlun
IOC-númerin hér að neðan eru affanguð. C2-gestgjafinn snerist á milli forge-jsxy línunnar. og nýjasta útgáfan en haldið er sömu höfn.
| Vísir | gildi | Sést í |
|---|---|---|
| C2 endapunktur | 212.193.3[.]61:9877 | pinokio-redis:1.0.127 |
| C2 endapunktur | 79.108.162[.]160:9877 | smíða-jsxy lína, zredis-typed:1.0.127 |
| Exfil rás | discord.com/api/webhooks/… (vefhook færsla) | allar afbrigði |
| Exfil rás | discord.com/api/v10 (upphleðsla með endursendingu) | allar afbrigði |
| Exfil rás | Hleðsla á HuggingFace Hub | allar afbrigði |
| Birt gripur | forge-jsxy-package.tgz (Via relayPackageServe) | allar afbrigði |
| Verkfærakeðjuskrár | chromiumExtensionDbHarvest, discordRelayUpload, discordWebhookPost, hfUpload, encode-hf-credentials, forge-jsx-explorer-* | allar afbrigði |
| Marklisti | secret_filename_patterns.json (wallet.dat, .mnemonic/.seed/.phrase, keypair.json, UTC--, .p12/.pfx/*.jks) | allar afbrigði |
| Falinn keyrslutími | punktalegt …/.forge-jsxy/runtime/v<version>/ stillingarskráarslóð | forge-jsxy lína |
| Þrautseigja Windows | falið sjálfvirkt ræsingarskrifta fyrir PowerShell „forge diagnostics“ | allar afbrigði |
| Setja upp kveikju | postinstall krókur sem kallar á dist-materialization handritkeðju | allar afbrigði |
Varanlegasta greiningarmerkið er ekki einhver einn hýsill eða vefkrókur — þeir snúa — en skráarnafnin í verkfærakeðjunni og forge-jsxy-package.tgz gripur, sem hefur varðveist orðrétt í gegnum hverja endurnefningu.
Eiginleiki og athuguð hegðun
Pakkarnir voru birtir undir fleiri en einum npm aðgangi. Forge-jsxy línan notaði útgefandann jacksonkaandorp2 (jacksonkaandorp2@outlook[.]com); Nýjasta afbrigðið af pinokio-redis var gefið út af donimique (donimiqueakers@gmail[.]com). Hvorugur aðgangurinn innihélt staðfest netfang eða tengd heimildargagnasafn. Gönguleiðin á milli reikninga er verkfærakeðjan, ekki útgefandaauðkenni — sömu einingarnöfnin, það sama birt .tgz, og sama exfil hönnunin endurtekur sig óháð því hver gaf út.
Nokkur sýnileg hegðun bendir til vísvitandi dyljunar frekar en óviljandi ofsöfnun:
Keyrslutími hugbúnaðurinn er settur utan node_modules í falinni möppu, þannig að hann lifir lengur en pakkinn sem afhenti hann.
Umboðsmaðurinn hleypur út þegar hann greinir CI umhverfi, sem takmarkar útsetningu í sjálfvirkum greiningarsandkössum.
Umboðsferlið er ræst aðskilið og glugga-falinn.Í Í útgáfunum af forge-jsxy tengdist athugasemd slepptingu sýnilegs uppsetningarreits við það að sá reitur væri „sýnilegur á npm“.
Lýsingar á opinberum pakka tengjast ekki kóðanum — pinokio-redis birtist sem „Autodesk Forge“ samþætting.
Einn endurtekinn uppgötvunargall er vert að taka fram fyrir varnarmenn sem reiða sig á sjálfvirk flokkun: margar staðfestar afbrigði í þessari fjölskyldu voru metið sem öruggt af ML flokkara áður en kóðayfirferð leiðrétti það Niðurstaða. Stöðugleikaþættirnir sem gagnrýnandi getur byggt á — uppsetningartíminn keðjan, falinn keyrslutími, skráarnöfn verkfærakeðjunnar — eru nákvæmlega þau sem lifa af endurnefningarnar.
Við lýsum ofangreindu sem athuguðum hegðun. Við reiknum ekki með herferð til neins nafngreinds aðila og við gerum engar kröfur um rekstraraðila sjálfsmynd eða markmið umfram það sem kóðinn og innviðirnir sýna fram á.
Áhrif, þróun og leiðbeiningar varnaraðila
Hver er berskjaldaður. Safnið er eingöngu ætlað forriturum vélar: dulritunargjaldmiðlaveski og lyklageymslur, viðbætur fyrir vafraveski, skeljarsaga og skýja-/þjónustuupplýsingar. Allir sem setja upp viðkomandi pakkning — beint eða sem tímabundin ósjálfstæði — á meðan glugginn sem það var lifandi er innan gildissviðs, og varanleikahönnunin þýðir að Útsetningunni lýkur ekki þegar pakkinn er fjarlægður.
Af hverju þrautseigjan skiptir máli. Vegna þess að stig 1 afritar farminn í a falin keyrslutímaskrá og stig 2 skráir sjálfvirka ræsingu, eins og venjulega úrbótaeðlishvöt (fjarlægðu slæma ósjálfstæði, eyða node_modules, enduruppsetning) fjarlægir ekki umboðsmanninn. Viðbrögð við atvikum verða að leita að keyrslutími utan trésins og sjálfvirka ræsingarfærslan, ekki bara pakkinn.
Þróunin. Þessi fjölskylda sýnir mynstur sem vert er að fylgjast með: stöðugur og þroskaður farmur, vafinn í straum af einnota farmipakkaheiti sem flytjast frá hvaða nafni sem er sem fyrri fjarlæging hefur verið gerð auðþekkjanlegt, gagnvart nöfnum sem lesa sem venjuleg innviði. Nafnbundið Bannlistar og orðspor útgefanda eldast fljótt gegn þessu; hegðun- og merki sem byggjast á gripum gera það ekki.
Fyrir forritara og neytendur
Meðhöndlið forskriftir á uppsetningartíma sem aðaláhættuflöt. Setjið upp með forskriftum óvirkum þar sem það er mögulegt og farið yfir allar ósjálfstæðir aðilar sem lýsa yfir eftir uppsetningu. Festa og staðfesta tímabundnar ósjálfstæðir tengingar; þessi tegund spilliforrita berst jafn auðveldlega í gegnum undirtengingu og bein tengsl.
Á grunuðum hýsil, leitaðu út fyrir pakkann: leitaðu að falinni keyrslutímamöppu í stillingarstað kerfisins, óvæntri sjálfvirkri ræsingarfærslu, og útleiðartengingar við Discord webhook eða :9877 endapunkta.
Gerið ráð fyrir að öll fræsetning veskis, lykilgeymsla eða skilríki sem eru til staðar á viðkomandi hýsil á útsetningarglugganum séu í hættu og skiptið þeim út.
Fyrir skráningarfulltrúa og verjendur
Viðvörun um varanlega gripi (forge-jsxy-package.tgz, forge-jsx-explorer-* / chromiumExtensionDbHarvest / discordRelayUpload) skráarnöfn) frekar en pakkanafnið, sem breytist.
Merktu við þá uppbyggingarsamsetningu sem fjölskyldan treystir á — eftiruppsetningu sem birtir forskriftir í falinni stillingarskráarslóð ásamt stýrikerfi. sjálfvirk ræsing skráningar — óháð þeim sérstökum strengjum sem um ræðir.
Nafnið á pakkanum hefur breyst að minnsta kosti fjórum sinnum; kassinn inni í honum hefur ekki. Greining byggð á því sem kóðinn gerir hefur enst lengur en allir endurmerkingu hingað til.





