Hugging Face မော်ဒယ်ဖိုင်များသည် လျှို့ဝှက်ကုဒ်ကို အသုံးပြုနိုင်သည်။
အန္တရာယ်ရှိသော မော်ဒယ်ပက်ကေ့ချ်များသည် မလုံခြုံသော တင်ခြင်း (loading) ပြုလုပ်နေစဉ်အတွင်း ကုဒ်များကို လုပ်ဆောင်နိုင်သည်။
အန္တရာယ်ရှိသော မော်ဒယ်ပက်ကေ့ချ်များသည် မလုံခြုံသော တင်ခြင်း (loading) ပြုလုပ်နေစဉ်အတွင်း ကုဒ်များကို လုပ်ဆောင်နိုင်သည်။ Pickle reverse shells၊ ပျက်စီးနေသော ဖိုင်စကင်နာ၏ လုပ်ဆောင်မှုနှင့် သုတေသနပြုထားသော မော်ဒယ်အမည် ရောထွေးမှုတို့ကို ဥပမာသုံးခုဖြင့် ရှင်းပြထားပြီး အထောက်အထားခိုးယူမှုဆိုင်ရာ ပြောဆိုမှုများအပေါ် ရှင်းလင်းသော ကန့်သတ်ချက်များလည်း ပါဝင်သည်။
ရေးသားထားသော ထုတ်ဝေမှု (အင်္ဂလိပ်) ကို ဖတ်ရန် ↗
ဤဗီဒီယိုတွင် ဖော်ပြထားသောအရာများ
- ဂဏန်းမော်ဒယ်အလေးချိန်များ၊ လုပ်ဆောင်နိုင်သော serialization နှင့် စိတ်ကြိုက် repository ကုဒ်များသည် မတူညီသော အရာများဖြစ်သည်။
- JFrog နှင့် ReversingLabs တို့သည် reverse-shell payloads များကို မှတ်တမ်းတင်ထားသည်။ ၎င်းတို့ရွေးချယ်ထားသော အစီရင်ခံစာများသည် အမည်ဖော်ပြထားသော သားကောင်များထံမှ အထောက်အထားခိုးယူမှုကို အတည်မပြုခဲ့ပါ။
- Checkmarx Model Confusion သည် သုတေသနသရုပ်ပြမှုတစ်ခုဖြစ်ပြီး ကိုက်ညီသော အဝေးထိန်းမော်ဒယ်နှင့် မလုံခြုံသော တင်ခြင်း (loading) လိုအပ်သည်။
- safetensors နှင့် ပြင်ဆင်ထားသော loaders များကို နှစ်သက်ပါ၊ စိတ်ကြိုက်ကုဒ်ကို ပြန်လည်စစ်ဆေးပြီး ချိတ်ဆွဲပါ၊ မရင်းနှီးသော ပက်ကေ့ချ်များကို ကိုယ်ရေးကိုယ်တာ လျှို့ဝှက်ချက်များနှင့် မလိုအပ်သော ကွန်ရက်ချိတ်ဆက်မှုများမှ သီးခြားထားပါ။
ဘာသာပြန်ထားသော စာသားမှတ်တမ်း
မူရင်း အင်္ဂလိပ်စကားပြောမှ ဘာသာပြန်ထားသည်။ ရရှိနိုင်သော အသံနှင့် စာတန်းထိုးများကို YouTube မှ ထိန်းချုပ်ထားသည်။
မော်ဒယ်ဒေါင်းလုဒ်တစ်ခုက ဧည့်သည်ကို ဘယ်လိုဖိတ်ခေါ်နိုင်လဲ။
0:00 မော်ဒယ်ဖိုင်ဆိုတာ disk ပေါ်က နံပါတ်တွေသက်သက်ပဲ။ အန္တရာယ်ရှိတဲ့ Hugging Face package တစ်ခုကို load လုပ်တာက remote shell တစ်ခုကို ဖွင့်ပေးခဲ့တယ်။ ဒါက local AI ရဲ့ ရည်မှန်းချက်ကြီးတဲ့ အဓိပ္ပာယ်ဖွင့်ဆိုချက်တစ်ခုပါ။ loading က ဘယ်လို execution ဖြစ်လာတာလဲ။ ဘယ်လျှို့ဝှက်ချက်တွေကို သူရောက်နိုင်လဲ။ ဘာက တကယ်တမ်း သူ့ကို ရပ်တန့်စေတာလဲ။ ပြီးတော့ ပဟေဠိတစ်ခုကို စိတ်ထဲမှာ မှတ်ထားပါ။ အန္တရာယ်ရှိတဲ့အပိုင်း ဖြစ်ပျက်ပြီးတဲ့နောက်မှာ မော်ဒယ်တစ်ခု load လုပ်လို့ မရတာ ဖြစ်နိုင်တယ်။
0:18 ဒါက The Daily Diff ပါ၊ အတွင်းပိုင်းကို ကြည့်ရအောင်။ Hugging Face က machine learning မော်ဒယ်တွေ၊ ဒေတာအစုအဝေးတွေနဲ့ applications တွေကို မျှဝေဖို့အတွက် platform တစ်ခုပါ။ မော်ဒယ်အလေးချိန်တွေက သင်ယူထားတဲ့ ဂဏန်းတွေပါ။ repository တစ်ခုမှာ configuration နဲ့ Python code တွေလည်း ပါဝင်နိုင်တယ်။ ဒီမှာ အန္တရာယ်က သင် load လုပ်တဲ့အခါ လုပ်ဆောင်နိုင်တဲ့ packaging က သင့်ကွန်ပျူတာထဲကို ဝင်လာတာပဲ။ Pickle က Python object တွေကို ပြန်လည်တည်ဆောက်ဖို့ ညွှန်ကြားချက်တွေနဲ့အတူ သိမ်းဆည်းထားတယ်။
loader က ပါဆယ်ရဲ့ ညွှန်ကြားချက်တွေကို ဘယ်လိုလုပ်ဆောင်သလဲ။
0:37 မလုံခြုံတဲ့ loader တစ်ခုက အဲဒီညွှန်ကြားချက်တွေကို လိုက်နာပြီး unpack လုပ်နေစဉ်အတွင်း functions တွေကို ခေါ်ဆိုနိုင်တယ်။ bytes တွေကို download လုပ်တာက ပါဆယ်ကို သင့် disk ပေါ်မှာ တင်လိုက်တာပဲ။ Deserializing လုပ်တာက ဖွင့်လိုက်တာပဲ။ တစ်နေရာရာမှာ ဖိုင်ဖော်မတ်တစ်ခုဟာ အခကြေးငွေမယူတဲ့ system administrator အဖြစ် တိုးမြှင့်ခံရပြီ။ JFrog က Goober Two ကို ၂၀၂၄ ခုနှစ် ဖေဖော်ဝါရီလမှာ အစီရင်ခံခဲ့တယ်။ သူ့ရဲ့ Pickle payload က remote command access ကို ပေးဖို့ အပြင်ဘက်ကို ချိတ်ဆက်တဲ့ reverse shell တစ်ခုကို ဖွင့်ပေးခဲ့တယ်။ repository ကို ဖျက်ပစ်ခဲ့တယ်။ JFrog က သုတေသီပါဝင်မှုကို အကြံပြုတဲ့ သဲလွန်စတွေကိုလည်း တွေ့ရှိခဲ့တာကြောင့်
1:02 attribution က မသေချာဘူး။ မလိုချင်တဲ့ ဧည့်သည်ကို မှတ်တမ်းတင်ထားခဲ့တယ်။ အမှန်တကယ် သားကောင်များထံမှ အထောက်အထားခိုးယူမှုကို အတည်မပြုနိုင်ခဲ့ပါ။
လုပ်ငန်းစဉ်ရဲ့ လက်လှမ်းမီမှုထဲမှာ ဘယ်လိုလျှို့ဝှက်ချက်တွေ ရှိလဲ။
1:09 သင့်အသုံးပြုသူအဖြစ် လုပ်ဆောင်နေတဲ့ ကုဒ်က အဲဒီ process ဖတ်နိုင်သမျှကို ဖတ်နိုင်တယ်။ တပ်ဆင်ထားတဲ့ cloud သော့ ဒါမှမဟုတ် လက်လှမ်းမီတဲ့ token က ဖြစ်နိုင်တဲ့ ပစ်မှတ်တစ်ခု ဖြစ်လာတယ်။ အဲဒါကို ပေးပို့ဖို့အတွက်လည်း အလုပ်လုပ်တဲ့ network လမ်းကြောင်းတစ်ခု လိုအပ်တယ်။ ဂဏန်းအလေးချိန်တွေချည်းသက်သက်မှာ လျှို့ဝှက်အထောက်အထားစွမ်းအား မရှိဘူး။ သင့်ခွင့်ပြုချက်တွေက မော်ဒယ်ကတ်ရဲ့ စိတ်ဝင်စားစရာ အပိုင်းကို ပံ့ပိုးပေးတယ်။ နောက်ထပ် တံခါးတစ်ချပ် ရှိတယ်။ အချို့မော်ဒယ်တွေက remote ကုဒ်ကို ယုံကြည်ဖို့ သင့်ကို တောင်းဆိုပြီး အဲဒါက repository ကနေ Python ကို ခွင့်ပြုတယ်။ Safe tensor ဖိုင်တွေက အဲဒီကုဒ်ဘေးမှာ ရှိနေနိုင်တယ်။
1:32 အလေးချိန်ဖော်မတ်ကို စစ်ဆေးတာက ဝင်ပေါက်တစ်ခုကို ကာကွယ်ပေးနေချိန်မှာ repository ရဲ့ ကုဒ်ကတော့ သင့်ကို ဧည့်သည်တံဆိပ်ပြားပေးဖို့ စောင့်နေတုန်းပဲ။
ပျောက်ဆုံးနေတဲ့ local လမ်းကြောင်းက ဘာလို့ remote မော်ဒယ်ဖြစ်လာရတာလဲ။
1:38 Checkmarx က Model Confusion ကို သရုပ်ပြခဲ့တယ်။ ပျောက်ဆုံးနေတဲ့ local မော်ဒယ်လမ်းကြောင်းက ကိုက်ညီတဲ့အမည်နဲ့ public repository တစ်ခုဆီကို ရောက်ရှိသွားနိုင်တယ်။ အဲဒါကို remote ကုဒ် ဖွင့်ထားတာနဲ့ ပေါင်းစပ်လိုက်ရင် မှားယွင်းတဲ့ package က အလုပ်လုပ်နိုင်တယ်။ ဒါက အမည်မဖော်ထားတဲ့ ကုမ္ပဏီတစ်ခုရဲ့ နမူနာနဲ့ ပတ်သက်တဲ့ သုတေသနသရုပ်ပြမှုတစ်ခုဖြစ်ပြီး တစ်ရက်အတွင်း ပြင်ဆင်ခဲ့တယ်။ ပျောက်ဆုံးနေတဲ့ ဖိုင်တွဲတစ်ခုက အိမ်ရှင်တစ်ဦးကို ရရှိခဲ့တယ်။ ReversingLabs က ၂၀၂၅ ခုနှစ် ဖေဖော်ဝါရီလမှာ နမူနာနှစ်ခုကို အစီရင်ခံခဲ့ပြီး
ပျက်စီးနေတဲ့ packages တွေက စကင်နာအဟောင်းကို ဘယ်လိုရှောင်တိမ်းခဲ့လဲ။
1:58 ဒီနည်းပညာကို nullify AI လို့ ခေါ်ခဲ့တယ်။ နှစ်ခုလုံးမှာ reverse shells တွေ ပါဝင်တယ်။ ၎င်းတို့ရဲ့ seven zip packaging က သာမန် PyTorch loading ကို ပိတ်ဆို့ထားခဲ့တဲ့အတွက် ဒီလမ်းကြောင်းက extraction နဲ့ မလုံခြုံတဲ့ deserialization ကို လိုအပ်တယ်။ ပျက်စီးနေတဲ့ Pickle streams တွေက စကင်နာရဲ့ blind spot ကိုလည်း ဖော်ထုတ်ခဲ့တယ်။ စကင်ဖတ်ခြင်း မအောင်မြင်တာကို ပါဆယ်ကို မဖွင့်ခင် စစ်ဆေးသင့်တယ်။ သုတေသီတွေရဲ့ အန္တရာယ်မရှိတဲ့ စမ်းသပ်မှုမှာ ညွှန်ကြားချက်တွေက loader
2:18 ပျက်စီးနေတဲ့အပိုင်းကို မရောက်မီ ဖိုင်တစ်ခုကို ရေးခဲ့ပြီး error ဖြစ်ပေါ်ခဲ့တယ်။ ပါဆယ်တစ်ခုကို ဖွင့်လိုက်ပြီး ကြောင်ကို လွှတ်ပေးလိုက်တယ်၊ ပြီးတော့ သင်္ဘောတင်တံဆိပ်က မမှန်ဘူးဆိုတာ သတိထားမိတယ်လို့ မြင်ယောင်ကြည့်ပါ။ invalid. error message က အလွန်ကောင်းမွန်တဲ့ သဒ္ဒါနဲ့ ဆိုးရွားတဲ့ အချိန်ကိုက်ရောက်ရှိလာတယ်။ Hugging Face က အစီရင်ခံထားတဲ့ နမူနာတွေကို ၂၄ နာရီအတွင်း ဖယ်ရှားပြီး စကင်နာကို ပြောင်းလဲခဲ့တယ်။ အဲဒီတိကျတဲ့ တွေ့ရှိချက်က ပြင်ဆင်မှုကို လှုံ့ဆော်ခဲ့တယ်။ လုံခြုံရေးစကင်ဖတ်ခြင်းက အသုံးဝင်တဲ့ အထောက်အထားဖြစ်ပြီး စကင်နာ error တိုင်းကို ကျန်းမာရေးအတွက် သန့်ရှင်းတဲ့ လက်မှတ်အဖြစ် မှတ်ယူတာက ကျရှုံးမှုကို အံ့သြစရာကောင်းလောက်အောင် ရက်ရောတဲ့ အဓိပ္ပာယ်ဖွင့်ဆိုချက်အဖြစ် ဆက်လက်တည်ရှိနေပါတယ်။
2:43 safe tensors နဲ့ လက်ရှိပြင်ဆင်ထားတဲ့ loaders တွေကို နှစ်သက်ပါ။
ဧည့်သည်ရဲ့ လက်လှမ်းမမီအောင် သော့ကို ဘာက ထိန်းထားတာလဲ။
2:46 PyTorch က ဗားရှင်း ၂.၆ ကနေစပြီး သူ့ရဲ့ default loader ကို ကျဉ်းမြောင်းစေခဲ့တယ်။ စိတ်ကြိုက်ကုဒ်ကို ပြန်လည်သုံးသပ်ပြီး ပြန်လည်သုံးသပ်ထားတဲ့ revision ကို ချိတ်ဆွဲပါ။ မရင်းနှီးတဲ့ packages တွေကို ကိုယ်ရေးကိုယ်တာ သော့မပါဘဲ သီးခြားစီ လုပ်ဆောင်ပါ၊ ကွန်ရက်ချိတ်ဆက်မှုကို ကန့်သတ်ထားပါ။ တပ်ဆင်ထားတဲ့ အထောက်အထားတွေ အပြည့်ပါတဲ့ ကွန်တိန်နာတစ်ခုက namespace တွေပါတဲ့ လက်ဆောင်ခြင်းတစ်ခုပါ။ အဲဒီအစောပိုင်း ပဟေဠိမှာ အဖြေတစ်ခု ရှိတယ်။ တင်ခြင်း (loading) မအောင်မြင်တာက execution ဘယ်မှာ ရပ်သွားတယ်ဆိုတာ ပြောပြတယ်။ အစောပိုင်း ညွှန်ကြားချက်တွေက အရင်ကတည်းက လုပ်ဆောင်ပြီးသား ဖြစ်နိုင်တယ်။
3:08 ပါဆယ်ကို မဖွင့်ခင် လျှို့ဝှက်ချက်တွေကို သူ့လက်လှမ်းမမီအောင် ထားပါ။ Under the hood ၏ စီရင်ချက်။
ဒီ NEEDS REVIEW ကို ဘာလို့ တံဆိပ်တုံးနှိပ်ရတာလဲ။
3:16 loader။ အခမဲ့ဒေါင်းလုဒ်မှာ မော်ဒယ်တစ်ခု ပါဝင်သင့်ပြီး ဧည့်သည်စာရင်းက ကျွန်တော့်ရဲ့ ဆုံးဖြတ်ချက်အတိုင်းပဲ ရှိနေသင့်တယ်။ remain my decision. ဒီအကြောင်းကို ကျွန်တော်ပြောတာထက် စာဖတ်တာကို ပိုနှစ်သက်တယ်ဆိုရင် The Daily Diff က မနက်တိုင်း သင့် inbox ထဲကို ရောက်ရှိလာပါမယ်။ daily diff dot dev မှာ အခမဲ့ရယူနိုင်ပါတယ်၊ လင့်ခ်က အောက်မှာပါ။ ဒါက ဒီနေ့အတွက် diff ပါ။ ကျွန်တော်က Axrisi က Niko ပါ။ တာဝန်ယူမှုရှိရှိ ပေါင်းစည်းပါ။
ရင်းမြစ်များ
- Data Scientists Targeted by Malicious Hugging Face ML Models with Silent BackdoorJFrog
- Malicious ML models discovered on Hugging Face platformReversingLabs
- AI Model Confusion: An LLM/AI Model Supply Chain AttackCheckmarx Zero
- Pickle ScanningHugging Face
- SafetensorsHugging Face
- Loading custom modelsHugging Face
- Serialization semanticsPyTorch



