RuntimeBroker npm Planhigion Typosquat Crypto Clipper

RuntimeBroker: mae npm Typosquat yn Plannu Crypto-Clipper 40-Cadwyn fel "Cynorthwyydd Rhedeg System" Traws-OS

TL; DR

Ar 2026-05-21, cyhoeddwr yr npm jaggle wedi rhyddhau naw fersiwn (1.0.0 drwy 1.0.8) o @jaggle/resizeobserves mewn ffenestr o tua dwy awr.

Mae'r pecyn yn deiposquat o'r cyfreithlon @juggle/resize-observer polyfill — pecyn a ddefnyddir yn helaeth gyda miliynau o lawrlwythiadau wythnosol — ond nid yw'n anfon unrhyw weithrediad ResizeObserver gwirioneddol.

Yn lle hynny, y pecyn bachyn ôl-osod yn gosod llwyth tâl Python wedi'i fwndelu, yn cofrestru parhad fel brocer amser rhedeg sy'n edrych yn frodorol i'r platfform, ac yn defnyddio herwgipiwr clipfwrdd traws-lwyfan sy'n targedu trafodion arian cyfred digidol.

Linux mae dyfalbarhad yn ymddangos fel python3-dbus-helper, MacOS as com.apple.python.runtime, a ffenestri as PyRuntimeBroker.

Mae'r llwyth tâl yn monitro'r clipfwrdd yn barhaus am gyfeiriadau waled ar draws mwy na 40 o gadwyni bloc ac yn disodli cyfeiriadau wedi'u copïo yn dawel â waledi a reolir gan ymosodwyr.

Mae'r meddalwedd faleisus yn gweithredu'n hollol lleol heb unrhyw seilwaith C2 allanol, gan wneud yr amnewidiad clipfwrdd ei hun yn fecanwaith all-hidlo.

Yr IOC sylfaenol yw enw'r pecyn ei hun: @jaggle/resizeobserves — nodwch y llafariad sydd wedi’i ollwng yn “jaggle” a’r “s” sydd wedi’i ychwanegu yn “resizeobserves”.

Difrifoldeb: uchel.

Yr Ymosodiad: Sut Mae'n Gweithio

npm:@jaggle/newid maintarsylwadau nid yw'n edrych fel meddalwedd faleisus ar achlysur golygfa npm. Mae ei DARLLENWCH.md yw'r README gair am air o npm:@juggle/newid maint-arsylwr — yr un samplau cod, yr un cyfarwyddiadau defnydd, yr un peth mewnforio { ResizeObserver } o '@juggle/resize-observer' cyfeiriadau drwyddi draw. Mae'r llên-ladrad mor gyflawn fel y byddai unrhyw un sy'n edrych ar y ddogfennaeth yn tybio eu bod yn darllen dogfennau'r pecyn cyfreithlon.

The pecyn.json, mewn cyferbyniad, yn brin: na ystorfa cae, un sengl bin mynediad yn pwyntio at bin/clipfwrdd-gwarcheidwad.js, a ôl-osod sgript sy'n rhedeg nod npm-install.jsMae enghreifftiau “Defnydd sylfaenol” y README yn cyfeirio at weithrediad JavaScript nad yw’n bodoli yn unman yn y tarball. Yr unig JavaScript yn y pecyn yw’r sgript gosod.

Cam 1 — mae npm postinstall yn cychwyn llwyth Python

npm-install.js yn ymwybodol o blatfform. Mae'n lleoli pip gweithredadwy ar hyd llwybr chwilio sefydlog (/usr/bin/pip3, /usr/lleol/bin/pip, yn syrthio'n ôl i python3 -m pip), yn gosod y pecyn Python sydd wedi'i fwndelu o'r cyfeiriadur tarball, ac — ar Linux — yn tynnu i mewn xclip or xsel drwy apt-fynd, Pacman, neu DNF os nad yw'r naill na'r llall eisoes yn bresennol:

Mae'r defnydd o –pecynnau-torri-system yn fwriadol: mae dosraniadau Linux modern yn cludo Python gyda marcwr amgylchedd a reolir yn allanol PEP 668 wedi'i alluogi, sy'n rhwystro gosodiadau pip ar draws y wefan yn ddiofyn. Mae'r sgript gosod yn gorfodi'r gosodiad drwodd.

Mae'r sgript hefyd yn ymwybodol o sudo. Pan fydd yr uid rhedeg yn ganlyniad i a gosod sudo npm, mae'r sgript yn darllen SUDO_USER ac yn rhoi cregyn allan i cael cyfrinair i ddod o hyd i'r go iawn cyfeiriadur cartref y defnyddiwr, yna'n ysgrifennu ei ffeiliau parhad yno yn hytrach nag i mewn iddo / GwraiddMae dyfalbarhad fesul defnyddiwr, nid ar draws y system.

Cam 2 — Parhad traws-OS o dan enwau broceriaid amser rhedeg

Ar ôl gosod y pecyn Python, mae'r sgript yn cofrestru cofnod cychwyn awtomatig o dan enw gwahanol ar bob system weithredu:

  • Linux — uned defnyddiwr systemd yn ~/.config/systemd/user/python3-dbus-helper.serviceYr uned Disgrifiad is Cynorthwyydd Rhedeg Amser D-Bus PythonMae'r sgript hefyd yn ceisio ei alluogi drwy systemctl –galluogi defnyddiwr, gan ddefnyddio dolen symbolaidd â llaw o dan rhagosodedig.targed.eisiau/ pan fydd systemctl yn methu. Os yw'n rhedeg o dan sudo, mae'r sgript yn newid i sudo -u systemctl –defnyddiwr, Gyda XDG_RUNTIME_DIR gosod fel bod y galwad bws-defnyddiwr yn gweithio.
  • MacOS — plist LaunchAgent yn ~/Llyfrgell/AsiantauLansio/com.apple.python.runtime.plist gyda RhedegWrthLlwyth=gwir ac CadwchFyw=gwir, yna wedi'i lwytho trwy llwyth launchctl.
  • ffenestri — Tasg wedi'i Chofrestru o'r enw PyRuntimeBroker, a sbardunodd AtLogOn, gyda therfyn amser gweithredu o sero (h.y., dim terfyn amser), wedi'i chofrestru trwy PowerShell.

Mae'r tri enw i gyd yn gredadwy ar yr olwg gyntaf. cynorthwyydd-bys-python3 yn dilyn confensiwn enwi integreiddio Python-D-Bus cyfreithlon ar benbyrddau Linux. com.apple.python.runtime yn dynwared labelu DNS gwrthdro Apple ar gyfer ei wasanaethau ei hun. PyRuntimeBroker yn adleisio Windows RuntimeBroker.exe — gwasanaeth Microsoft go iawn, wedi'i lofnodi sy'n brocera ceisiadau caniatâd ar gyfer apiau UWP. Nid yw'r un o'r rhain yn wasanaethau Apple/Microsoft/Python go iawn yn y cyd-destun hwn, ond amddiffynwr yn gwneud sgan gweledol cyflym o systemctl –unedau rhestr-defnyddwyr or Cael-TasgWedi'iHamdrefnu mae'n annhebygol y bydd yn crynu.

Cam 3 — Yr herwgipiwr clipfwrdd

Y llwyth tâl Python, wedi'i osod yn clipboard_guardian/guardian.py, yn rhedeg dolen ddiddiwedd sy'n holi clipfwrdd y system bob 400 milieiliad. Ar bob tic, mae'n tynnu cynnwys y clipfwrdd cyfredol drwy pyperclip.paste() ac yn eu rhedeg yn erbyn rhestr o dros ddeugain o fynegiadau rheolaidd wedi'u llunio ymlaen llaw sy'n cwmpasu fformatau cyfeiriad waled ar gyfer Ethereum, Bitcoin, Monero, Solana, TRON, TON, Ripple, Litecoin, Dogecoin, Polkadot, NEAR, Cosmos, Algorand, Stellar, Cardano, Bitcoin Cash, Dash, Zcash, Aptos, Sui, Tezos, MultiversX, Harmony, Terra, Injective, Osmosis, Kava, Celestia, Nano, Filecoin, Ronin, Ergo, DigiByte, Hedera, BNB Smart Chain, a sawl un arall sydd wedi'u stwbio ond yn wag yn y ffurfweddiad diofyn (Sei, IOTA, Kaspa, Flow, Nervos, Decred, Ravencoin).

Pan fydd gêm yn glanio, mae'r sgript yn darllen cyfeiriad yr ymosodwr ar gyfer y gadwyn honno o ~/.config/clipfwrdd-gwarcheidwad/config.json (neu ei gyfwerth â'r platfform) ac yn trosysgrifennu'r clipfwrdd gyda'r testun a amnewidiwyd:

Nid oes beacon rhwydwaith. Nid yw'r clipper yn ffonio adref, nid yw'n cofrestru gwesteiwyr heintiedig, nid yw'n alldreiddio unrhyw beth. Yr alldreiddio yw'r amnewidiad ei hun: pan fydd defnyddiwr yn copïo cyfeiriad derbynnydd o'i UI waled ac yn ei gludo i mewn i ddeialog anfon, mae'r cyfeiriad a gludwyd yn eiddo i'r gweithredwr. Mae'r arian yn cael ei golli yn y band, yn dryloyw i'r defnyddiwr.

Beth sy'n newydd yma

Mae ychydig o fanylion yn sefyll allan o'u cymharu â'r templed crypto-clipper generig:

1. npm → croesfan Python. Mae'r rhan fwyaf o'r clipwyr crypto rydyn ni'n eu gweld yn npm yn JavaScript pur, yn aml wedi'u drysu â _0x cylchdro arae neu gwerthuso(atob(…)) pentyrrau. Mae'r sampl hon yn defnyddio'r tarball npm fel dim mwy na lapio danfon ar gyfer pecyn Python — Python glân — ac yn gadael i pip drin gosod dibyniaeth (clip pyper, psutil, dewisol gosod teitlproct) wedi'i ddatgan yn y bwndeli pyprosiect.tomlDoes dim drysu JavaScript i'w drechu. Mae'r clipper ei hun yn Python plaen, darllenadwy.

2. Labeli parhad Tri-OS wedi'u dewis am eu hygrededd. Mae llawer o osodwyr traws-lwyfan yn cofrestru parhad o dan enwau generig (diweddarydd.gwasanaeth, helper.plist). Mae'r sampl hon yn mynd i'r drafferth o ddewis labeli sy'n debyg i froceriaid amser rhedeg brodorol i'r platfform ar bob system weithredu. Yr enwi yw'r unig ymgais i fod yn gudd - nid oes rootkit, dim cuddio tir defnyddiwr, dim drysu llwybr. Y bet yw mai anaml y bydd amddiffynwyr yn archwilio ~/.config/systemd/defnyddiwr/ a bod gwasanaeth o'r enw cynorthwyydd-bys-python3 ni fydd yn sefyll allan mewn adolygiad achlysurol.

3. Mae cuddio teitl-proses yn real, ond mae gwrth-ddadansoddi yn segur. Mae llwyth tâl Python yn diffinio a proses_guddio() swyddogaeth sy'n gosod teitl y broses drwy gosod teitlproct (Linux/macOS) neu GosodTeitlConsolW (Ffenestri) — a prif () yn ei alw. Felly ps aux yn dangos cynorthwyydd-bys-python3 yn hytrach na python3 …/guardian.pyFodd bynnag, mae'r un modiwl yn diffinio yn_rhedeg_ar_fonitor() swyddogaeth sy'n rhestru offer monitro prosesau hysbys (htop, btop, Rheolwr Tasgau, Monitor Gweithgaredd, Haciwr Prosesau, Monitor Adnoddau, monitorau system GNOME / KDE / Xfce / MATE, ac yn y blaen) — a prif () byth yn ei alw. Mae'r ddolen amnewid yn rhedeg yn ddiamod, p'un a oes gan y defnyddiwr fonitor proses ar agor ai peidio. Mae'r swyddogaeth yn god marw yn y fersiwn a gludwyd. Mae'n fwyaf tebygol o fod yn weddill o iteriad cynharach, neu'n sgaffaldiau ar gyfer nodwedd nad yw wedi'i gwifrau eto. Beth bynnag, arwyneb gwrth-ddadansoddi'r llwyth tâl cyhoeddedig yw un ailenwi teitl proses, nid osgoi monitor gweithredol.

4. Yr ymddygiad cyfunu ffurfweddu wedi'i fwndelu. npm-install.js yn ysgrifennu'r rhestr waled ddiofyn i ~/.config/clipfwrdd-gwarcheidwad/config.json ac, os oes ffeil ffurfweddu eisoes yn bodoli, yn cyfuno unrhyw allweddi y mae eu gwerth presennol yn wag. Mae hynny'n golygu defnyddiwr sydd wedi cael ei heintio o'r blaen ac wedi glanhau'r ffurfweddiad yn rhannol - dyweder, trwy wagio'r ethereum gwerth — bydd yn ei ail-lenwi gan bob gosodiad pecyn maleisus dilynol. Nid oes angen glanhau'r ffeil barhad mewn unrhyw lwybr cod.

Dyddiad / Amser (UTC) Digwyddiad
2026-05-21 18:50:32 @jaggle/resizeobserves@1.0.0 wedi'i gyhoeddi.
2026-05-21 19:55:55 1.0.1 cyhoeddwyd — fersiwn gyntaf wedi'i nodi gan sganio allanol.
2026-05-21 19:58:10 1.0.2 wedi'i gyhoeddi.
2026-05-21 20:05:03 1.0.3 wedi'i gyhoeddi.
2026-05-21 20:09:24 1.0.4 wedi'i gyhoeddi.
2026-05-21 20:13:48 1.0.5 wedi'i gyhoeddi.
2026-05-21 20:41:52 1.0.6 wedi'i gyhoeddi.
2026-05-21 20:43:56 1.0.7 wedi'i gyhoeddi — yn ychwanegu a try/catch lapio o amgylch y cam ysgrifennu ffurfweddu waled yn npm-install.js.
2026-05-21 20:46:15 1.0.8 cyhoeddwyd — ailenwyd y gosodwr npm-install.jsnpm-install.cjs (cynnwys sy'n union yr un fath â beit).
2026-05-22 Cyhoeddwyd dyfarniadau ac IOCs. Mae fersiynau'n dal i fod yn fyw yn y gofrestrfa ar adeg cyhoeddi (yn parhau).

Mae naw fersiwn mewn awr a chwe deg pump munud yn gyflym hyd yn oed ar gyfer typosquat. Mae'r patrwm yn gyson â ymgyrch cyhoeddi a llosgi — gorlifo'r gofrestrfa o dan un handlen, gadael i'r canfod fynd rhagddo, a symud i handlen newydd unwaith y bydd un fersiwn wedi'i thynnu. Mae'r deltaau gweladwy ar draws y rhediad yn gosmetig: 1.0.1 wedi'i ychwanegu'n benodol /usr/bin/pip3llwybrau -arddull i'r rhestr chwilio pip (cydnawsedd sudo), lapiodd 1.0.7 yr ysgrifen ffurfweddu-wallet mewn try/catch, ac ailenwodd 1.0.8 y gosodwr o .js i .cjs gan gadw ei gynnwys yr un fath â beit. .cjs ailenwi traciau gyda rhybuddion npm am ddatrysiad modiwl amwys mewn pecynnau heb eglurder "teip" maes, ac efallai ei fod yn ymgais i atal sŵn amser gosod a allai ddenu sylw. Nid yw llwyth tâl Python — yr unig ran sy'n dwyn mewn gwirionedd — wedi newid ar draws y naw fersiwn.

Dangosyddion Cyfaddawd

Pecynnau

ecosystem pecyn fersiynau Statws
npm @jaggle/resizeobserves 1.0.0 drwy 1.0.8 Yn fyw adeg ei gyhoeddi; cais am dynnu i lawr.

Ffeiliau a Hashes

Llwybr Nodiadau
clipboard_guardian/guardian.py
(md5 f7935c2c82bc881288611ab6cd634f17)
Yn union yr un fath ar draws pob un o'r naw fersiwn a gyhoeddwyd (1.0.0 drwy 1.0.8). Llwyth tâl y clipper.
npm-install.js (1.0.0 – 1.0.7)
npm-install.cjs (1.0.8)
Gosodwr dyfalbarhad; yr un ymddygiad o'r dechrau i'r diwedd. 1.0.7's .js ac 1.0.8's .cjs yn union yr un fath â beit.
~/.config/clipboard-guardian/config.json Ffurfweddiad dyfalbarhad Linux a bwndel waled.
~/Library/Application Support/clipboard-guardian/config.json Ffurfweddiad dyfalbarhad macOS a bwndel waled.
%APPDATA%\clipboard-guardian\config.json Ffurfweddiad dyfalbarhad Windows a bwndel waled.
~/.config/systemd/user/python3-dbus-helper.service Parhad cychwyn awtomatig Linux.
~/Library/LaunchAgents/com.apple.python.runtime.plist Parhad macOS LaunchAgent.
~/Library/Logs/com.apple.python.runtime.log log macOS stdout/stderr ar gyfer yr asiant.
Scheduled Task PyRuntimeBroker Tasg cychwyn awtomatig Windows (AtLogOn, dim amser terfyn).

Dangosyddion Ymddygiad

Arwydd Disgrifiad
pip install --break-system-packages o ôl-osod npm Yn gorfodi gosod Python ar draws y wefan gan osgoi amddiffyniadau PEP 668.
apt-get install -y xclip (neu pacman/dnf) Yn gosod cyfleustodau clipfwrdd ar Linux yn ystod gosod pecyn.
python3-dbus-helper.service uned defnyddiwr systemd Parhad wedi'i gofrestru o dan enw cynorthwyydd-rhedeg sy'n edrych yn gredadwy.
com.apple.python.runtime LansioAsiant Label parhad y tu allan i lwybrau system cyfreithlon Apple.
PyRuntimeBroker Tasg wedi'i Drefnu Parhad brocer amser rhedeg Windows ffug heb ffynhonnell osodwr gyfreithlon.
Proses Python o'r enw python3-dbus-helper mewnforio pyperclip ac psutil Anghydweddiad ymddygiadol rhwng enw'r broses a ddangosir a'r llyfrgelloedd a fewnforiwyd.
Newidiadau clipfwrdd ~0.4 eiliad ar ôl copi cyfeiriad waled Ymddygiad llofnod amnewid cyfeiriad cryptocurrency.

Bwndel waled ymosodwr (rhestr hela amddiffynwyr)

Mae'r rhestr waled yn cael ei hanfon wedi'i chodio'n galed yn npm-install.js ac clipboard_guardian/guardian.pyGall amddiffynwyr ddefnyddio'r rhestr fel rhestr flocio (trin unrhyw drosglwyddiad i'r cyfeiriadau hyn o waledi corfforaethol fel un amheus) ac allwedd hela (trin presenoldeb unrhyw un o'r llinynnau hyn mewn ffeil ffurfweddu heb ei dilysu, arteffact adeiladu, neu beiriant datblygwr fel dangosydd haint).

Pecyn Waled Ymosodwr

gadwyn cyfeiriad
Ethereum / BSC 0x450c0E58Fc2ba03632d3F5780ad8C966648B6F18
Ronin (EVM) ronin:450c0E58Fc2ba03632d3F5780ad8C966648B6F18
Bitcoin bc1qs2mpls4p0f7fng073gy2rcdgjpf7la4eugpt6y
Arian arian Bitcoin bitcoincash:qqmvyxxklzp7l3eslxavhc8phl6hprdf25lwc29nlt
Litecoin ltc1qnefc8x59a9cwtqnflt8hmqvezqw4hc7lt3fkqe
Dogecoin DNEJmYRZtzyK44tZea4S7wV3otTyRk48Fy
Dash XtJ7E6mnhPK93Vib29PGQrTmQjhTTqFwbS
Zcash t1d4hcEnBjdh9X6Wb6R2dxqjnxddJ6ocP8M
DigiByte DPmH2dhiGK3hk3A69tZUMz6tHzGFHBzSrH
Monero 42zhAidVhP7QETk83JAspS59ASALSHFio44vmu6MdDCz15cSqtqsG4QVyzY8vTrjGrTEA6zMbWW6Yft1Ynz1xLfCN5FVbXf
Solana DWBAmQLi9gP6mk7UfJfQGYTV1UPK32WekLTqg83q1mc5
TRON TVgEgMemmJABYYnbNr1Wi8bSgADEkdEBt2
TON UQDTSkvwmptU9eG988KgxS3WjnYAZlXgfpJxnz4mhWZAvULr
Ripple r9tj3cMCiqRijNYqNVYNuwKykkQfS8FE4H
polkadot 1JSkYqXQE4d28HdcmTPhbgCrdiPFTfSHxD67tam16p53oBG
GER 5d6aec44551529e8cd9ebd3aaa84b3832fc3c7463596b2b6e72635b80096a364
Cosmos cosmos1pzfl3kv5g8g0ernj86rwpar08u2zl9suthx28e
osmosis osmo1pzfl3kv5g8g0ernj86rwpar08u2zl9surv463t
Celestia celestia1pzfl3kv5g8g0ernj86rwpar08u2zl9su6ah6a5
Chwistrelladwy inj1g5xquk8u9wsrvvkn74uq4kxfvejgkmccn578gh
Cafa kava1kjfvgcz4q0y9yae2f3pa33vhj2estxxj3sqqux
Harmony one19hn0n7dzkhtl9ta9ekv5592s85jwstpka76t3a
Ddaear terra1h0dwu8z405jagdlr0fgr9jllac2sxajzlgme5x
Algorand XSAMN3FTB5SUHUQFENBDDRXIMOPNFVLKAWA3RNOU54DWROMDZ6SR7DZ2PI
Stellar GACNZSV4EQO65NZZUOBS3TMJM7GFTSRNKQBVJOX5P2G7U7SEBQ2ZUDJE
Cardano addr1qyj050vla4cglmyrgm4vzf3dxtn0gynpks4t7vp7s3lg49e9wt0s94hcztzdgecxcz5hu9uk56q60yth6d66w026s2kq3ma56f
AmlversX erd1slvlgqsmwzk0c8xtksm4eq5vdfnc26slpzqsyxhz456zvme5rpasue6ge0
Aptos 0x580ecda1ebd6ca5a46be2097568d013308bd54ef1d147acb880b59f7709f280e
Sui 0xf7e8a9a970fa65c058745c4b2cf2a856cc0283863e4ed1e142648f26097b0c78
Nano nano_393n56a5pfz8zg3nkzf7mytfgagzhu5mn9i3xiqg54weq8n1u8jgezxas7dn
Filecoin f1fypyww3xubopfnv7q6yh5l4bko44wmfktf3ckui
Tezos tz1RccjnorHk61bt73ArLXcdgFjEj6T1ochk
Ergo 9g1pNQGnFg7Hk1d9Z66bgHMkguGU7R41btypAnbG1NF5FJoNdBA
pennawd 0.0.10488092

Nid yw cadwyni gyda gorchudd regex ond slotiau waled gwag yn y ffurfweddiad diofyn — Sei, IOTA, Kaspa, Flow, Nervos, Decred, Ravencoin, Beacon-Chain BNB — yn cael eu hamnewid yn weithredol yn yr adeiladwaith hwn ond cânt eu canfod. Ymdriniwch â nhw fel cwmpas monitro yn hytrach na chwmpas amnewid.

Priodoliad a Chymhelliant

Mae'r ymgyrch yn cynnig arwyneb priodoli tenau. Nid ydym wedi gallu cadarnhau hunaniaeth y gweithredwr. Yr hyn y gallwn ei gofnodi:

  • Metadata cyhoeddwr. Y cyfrif npm jiggle yn rhestru ei e-bost fel olgascarlet@deltajohnsons.comY parth deltajohnsons.com nid yw'n datrys hunaniaeth gorfforaethol y gallwn ei gwirio. Nid yw'r cyfrif npm yn dangos unrhyw ddilysu e-bost a dim SCM dilysu. Nid oes presenoldeb cyhoeddus cysylltiedig ar GitHub.
  • Maes ystorfa. The pecyn.json dim yn cario ystorfa maes. Y cyfreithlon npm:@juggle/newid maint-arsylwr yn pwyntio at storfa GitHub go iawn gyda miloedd o sêr a materion gweithredol. Diffyg dolen i'r storfa yw'r un dangosydd gweledol cyflymaf ar UI npm.
  • Llên-ladrad README. Y pecyn README yw'r un cyfreithlon @juggle/newid-maint-arsylwr README beit-am-beit, gan gynnwys mewnforio enghreifftiau sy'n cyfeirio atynt @juggle/newid-maint-arsylwr ei hun (nid y pecyn cyhoeddi). Ni wnaeth y gweithredwr hyd yn oed drafferthu ailysgrifennu'r mewnforion — arwydd cyffredin bod y readme wedi'i godi, nid wedi'i addasu.
  • Dim seilwaith i droi arno. Nid oes unrhyw derfynbwynt C2, dim chwiliad DNS, dim IP. Mae'r ymddygiad maleisus wedi'i gynnwys yn llawn yn y clipper lleol ynghyd â'r bwndel waled wedi'i godio'n galed. Mae hyn yn golygu nad yw cylchdroi sy'n seiliedig ar barth neu ASN ar gael. Dylai amddiffynwyr sy'n cylchdroi ar draws ymgyrchoedd baru'r waledi â hash-gyfateb yn erbyn unrhyw clipper blaenorol sydd ganddynt ar ffeil; ailddefnyddio waled ar draws pecynnau yw'r ddolen draws-ymgyrch fwyaf hylaw.
  • Dewis enwi. @jaggle/newid maintarsylwadau un cymeriad i ffwrdd o @jwglio ac un ffurfdroad oddi ar yr adnabyddus newid maint-arsylwrY pellter golygu cyfunol yw dau glyff. Gwrthdrawiad gweledol bwriadol yw hwn, nid sgwat generig.

Cymhelliant, wedi'i seilio ar ymddygiad llwyth tâl: monetization pur trwy amnewid clipfwrdd cyfleol. Nid oes unrhyw gynaeafu credydau, dim olion bysedd gwesteiwr, dim darlleniad newidyn amgylcheddol. Nid yw'r gweithredwr yn poeni pwy yw'r dioddefwr - maen nhw'n poeni bod trosglwyddiad nesaf y dioddefwr yn pwyntio at un o'r cyfeiriadau rhestredig. Y gorchudd deugain cadwyn yw'r model loteri ar waith: bwrw'n eang, gobeithio y bydd un past gwerth uchel yn glanio unwaith fesul N gosodiad.

Mae'n ymddangos nad yw'r gweithredwr yn poeni am dynnu i lawr. Mae cyhoeddi naw fersiwn o fewn dwy awr o dan yr un cwmpas yn darllen fel dolen gyhoeddi-a-llosgi: gwneud y mwyaf o ôl troed y gofrestrfa cyn i'r oedi tynnu i lawr ddal i fyny, yna symud ymlaen. Nid ydym wedi arsylwi @jaggle ailgyhoeddi o dan gwmpas newydd ar adeg ysgrifennu, ond byddem yn disgwyl cwmpasau tebyg (@jaggie, @jwglio-, @joggle) i ymddangos dros y dyddiau nesaf os yw'r gweithredwr yn dal yn weithredol.

Effaith, Tueddiadau a'r Hyn y Dylai Amddiffynwyr Ei Wneud

 Effaith

Nid yw'n bosibl mesur effaith mewn arian go iawn o'r set ddata gyfredol. Nid yw'r clipper yn ysgrifennu telemetreg ac nid yw'r waledi wedi'u gweld eto'n derbyn trosglwyddiadau amnewidiol ar ddiwedd y dadansoddiad (mae chwiliad dilynol o'r cadwyni rhestredig ar ein rhestr). Y cyfreithlon npm:@juggle/newid maint-arsylwr yn cyfartaleddu lawrlwythiadau wythnosol saith ffigur - targed typosquat traffig uchel - ac roedd y pecyn maleisus yn fyw am lai na 24 awr ar adeg y datgeliad, sy'n cyfyngu ar y boblogaeth sy'n agored i niwed ond nid yw'n ei sero.

Nid lawrlwythiadau uniongyrchol yw'r radiws ffrwydrad sy'n werth ei olrhain @jaggle/newid maintarsylwadau — mae'r rheiny'n debygol o fod yn fach. Mae'n **gosodiadau trosiannol**: datblygwr yn ychwanegu'r pecyn at brosiect blwch tywod, yn rhedeg npm gosod, ac yna anghofio bod y bachyn gosod erioed wedi rhedeg. Mae gan bob peiriant a brosesodd y postinstall bellach herwgipiwr clipfwrdd fesul defnyddiwr ar gychwyn awtomatig, waeth a yw'r prosiect yn dal ar y ddisg ai peidio. Dileu cyfeiriadur y pecyn o nod_modiwlau nid yw'n dileu'r dyfalbarhad.

Patrymau sy'n dod i'r amlwg

Dau duedd y mae'r ymgyrch hon yn eu dangos.

npm fel lapio cyflwyno llwyth-tâl Python. Mae'r tarball npm yn osodwr 4 llinell; y lleidr gwirioneddol yw Python, wedi'i osod ar draws y system gan pip o'r cyfeiriadur bwndelu. Nid yw hyn yn newydd — rydym wedi gweld pecynnau npm yn gollwng Python o'r blaen — ond mae'n dod yn siâp llawer mwy cyffredin ar draws ymgyrchoedd crypto-clipper. Mae'r fantais i'r gweithredwr yn ddwy ran: llyfrgelloedd clipfwrdd Python (clip pyper (y cyntaf yn eu plith) yn lanach ac yn fwy traws-lwyfan na'r cyfwerthion JavaScript, a mae'r rhan fwyaf o sganwyr npm awtomataidd yn pwyso ffeiliau JavaScript a Python yn drwm .py yn bwndelu'n ysgafn. Y gost yw bod ôl troed y gosodiad yn llawer swnllyd — ffres gosod pip yn anodd cuddio ar beiriant datblygwr nad yw fel arfer yn gwneud hynny gosod pip yn ystod npm gosod.

Enwau brodorol i'r platfform fel yr unig ffordd gudd. Mae nifer o glipwyr a lladron llwythi bach diweddar wedi rhoi'r gorau i ddrysu lefel cod yn llwyr o blaid labeli dyfalbarhad sy'n edrych yn gyfreithlon. cynorthwyydd-bys-python3, com.apple.python.runtime, a PyRuntimeBroker yn enghreifftiau gwerslyfr — enwau y bydd llygad amddiffynwr yn eu hepgor ar restr o ddeugain o wasanaethau defnyddwyr. Mae hwn yn ffurf rhad a gwydn o gudd-drin: mae tynnu i lawr fesul pecyn, ond mae'r ffeiliau parhad yn goroesi'r tynnu i lawr, ac ni fydd gwasanaeth a enwir ar ôl cydran platfform sy'n edrych yn real yn cael ei lanhau gan unrhyw beth ond archwiliad penodol.

Beth ddylai amddiffynwyr ei wneud

  • Archwilio ~/.config/systemd/user/, ~/Library/LaunchAgents/, a Get-ScheduledTask allbwn ar beiriannau datblygwyr ar gyfer y cofnodion a restrir yn IOCs. Mae tynnu'r pecyn npm yn gadael y rhain yn eu lle; mae angen eu tynnu â llaw.
  • Blocio trosglwyddiadau i'r cyfeiriadau waled a restrir ar ffiniau trysorlys corfforaethol a waled DeFi lle mae rhestr ganiatáu cyfeiriadau ar gael.
  • Chwiliwch am ~/.config/clipboard-guardian/config.json (a chyfwerthoedd platfform) ar draws y fflyd datblygwr-peiriannau. Mae presenoldeb y ffeil yn haint hyder uchel waeth pa fersiwn pecyn a'i cyflwynodd.
  • Chwiliwch node_modules/ am clipboard_guardian/guardian.py mewn cipluniau adeiladu-storfa a allai fod cyn y tynnu i lawr. Mae md5 y ffeil yn sefydlog ar draws yr holl fersiynau a adolygwyd.
  • PIN-ffeil cloi @juggle/resize-observer (y pecyn cyfreithlon) felly ni all gosodiadau yn y dyfodol ddatrys i unrhyw beth arall o dan gamdeip un nod, yn enwedig mewn llifau gwaith di-ffeiliau clo fel npx.
  • Trin unrhyw ôl-osod npm sy'n galw pip install mor ddifrifol â difrifoldeb uchel mewn adeiladu-pipeline polisi. Nid oes rheswm cyfreithlon dros becyn npm fod angen pip ar adeg gosod — mae offer Python yn dosbarthu offer Python.
  • Chwiliwch am ddata monitro cymharol process_iter() ar gyfer prosesau o'r enw python3-dbus-helper sy'n mewnforio pyperclip — y camgymhariad cuddwisg (cynorthwyydd D-Bus yn dal llyfrgell clipfwrdd) yw'r dangosydd ymddygiad glanaf sydd gennym.
  • Cylchdroi cyfeiriadau waled wedi'u gludo o beiriannau heintiedig. Mae herwgipiwr clipfwrdd yn peryglu'r llwybr rhwng rhyngwyneb defnyddiwr waled a tharged gludo; gellir newid cyfeiriadau a gopïwyd tra'u bod wedi'u heintio yn dawel. Dylid trin unrhyw beth a anfonir yn ystod y ffenestr heintio fel rhywbeth a allai fod wedi'i gamgyfeirio.

Y peth pwysig yw bod dyfalbarhad yn goroesi'r broses tynnu i lawr. Bydd y gofrestrfa yn y pen draw yn tynnu'r @jaggle/newid maintarsylwadau ym mhob un o'r naw fersiwn; ni fydd yr uned systemd, y LaunchAgent, a'r Dasg Drefnedig yn cael eu tynnu eu hunain.

Cyfeiriadau

offer-sca-meddalwedd-offer-dadansoddi-cyfansoddiad
Blaenoriaethu, cywiro a diogelu eich risgiau meddalwedd
Cael eich Cyfrif Am Ddim.
Nid oes angen cerdyn credyd.

Sicrhau eich Datblygiad a Chyflwyniad Meddalwedd

gyda Phecyn Cynnyrch Xygeni