FauxUV: Жалған PyPI uv пакеттері Jupyter-ді вебке ашады

FauxUV: интернетке аутентификацияланбаған Jupyter серверін ашатын жалған PyPI uv көмекшілері

TL; DR

PyPI пакеттерінің кластері атауын алды uv, жылдам, өте танымал Rust негізіндегі Python пакет менеджері, ультракүлгін сәулелер көмекшілері ретінде көрінеді. Олар ешқандай нақты функцияларды жеткізе алмайды. Оның орнына олар Windows пайдалы жүктемесін ұсынады, ол ... Аутентификациясы өшірілген JupyterLab сервері ал кейінгі нұсқаларында оны кері туннель арқылы интернетке жариялайды.

Бұл бүкіл оқиғаны бір жолмен баяндайды: сенімді құралдың атауы жем ретінде, ал JupyterLab қашықтан кодты орындау механизмі ретінде қолданылады. Jupyter сервері сіз енгізген кез келген кодты not серверіне іске қосадыebook ұяшық; бос токенмен іске қосылып, әрбір желілік интерфейске байланған ұяшық - бұл портқа жете алатын кез келген адам басқара алатын ашық интерпретатор.

Біз кластерді келесідей бақылаймыз FauxUVҚарастырылған екі қаптама moon-uv (0.0.1-0.0.16) және my-magic-uv-helper (0.0.1), сол оператор жариялаған және талдау кезінде PyPI-де тікелей эфирде.

экожүйеППИ
пакеттерmoon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1)
Мақсатты платформаWindows
Негізгі мінез-құлықИнтернетке кері туннель арқылы жарияланған, расталмаған JupyterLab сервері
Заңды құралдар теріс пайдаланылдыuv, JupyterLab, cloudflared, Pinggy

Қармақ: сіз қазірдің өзінде сенетін атау

uv соңғы екі жылдағы ең көп орнатылған Python құралдарының бірі, сондықтан «көмекші» uv«- бұл әзірлеуші ​​​​екінші ойланбастан орнататын пакет. FauxUV өзінің сенімділігін толығымен осы атауға жұмсайды. Пакеттер ... түпнұсқа uv Astral орнатушысы — нақты, беделді хосттардағы пайдалы жүктеме нүктесіндегі URL мекенжайлары — сондықтан тез қарап шығу тек сенімді сілтемелерді ғана көрсетеді. Пакеттердің ешқайсысы шын мәнінде қосады uv функционалдылық; атау - бұл бүкіл жасырындық.

JupyterLab RCE қозғалтқышы ретінде

Жүктің орталық бөлігі - әрбір қоршау алынып тасталған кезде JupyterLab іске қосатын іске қосу құрылғысы:

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

Әрбір жалауша қорғанысты алып тастайды, ал жіберілген жазбада тіпті оларға (түпнұсқа қытай тілінде) түсініктемелер берілген: бос белгі «Құпия сөз бен токен тексерулерін өшіреді — кез келген адам қосыла алады.» юпитер зертханасы заңды деректер ғылымы IDE болып табылады, бірақ олай емесebook ұяшық кез келген кодты жоба бойынша орындайды. Осылай конфигурацияланған және байланыстырылған 0.0.0.0, ол IDE болуды тоқтатады және хосттағы аутентификацияланбаған қашықтағы қабыққа айналады — арнайы зиянды бағдарламаның екілік файлы қажет емес, тек негізгі құрал дұрыс емес бағытты көрсетеді.

Екі тірек бөлігі оны қолжетімді және қайталанатын етеді:

  • Дыбыссыз орнату триггері. Алғашқы нұсқалары PowerShell бағдарламасын келесідей іске қосады: -ExecutionPolicy айналып өтуі тікелей бастап setup.py on пип орнату, қателер басылған фонда PIP қалыпты көрінеді. Кейінгі нұсқалар сол қарапайымдылықты а-ға ауыстырады пип-ультракүлгін пәрмен жолы құралы — және орнату уақытында автоматты түрде іске қосуды толығымен алып тастаңыз.
  • Қоғамдық кері туннель. Сервер қосулы 0.0.0.0 әлі де тек машинаға бағыттай алатын хосттар ғана қол жеткізе алады. Біріктірілген модуль [Pinggy](https://pinggy.io/) Жергілікті Jupyter портын жалпыға қолжетімді мекенжайға бағыттайтын SSH кері туннелі, бұл шектеуді алып тастайды. Жіберілген скрипт сонымен қатар Cloudflare пайдаланатын балама жолды да қамтиды — түсініктеме берілген. бұлтты жарқыраған және netsh port-proxy-ді Linode IP мекенжайына жібереді, сол мақсатты әртүрлі инфрақұрылым арқылы құжаттайды.

Біріктіру: пакетті орнатыңыз, сонда Windows хосты құпия сөзсіз JupyterLab іске қосып, оны ашық интернетке жариялайды.

FauxUV қалай дамыды

FauxUV нұсқалары тез арада жеткізілді, ал пайдалы жүктеменің іске қосу нүктесі олардың үстінен жылжыды - бұл бір белгіленген нұсқа пакет желісінің бүкіл тарихын сирек баяндайтынын еске салады.

кезең Нұсқаулар Триггер Ол не қосады
Орнату ілмегі moon-uv 0.0.1–0.0.3 жж. my-magic-uv-helper 0.0.1 setup.py pip орнату кезінде UV орнату + PATH алдын ала орнату
CLI жұмыс уақыты moon-uv 0.0.5-0.0.13 pip-uv бұйрық құпия сөзсіз JupyterLab іске қосу құрылғысы
Туннель moon-uv 0.0.14-0.0.16 pip-uv бұйрық белсенді Пингги кері туннелі

Атап айтқанда, орнату уақытында автоматты түрде іске қосылды жойылған кейінгі, әлдеқайда қабілетті нұсқаларында — сондықтан сканер тек өмірлік циклде ғана кілттелген hooks жаңа шығарылымдарды осылай бағалар еді Аздау қауіпті, дәл керісінше.

Ымыраға келу көрсеткіштері

Пакет көзін оқу арқылы расталды; соңғы нүктелер белгіленген Түсініктеме берді файлдарда бар, бірақ талданған нұсқамен орындалмайды. Желі индикаторлары бұрмаланған.

түрі Индикатор
Орнату командасы powershell -ExecutionPolicy Bypass pip орнату кезінде түпнұсқа ультракүлгін сәулелену құрылғысын алу
JupyterLab жалаушалары --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf
Кері туннель (белсенді) free[.]pinggy[.]io:443 жергілікті бағыттау 127.0.0.1:8888
Туннель қожайыны (түсініктеме берілген) cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718
IP (түсініктеме берілген) 45[.]79[.]134[.]161 (Линод) арқылы netsh port-proxy
Тұрақтылық препендтер %USERPROFILE%\.local\bin пайдаланушыға PATH

Осы нақты жолдарға қарамастан, ескертуге тұрарлық мінез-құлық сигналдары: a пип орнату ол пайда болады powershell -ExecutionPolicy айналып өтуікез келген Юпитер ұшыруды біріктіру токен = ” бірге –ip=0.0.0.0және шығыс SSH *.pinggy.io әзірлеушіден немесе CI машинасынан.

Байқалған мінез-құлық және шығу тегі

Екі пакет автор мен әдісті ортақ пайдаланады: сенімді құралдың атауы, тек Windows жүйесінде ғана жұмыс істеу, қателіктермен басылған фондық орындау және беделді құралдарға сүйену, сондықтан жылдам шолу тек беделді URL мекенжайларын көрсетеді. Дереккөзде қауіпсіздікке қатысты жалаушаларды анық сипаттайтын қытай тіліндегі түсініктемелер бар; біз оларды файлдағы байқалатын мәлімдемелер ретінде хабарлаймыз, себебі туралы мәлімдеме ретінде емес. рұқсат_беруші құндылық және colab.bat filename Google Colab үшін таратылатын бейресми «менің жергілікті жұмыс уақытымды бөлісу» жұмыс процестерін қайталайды. Бастапқы нұсқасы қандай болса да, пакеттелген нәтиже бірдей.

Қорғаушыларға әсер ету және нұсқаулық

FauxUV әсеріне кім ұшырайды. Windows әзірлеушілері және CI жүгірушілері пип орнату осы пакеттердің бірі. Құпия сөзсіз JupyterLab қосулы 0.0.0.0 портқа жете алатын кез келген адам үшін қашықтан код орындау; туннель «кім оған жете алады» шегін алып тастайды. Сервер орнатушы пайдаланушы ретінде жұмыс істейді, сол пайдаланушының файлдарын, токендерін және бұлттық тіркелгі деректерін мұра етеді.

Неліктен оны жіберіп алу оңай. Әрбір желілік жол беделді хостқа нұсқайды — Astral, JupyterLab, бұлтты жарқыраған, Pinggy, Colab. Хэшке арналған зиянды екілік бағдарлама және декодтауға арналған түсініксіз блоб жоқ. Беделге және қолтаңбаға негізделген сканерлеудің екеуі де бұл мәселенің салмағын төмендетеді, сондықтан мінез-құлық мәселесі туындайды — бұл пакетті орнату машинаны не істейді — оны ұстайтын адам.

Нұсқаулық:

  • Кез келген орнату уақытын қарастырыңыз powershell -ExecutionPolicy айналып өтуі құрылымды бұзатын сигнал ретінде, ол қандай URL мекенжайын алса да.
  • Ескерту қосулы Юпитер бос токенмен іске қосылды және –ip=0.0.0.0; бұл комбинация ешқашан жұмыс станциясында немесе жүгірткіде пайда болмауы керек.
  • SSH-тен туннель провайдерлеріне шығыс байланысын бақылау (*.pinggy.io, *.trycloudflare.com) әзірлеушіден және CI орталарынан.
  • орнату uv [ресми дереккөзінен](https://docs.astral.sh/uv/) және орнатуға онша қиын емес құралды орап алатын үшінші тарап «көмекші» пакеттеріне күмәнмен қараңыз.
  • Жаңартуға тәуелділіктерді бекітіп, қайта қарап шығыңыз — пакет желісі жаңа мүмкіндіктерді нұсқадан нұсқаға дейін арттыра алады.
sca-құралдары-бағдарламалық жасақтама-композиция-талдау-құралдары
Бағдарламалық жасақтама тәуекелдеріне басымдық беріңіз, оларды жойыңыз және қауіпсіз етіңіз
Тегін аккаунтыңызды алыңыз.
Несие картасы қажет емес.

Бағдарламалық жасақтаманы әзірлеу және жеткізуді қауіпсіз етіңіз

Xygeni өнім жиынтығымен бірге