FauxUV: Vifurushi Bandia vya PyPI UV Hufungua Jupyter kwenye Wavuti

FauxUV: wasaidizi bandia wa PyPI uv wanaofungua seva ya Jupyter isiyothibitishwa kwenye mtandao

TL; DR

Kundi la vifurushi vya PyPI lilikopa jina la uv, meneja wa kifurushi cha Python chenye kasi na maarufu sana kinachotegemea Rust, kujifanya kama wasaidizi wa UV. Hawasafirishi karibu utendaji wowote halisi. Badala yake wanachobeba ni mzigo wa Windows unaosimama Seva ya JupyterLab ikiwa na uthibitishaji umezimwa na, katika matoleo ya baadaye, huichapisha kwenye mtandao wa umma kupitia handaki la kinyume.

Hiyo ndiyo hadithi nzima katika mstari mmoja: jina la kifaa kinachoaminika kama chambo, na JupyterLab kama injini ya utekelezaji wa msimbo wa mbali. Seva ya Jupyter huendesha msimbo wowote unaoandika kwenye siebook seli; moja iliyozinduliwa na tokeni tupu na kufungwa kwenye kila kiolesura cha mtandao ni kitafsiri kilicho wazi ambacho mtu yeyote anayeweza kufikia mlango anaweza kukiendesha.

Tunafuatilia kundi kama UV bandiaVifurushi viwili vilivyochunguzwa ni moon-uv (0.0.1-0.0.16) na my-magic-uv-helper (0.0.1), iliyochapishwa na opereta huyo huyo na moja kwa moja kwenye PyPI wakati wa uchambuzi.

mazingiraPyPI
Packagesmoon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1)
Lengo la jukwaaWindows
Tabia kuuSeva ya JupyterLab isiyothibitishwa, iliyochapishwa kwenye mtandao kupitia handaki ya nyuma
Zana halali zilizotumika vibayauv, JupyterLab, wingu lililowaka, Pinggy

Chambo: jina ambalo tayari unaliamini

uv ni mojawapo ya zana za Python zilizosakinishwa zaidi katika miaka miwili iliyopita, kwa hivyo "msaidizi wa uv"ni kifurushi ambacho msanidi programu husakinisha bila kufikiria mara ya pili. FauxUV hutumia uaminifu wake kabisa kwa jina hilo. Vifurushi hivyo hufunika halisi uv Kisakinishi kutoka Astral — URL katika sehemu ya kupakia mzigo katika seva halisi na zenye sifa nzuri — kwa hivyo kutazama kwa haraka huoni chochote ila marejeleo ya kuaminika. Hakuna hata kifurushi kimoja kinachoongeza uv utendaji kazi; jina ndilo ufichaji wote.

JupyterLab kama injini ya RCE

Kitovu cha mzigo ni kizindua kinachoanzisha JupyterLab huku kila reli ya ulinzi ikiondolewa:

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

Kila bendera huondoa ulinzi, na hati iliyosafirishwa hata huielezea (kwa Kichina cha asili): ishara tupu "huzima nenosiri na ukaguzi wa tokeni — mtu yeyote anaweza kuunganisha." maabara ya jupyter ni IDE halali ya sayansi ya data, lakini siebook seli hutekeleza msimbo holela kwa muundo. Imesanidiwa hivi na kufungwa kwa 0.0.0.0, huacha kuwa IDE na kuwa ganda la mbali lisilothibitishwa kwenye seva mwenyeji — hakuna haja ya programu hasidi maalum, ni kifaa kikuu tu kinachoelekeza njia isiyo sahihi.

Vipande viwili vinavyounga mkono hufanya iwezekane kufikiwa na kurudiwa:

  • Kichocheo cha kusakinisha kimya kimya. Matoleo ya awali yanaendesha PowerShell na -Kupita kwa Sera ya Utekelezaji moja kwa moja kutoka kuanzisha.py on ufungaji wa bomba, nyuma huku hitilafu zikiwa zimezimwa hivyo pip inaonekana kawaida. Matoleo ya baadaye huhamisha ile ile ya awali kuwa pip-uv zana ya mstari wa amri — na uache muda wa kusakinisha uendeshwaji kiotomatiki kabisa.
  • Handaki la umma la kinyume. Seva imewashwa 0.0.0.0 bado inaweza kufikiwa na wenyeji pekee ambao wanaweza kuelekeza kwenye mashine. Moduli iliyounganishwa hufungua [Pinggy](https://pinggy.io/) Handaki ya SSH inayoelekeza mlango wa Jupyter wa eneo lako hadi kwenye anwani ya umma, ikiondoa kikomo hicho. Hati iliyosafirishwa pia hubeba — ilitoa maoni — njia mbadala kwa kutumia Cloudflare's imewaka mawingu na netsh proksi ya bandari kwa IP ya Linode, ikiandika lengo moja kupitia miundombinu tofauti.

Weka pamoja: sakinisha kifurushi, na mwenyeji wa Windows anaishia kuendesha JupyterLab isiyo na nenosiri na kuichapisha kwenye mtandao wazi.

Jinsi FauxUV ilivyobadilika

Matoleo ya FauxUV yalisafirishwa haraka, na sehemu ya kuchochea mzigo ilipita juu yao — ukumbusho kwamba toleo moja lililotiwa alama mara chache husimulia hadithi nzima ya mstari wa kifurushi.

Hatua matoleo Tanga Inaongeza nini
Usakinishaji wa ndoano moon-uv 0.0.1-0.0.3, my-magic-uv-helper 0.0.1 setup.py kwenye usakinishaji wa bomba usakinishaji wa UV + maandalizi ya PATH
Muda wa CLI moon-uv 0.0.5-0.0.13 pip-uv amri kizindua cha JupyterLab kisicho na nenosiri
Tunnel moon-uv 0.0.14-0.0.16 pip-uv amri handaki ya Pinggy inayofanya kazi kinyume

Ikumbukwe kwamba, muda wa kusakinisha uliendeshwa kiotomatiki kuondolewa katika matoleo ya baadaye, yenye uwezo zaidi — kwa hivyo skana ilitumika tu kwenye mzunguko wa maisha hooks ingepata alama ya matoleo mapya kama chini hatari, kinyume kabisa.

Viashiria vya maelewano

Imethibitishwa kwa kusoma chanzo cha kifurushi; sehemu za mwisho zimetiwa alama maoni Viashiria vya mtandao vimebadilishwa rangi kwenye faili lakini havijatekelezwa na toleo lililochanganuliwa.

aina Kiashiria
Amri ya kusakinisha powershell -ExecutionPolicy Bypass Kuchukua kisakinishi halisi cha UV, wakati wa kusakinisha bomba
Bendera za JupyterLab --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf
Handaki ya nyuma (inayofanya kazi) free[.]pinggy[.]io:443 usambazaji wa ndani 127.0.0.1:8888
Mwenyeji wa handaki (ametoa maoni) cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718
IP (imetolewa maoni) 45[.]79[.]134[.]161 (Linode) kupitia netsh port-proxy
Kuendelea huandaa %USERPROFILE%\.local\bin kwa mtumiaji PATH

Ishara za kitabia zinazofaa kuonywa, bila kujali masharti haya halisi: a ufungaji wa bomba hiyo huibuka powershell -ExecutionPolicy Bypassyoyote jupiter uzinduzi wa kuchanganya ishara =”” na –ip=0.0.0.0na SSH inayotoka kwenda *.pinggy.io kutoka kwa msanidi programu au mashine ya CI.

Tabia na asili iliyozingatiwa

Vifurushi hivi viwili vina mwandishi na mbinu moja: jina la kifaa kinachoaminika, kizuizi cha Windows pekee, utekelezaji wa mandharinyuma uliokandamizwa na hitilafu, na kutegemea zana zinazoaminika kwa hivyo kwa haraka unaona URL zinazoaminika pekee. Chanzo kina maoni ya lugha ya Kichina yanayoelezea bendera zinazohusiana na usalama waziwazi; tunaripoti hizo kama kauli zinazoonekana katika faili, si kama dai kuhusu nia. ruhusu_asili thamani na colab.bat jina la faili hurejelea mtiririko wa kazi usio rasmi wa "shiriki muda wangu wa utekelezaji wa ndani" unaozunguka kwa Google Colab. Chochote asili yake, matokeo yaliyofungashwa ni sawa.

Athari na mwongozo kwa watetezi

Nani ameathiriwa na FauxUV. Wasanidi programu wa Windows na waendeshaji wa CI ambao ufungaji wa bomba mojawapo ya vifurushi hivi. JupyterLab isiyo na nenosiri imewashwa 0.0.0.0 ni utekelezaji wa msimbo wa mbali kwa mtu yeyote anayeweza kufikia lango; handaki huondoa kikomo cha "nani anayeweza kuifikia". Seva huendesha kama mtumiaji anayesakinisha, ikirithi faili, tokeni, na sifa za wingu za mtumiaji huyo.

Kwa nini ni rahisi kukosa. Kila kamba ya mtandao inaelekeza kwenye seva mwenyeji anayeaminika — Astral, JupyterLab, imewaka mawingu, Pingggy, Colab. Hakuna programu hasidi ya binary kwa hash na hakuna blob iliyofichwa ya kusimbua. Uchanganuzi unaotegemea sifa na sahihi zote mbili zinapunguza uzito wa hili, ndiyo maana swali la kitabia — Kusakinisha kifurushi hiki kunaifanya mashine ifanye nini? — ndiye anayeielewa.

Mwongozo:

  • Tibu wakati wowote wa usakinishaji powershell -ExecutionPolicy Bypass kama ishara inayovunja muundo, URL yoyote inayopatikana.
  • Tahadhari imewashwa jupiter ilizinduliwa na tokeni tupu na –ip=0.0.0.0; mchanganyiko huo haupaswi kuonekana kamwe kwenye kituo cha kazi au kiendeshaji.
  • Kifuatiliaji cha watoa huduma za SSH zinazotoka hadi kwenye handaki (*.pinggy.io, *.trycloudflare.com) kutoka kwa mazingira ya msanidi programu na CI.
  • Kufunga uv kutoka [chanzo chake rasmi](https://docs.astral.sh/uv/) na uwe na shaka kuhusu vifurushi vya "msaidizi" vya watu wengine vinavyofunga kifaa ambacho tayari ni kidogo kusakinisha.
  • Bandika na uhakiki upya utegemezi kwenye uboreshaji — mstari wa kifurushi unaweza kukuza uwezo mpya wa toleo-juu-ya-toleo.
zana-za-sca-za-uchambuzi-wa-muundo-wa-programu
Weka kipaumbele, rekebisha, na ulinde hatari za programu yako
Pata Akaunti yako ya Bure.
Hakuna kadi ya mkopo inayotakiwa.

Linda Uundaji na Uwasilishaji wa Programu yako

na Xygeni Product Suite