FauxUV: Paket PyPI uv Palsu Muka Jupyter ka Wéb

FauxUV: asisten uv PyPI palsu anu muka server Jupyter anu teu diauténtikasi ka internét

TL; DR

Sakumpulan pakét PyPI nginjeum nami uv, manajer pakét Python basis Rust anu gancang sareng populer pisan, pikeun nyamar janten pembantu uv. Aranjeunna ampir teu ngirimkeun fungsi anu nyata. Anu dibawa ku aranjeunna nyaéta muatan Windows anu nangtung Server JupyterLab kalayan auténtikasi dipareuman sareng, dina vérsi anu langkung énggal, nyebarkeunana ka internét umum ngalangkungan torowongan tibalik.

Éta sakabéh carita dina hiji baris: ngaran alat anu dipercaya salaku umpanna, sareng JupyterLab salaku mesin palaksanaan kode jarak jauh. Server Jupyter ngajalankeun kode naon waé anu anjeun ketikkeun kana notebook sél; hiji anu dijalankeun nganggo token kosong sareng kaiket ka unggal antarmuka jaringan mangrupikeun juru basa kabuka anu tiasa dijalankeun ku saha waé anu tiasa ngahontal port éta.

Urang ngalacak klaster salaku UV PalsuDua pakét anu ditalungtik nyaéta moon-uv (0.0.1-0.0.16) jeung my-magic-uv-helper (0.0.1), diterbitkeun ku operator anu sami sareng langsung aya dina PyPI nalika analisis.

ékosistemPyPI
bungkusanmoon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1)
Platform anu ditujukeunWindows
Paripolah intiServer JupyterLab anu teu diauténtikasi, dipedalkeun ka internét ngalangkungan torowongan tibalik
Alat-alat anu sah disalahgunakeunuv, JupyterLab, cloudflared, Pinggy

Daya tarikna: nami anu anjeun parantos percanten

uv mangrupikeun salah sahiji alat Python anu paling sering dipasang dina dua taun ka pengker, janten "anu ngabantosan pikeun uv"mangrupikeun pakét anu dipasang ku pamekar tanpa pikir panjang. FauxUV ngagunakeun kredibilitasna sapinuhna kana nami éta. Pakét-pakét éta ngabungkus asli uv installer ti Astral — URL dina titik payload di host anu asli sareng terhormat — janten sakilas teu ningali nanaon iwal ti rujukan anu tiasa dipercaya. Teu aya hiji ogé pakét anu leres-leres nambihan uv fungsi; ngaranna nyaéta sakabéh samaran.

JupyterLab salaku mesin RCE

Bagian tengah muatan nyaéta paluncur anu ngaktifkeun JupyterLab nalika unggal pager pager dicabut:

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

Unggal bandéra ngaleungitkeun panyalindungan, sareng skrip anu dikirimkeun malah ngaanotasikeunana (dina basa Cina asli): token kosong "Mareuman cék kecap akses sareng token — saha waé tiasa nyambung." jupyter lab mangrupikeun IDE élmu data anu sah, tapi sanésebook sél ngaéksekusi kodeu acak ku desain. Dikonfigurasi sapertos kieu sareng kabeungkeut ka 0.0.0.0, éta eureun janten IDE sareng janten shell jarak jauh anu teu diauténtikasi dina host — teu peryogi binér malware khusus, ngan ukur alat utama anu nunjuk ka arah anu salah.

Dua bagian pendukung ngajantenkeun éta tiasa dihontal sareng tiasa diulang:

  • Pemicu pamasangan anu teu aya sorana. Versi awal ngajalankeun PowerShell sareng -Ngalangkungan Kawijakan Palaksanaan lempeng tina setup.py on pip dipasang, di tukang kalayan kasalahan anu disumputkeun kitu pip katingalina normal. Versi anu langkung énggal mindahkeun primitif anu sami kana pip-uv alat baris paréntah — sareng eureunkeun sadayana prosés otomatis waktos pamasangan.
  • Torowongan tibalik umum. Server hurung 0.0.0.0 masih ngan ukur tiasa dihontal ku host anu tiasa ngarahkeun ka mesin. Modul anu dibundel muka [Pinggy](https://pinggy.io/) Torowongan tibalik SSH anu ngirimkeun port Jupyter lokal ka alamat publik, ngaleungitkeun wates éta. Skrip anu dikirim ogé mawa — anu dikoméntaran — jalur alternatif nganggo Cloudflare cloudflared jeung netsh port-proxy ka IP Linode, ngadokumentasikeun tujuan anu sami ngalangkungan infrastruktur anu béda.

Susun: pasang pakétna, teras host Windows bakal ngajalankeun JupyterLab tanpa kecap akses sareng nyebarkeunana ka internét anu kabuka.

Kumaha FauxUV mekar

Vérsi FauxUV dikirimkeun sacara gancang, sareng titik pemicu muatan ngalih ka dinya — panginget yén hiji vérsi anu ditandaan jarang nyaritakeun sakabéh carita ngeunaan hiji lini pakét.

Panggung versi pelatuk Naon anu ditambahkeun
Hook pamasangan moon-uv 0.0.1–0.0.3, my-magic-uv-helper 0.0.1 setup.py dina pamasangan pipa pamasangan uv + PATH prepend
Waktu jalanna CLI moon-uv 0.0.5-0.0.13 pip-uv parentah paluncur JupyterLab tanpa kecap akses
torowongan moon-uv 0.0.14-0.0.16 pip-uv parentah torowongan tibalik Pinggy anu aktip

Anu penting, waktos pamasangan otomatis dijalankeun nyaéta dipiceun dina vérsi anu langkung énggal sareng langkung mumpuni — janten pamindai ngan ukur dikonci dina siklus hirupna hooks bakal ngoleksi rilis anu langkung énggal salaku leuwih saeutik picilakaeun, persis ka tukang.

Indikator kompromi

Dikonfirmasi ku cara maca sumber pakét; titik tungtung ditandaan commented aya dina file tapi teu dijalankeun ku vérsi anu dianalisis. Indikator jaringan teu robah.

ngetik indikator
Paréntah masang powershell -ExecutionPolicy Bypass nyokot installer uv asli, dina waktos pamasangan pip
Bandéra JupyterLab --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf
Torowongan tibalik (aktif) free[.]pinggy[.]io:443 ngirimkeun lokal 127.0.0.1:8888
Host torowongan (dikoméntaran) cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718
IP (dikoméntaran) 45[.]79[.]134[.]161 (Linode) ngalangkungan netsh port-proxy
katekunan nyiapkeun %USERPROFILE%\.local\bin ka PATH pangguna

Sinyal paripolah anu pantes diwaspadai, henteu gumantung kana senar anu pasti ieu: a pip dipasang anu ngalahirkeun powershell -ExecutionPolicy Bypass; naon waé jupiter peluncuran ngagabungkeun token=”” jeung –ip=0.0.0.0; jeung SSH kaluar ka *.pinggy.io ti mesin pamekar atanapi CI.

Paripolah anu diamati sareng asal-usulna

Dua pakét ieu ngabagi hiji pangarang sareng hiji metode: nami alat anu dipercaya, gating khusus Windows, palaksanaan latar tukang anu dicegah kasalahan, sareng ngandelkeun alat anu terhormat janten pandangan sakedap ngan ukur ningali URL anu terhormat. Sumberna mawa koméntar basa Cina anu ngajelaskeun umbul-umbul anu aya hubunganana sareng kaamanan sacara jelas; kami ngalaporkeun éta salaku pernyataan anu tiasa dititénan dina file, sanés salaku klaim ngeunaan motif. allow_origin nilai sareng a colab.bat Ngaran koropak ngageterkeun alur kerja informal "bagikeun runtime lokal kuring" anu sumebar pikeun Google Colab. Naon waé asal-usulna, hasil anu dibungkus sami.

Dampak sareng pituduh pikeun para pembela

Saha anu kakeunaan FauxUV. Pamekar Windows sareng pamula CI anu pip dipasang salah sahiji paket ieu. JupyterLab tanpa kecap akses dina 0.0.0.0 nyaéta palaksanaan kode jarak jauh pikeun saha waé anu tiasa ngahontal port; torowongan ngaleungitkeun wates "saha waé anu tiasa ngahontal éta". Server dijalankeun salaku pangguna pamasang, ngawaris file, token, sareng kredensial awan pangguna éta.

Naha gampang pisan leungiteun. Unggal string jaringan nunjuk ka host anu terhormat — Astral, JupyterLab, cloudflared, Pinggy, Colab. Teu aya binér malware anu kedah di-hash sareng teu aya blob anu dikaburkan pikeun di-dekode. Pamindaian dumasar reputasi sareng tanda tangan duanana kirang ngabeuratan ieu, éta sababna patarosan paripolah — Naon anu dilakukeun ku masang pakét ieu pikeun mesin éta — nyaéta anu néwak éta.

Bimbingan:

  • Rawat naon waé waktos pamasangan powershell -ExecutionPolicy Bypass salaku sinyal anu ngarecahkeun build-breaking, naon waé URL anu dicandakna.
  • Bewara hurung jupiter diluncurkeun nganggo token kosong sareng –ip=0.0.0.0; kombinasi éta teu kedah pernah muncul dina workstation atanapi runner.
  • Pantau panyadia SSH ka torowongan anu kaluar (*.pinggy.io, *.trycloudflare.com) ti lingkungan pamekar sareng CI.
  • masang uv tina [sumber resmina](https://docs.astral.sh/uv/) sareng janten skeptis kana pakét "pembantu" pihak katilu anu ngabungkus alat anu parantos sesah dipasang.
  • Sematkeun sareng tinjau deui katergantungan dina pamutahiran — hiji lini pakét tiasa ngembangkeun kamampuan énggal dina vérsi-langkung-vérsi.
alat-alat-sca-parangkat lunak-analisis-komposisi
Prioritaskeun, remediasi, sareng amankeun résiko parangkat lunak anjeun
Kéngingkeun Akun Gratis anjeun.
Henteu kedah kartu kiridit.

Amankeun Pangwangunan sareng Pangiriman Parangkat Lunak Anjeun

sareng Xygeni Product Suite