အန္တရာယ်ရှိသော အထုပ် ၅ ခု

အန္တရာယ်ရှိသော အထုပ်များ၏ ခန္ဓာဗေဒ- ခေတ်ရေစီးကြောင်းများကား အဘယ်နည်း။

မာတိကာ

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

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

ယခင်ဇာတ်လမ်းတွဲတွင်၊ Open Source Malicious Packages များ- ပြဿနာခြိမ်းခြောက်မှုတွေ ဘာကြောင့် ဒီလောက်တောင် လုပ်ခဲ့ကြတယ်ဆိုတာ ကျွန်တော်တို့ ဆွေးနွေးခဲ့ကြပါတယ် အန္တရာယ်ရှိသော အစိတ်အပိုင်းအသစ်များကို ထုတ်ဝေခြင်း သို့မဟုတ် ရှိပြီးသား အစိတ်အပိုင်းများ၏ နောက်ဆုံးဗားရှင်းများတွင် malware ထည့်သွင်းခြင်းအပေါ် စိတ်အားထက်သန်ခြင်း- open source အခြေခံအဆောက်အအုံသည် မည်သူမဆို နေရာတိုင်းတွင် ယာယီအကောင့်တစ်ခု ဖန်တီးနိုင်စေပါသည်။ component registry (NPM၊ PyPI၊ Docker Hub သို့မဟုတ် Visual Studio Marketplace ကဲ့သို့) သို့မဟုတ် collaborative development platform (GitHub ကဲ့သို့) တွင်။ ကုန်ကျစရိတ် သုညဖြစ်ပြီး software teams များသည် third-party component များအပေါ် ရိုးရာအစဉ်အလာအရ ထားရှိလေ့ရှိသော အလွန်အကျွံယုံကြည်မှုကို အသုံးချရန် အခွင့်အလမ်းများစွာ။ 

open source အတွက် ရရှိနိုင်သော အခြေခံအဆောက်အအုံကို အသုံးပြု၍ တိုက်ခိုက်သူများအတွက် malware များ ဖြန့်ဝေရန် မည်မျှလွယ်ကူသည်နှင့် software တီထွင်နေသော အဖွဲ့အစည်းများ (လူတိုင်း?) အတွက် malware ကူးစက်ခံရခြင်းမှ ရှောင်ရှားရန် (နှင့် ၎င်းတို့ဖြန့်ဝေသော software တွင် malware များ ပေးပို့ရန်) မည်မျှခက်ခဲသည်တို့အကြား မညီမျှမှုသည် ပြီးခဲ့သည့်နှစ်က malicious package အရေအတွက် နှစ်သိန်းခွဲနီးပါးသို့ ရောက်ရှိခဲ့သည်။ 

ဒါဟာ အဖွဲ့အစည်းတစ်ခုတည်းက မဖြေရှင်းနိုင်တဲ့ အလွန်ကြီးမားတဲ့ ပြဿနာတစ်ခုဖြစ်ပြီး အသိုင်းအဝိုင်းက ယုံကြည်မှု၊ secure-by-default နဲ့ secure-by-design မူတွေနဲ့ component တွေရဲ့ သက်တမ်းစက်ဝန်းနဲ့ ပတ်သက်ပြီး open source လုပ်ငန်းစဉ်ကို ပြန်လည်ပြင်ဆင်နေပါတယ်။ နောက်အပိုင်းမှာ ဒီလို အတွေးအခေါ်တွေကို လေ့လာကြည့်ပါမယ်။ Open Source Malicious Package များမှ ကာကွယ်ခြင်း- ဘာတွေက (အလုပ်မလုပ်ဘူး) လဲ။.

ကျွန်ုပ်တို့ အများစုမှာ ကိုက်ညီတဲ့ software components တွေအကြောင်း ပြောနေတာဖြစ်တယ်ဆိုတာ မမေ့ပါနဲ့ ဆော့ဖ်ဝဲလ်ပက်ကေ့ဂျ်များ: ပြန်လည်အသုံးပြုနိုင်သော အစိတ်အပိုင်းများကို ဆော့ဖ်ဝဲလ်မန်နီးဖက်စ်တွင် မှီခိုမှုအဖြစ် ရည်ညွှန်းနိုင်ရန်နှင့် package manager သို့မဟုတ် build tool ဖြင့် ထည့်သွင်းနိုင်ရန် ထုပ်ပိုးထားသည်။ ဤကိစ္စကို public ပါဝင်ရန် တိုးချဲ့နိုင်ကြောင်း ကျေးဇူးပြု၍ သတိပြုပါ။ ကွန်တိန်နာပုံများ (ကွန်တိန်နာ runtime များနှင့် Kubernetes ကဲ့သို့သော orchestration platform များမှ အသုံးပြုသည်) နှင့် ဆော့ဖ်ဝဲလ်ကိရိယာများအတွက် extension များ (တည်ဆောက်ခြင်း၊ အလိုအလျောက်လုပ်ဆောင်ခြင်းနှင့် ဖြန့်ကျက်ခြင်းအတွက်)။ 

ဒီမှာ ဒါကို ဘယ်လိုခွဲခြမ်းစိတ်ဖြာကြမလဲ အန္တရာယ်ရှိသော အစိတ်အပိုင်းများအပေါ် အခြေခံသည့် တိုက်ခိုက်မှုနည်းဗျူဟာ ယခင်ဥပမာများနှင့် Malware Early Warning အတွက် ကျွန်ုပ်တို့၏ပလက်ဖောင်းတွင် မြင်တွေ့ခဲ့ရသည့်အတိုင်း အလုပ်လုပ်သည် (MEW)။ ကျွန်ုပ်တို့သည် မတူညီသော ရှုထောင့်များမှ အန္တရာယ်ရှိသော အစိတ်အပိုင်းများကို ခွဲစိတ်စစ်ဆေးပါမည်- 

(1) ဖြန့်ဖြူးရန် ရွေးချယ်ထားသော နည်းလမ်း (အသုံးပြုထားသော registry၊ အစိတ်အပိုင်းအသစ် သို့မဟုတ် ရှိပြီးသား အစိတ်အပိုင်းတွင် နှင့် ထုတ်ဝေထားသော အစိတ်အပိုင်းဗားရှင်းကို ကူးစက်စေရန် အသုံးပြုသည့် နည်းပညာ)၊ (၂) malware ကို မည်သို့ အသက်ဝင်စေသည် သို့မဟုတ် လှုံ့ဆော်သည်၊ (၃) အန္တရာယ်ရှိသော အပြုအမူ၊ ဆိုလိုသည်မှာ မည်သည့်အန္တရာယ်ရှိသော လုပ်ဆောင်ချက်များကို တွေ့ရှိသည်၊ တိုက်ခိုက်သူ၏ လှုံ့ဆော်မှုကား အဘယ်နည်း၊ (၄) ဖုံးကွယ်ခြင်း၊ မသိမသာ ပုန်းအောင်းခြင်း၊ ဘေးတိုက်ရွေ့လျားခြင်း၊ command and control (C2) host များနှင့် ဆက်သွယ်ခြင်း စသည်တို့အတွက် အသုံးများသော နည်းပညာများ၊ နှင့် (၅) သားကောင်များသည် component ကို install လုပ်ရန် လုံလောက်သော လူကြိုက်များမှုနှင့် ယုံကြည်မှုကို ရရှိရန် နည်းပညာများ။

ရွေးချယ်ထားသော ဖြန့်ဖြူးရေးယန္တရား

ကျွန်ုပ်တို့ သတိပြုမိသည်မှာ "နောက်ခံဆူညံသံပက်ကေ့ဂျ်အမည်တွင် စာလုံးပေါင်းအမှားပါသည့် သတိမရှိသော ဆော့ဖ်ဝဲရေးသားသူများကို ၎င်းတို့၏ မှီခိုမှုအတွက် phishing လုပ်ရန် typosquatting ကို အသုံးပြု၍ ရိုးရှင်းသော အန္တရာယ်ရှိသော ပက်ကေ့ဂျ်များ၏ ”။ လူကြိုက်များသော ပက်ကေ့ဂျ်များစွာသည် စာလုံးပေါင်းအမှားပါသည့် အလားတူအမည်ရှိ ပက်ကေ့ဂျ်များစွာကို ရရှိကြပြီး သတိမရှိသော ဆော့ဖ်ဝဲရေးသားသူများကို phishing လုပ်လိမ့်မည်ဟု မျှော်လင့်ကြသည်။ 

သူတို့ဟာ ယာယီအကောင့်တစ်ခုကို အသုံးပြုပြီး typosquat package အုပ်စုတစ်ခုကို ထုတ်ဝေကာ နောက်ထပ်တစ်ခု ဖန်တီးကာ နောက်ထပ်အုပ်စုတစ်ခုကို ထုတ်ဝေပါတယ်... အလိုအလျောက်လုပ်ဆောင်ခြင်းနှင့် တီထွင်ကြံဆမှုအချို့ကို အသုံးပြုခြင်းဖြင့် ၎င်းတို့သည် ရှုပ်ထွေးမှုအချို့ကို ရရှိနိုင်သော်လည်း ပုံမှန်အားဖြင့် ၎င်းတို့သည် အတော်လေး ရိုးရှင်းပါသည်။ ကျွန်ုပ်တို့သည် ၎င်းတို့ကို "အန်ချိုငါး"အထောက်အထားများ ခိုးယူခြင်းသည် အဓိကရည်ရွယ်ချက်ဖြစ်သော်လည်း၊ တစ်ခါတစ်ရံတွင် spyware များသည် source code သို့မဟုတ် ကိုယ်ရေးကိုယ်တာအချက်အလက်များ (PII)၊ clipboard ဖမ်းယူခြင်းနှင့် အခြားသံသယဖြစ်ဖွယ်အချက်အလက်များကဲ့သို့သော အရေးကြီးဒေတာများကို ခိုးယူနေသည်ကို ကျွန်ုပ်တို့တွေ့ရှိရပါသည်။

ရုတ်တရက် ပေါ်လာတဲ့အခါ "ငါးမန်း" တွေကို ပိုပြီး ခေတ်မီဆန်းပြားတဲ့ အန္တရာယ်ရှိတဲ့ အစိတ်အပိုင်းတွေအဖြစ် မြင်တွေ့ရပါတယ်။ လူနည်းစုကိုတော့ သတ်မှတ်ထားတဲ့ အုပ်စုတွေ ဒါမှမဟုတ် အဖွဲ့အစည်းတွေကို ပစ်မှတ်ထားပြီး၊ crypto drainer တွေ ဒါမှမဟုတ် web skimmer တွေနဲ့ ယေဘုယျအားဖြင့် အခြေအနေအရ အသက်ဝင်စေပြီး၊ မှာတွေ့ရတဲ့ ချဉ်းကပ်မှုကို လိုက်နာတာ ဖြစ်နိုင်ပါတယ်။ ဖြစ်ရပ်-စီးကြောင်းဖြစ်ရပ် package ကို target package မှ ရည်ညွှန်းသည့်အခါတွင်သာ attack payload ကို decrypt လုပ်ခြင်း။ 

ဖြန့်ဖြူးမှုယန္တရားကို အလွန်ကောင်းမွန်ပြီး ယခုအခါ ဂန္ထဝင်စာတမ်းတွင် ခွဲခြမ်းစိတ်ဖြာခဲ့သည်-Backstabber's Knife Collection: Open Source Software Supply Chain တိုက်ခိုက်မှုများကို ပြန်လည်သုံးသပ်ခြင်း"၊ မဖြစ်မနေဖတ်သင့်တဲ့ စာအုပ်ပါ။ ဒီကောင်းမွန်တဲ့ ဇယားကို သင်အရင်က မြင်ဖူးမှာ သေချာပါတယ်။ 

အန္တရာယ်ရှိသော ပက်ကေ့ဂျ်များ

source code၊ build system သို့မဟုတ် packaged component ကိုယ်တိုင်ကို ထိခိုက်စေခြင်း၊ ခိုးယူထားသော credentials သို့မဟုတ် social engineering ကို အသုံးပြုခြင်း၊ စွန့်ပစ်ထားသော account များနှင့် repositories များကို hijack လုပ်ခြင်း သို့မဟုတ် maintained account များကို poison လုပ်ခြင်း အပါအဝင် နည်းလမ်းအားလုံးကို စူးစမ်းလေ့လာခဲ့သည်။ အချို့သော တိုက်ခိုက်မှုများသည် အမည်များ (စာပို့, မှီခိုမှု ရှုပ်ထွေးမှု, ထင်ရှားသော ရှုပ်ထွေးမှု, ပြန်လည်ထုတ်ယူခြင်း.စသည်) နှင့် အခြားနေရာတွင် ဆွေးနွေးပြီးဖြစ်သည်။ 

ရွေးချယ်ထားတဲ့ မှတ်ပုံတင်တွေကော ဘယ်လိုလဲ။

NPM သည် malicious package အရေအတွက် စုစုပေါင်းတွင် ဆက်လက်ဦးဆောင်နေသော်လည်း ယခုနှစ်မှစ၍ PyPI တွင် မြင့်တက်လာသည်ကို ကျွန်ုပ်တို့ တွေ့ရှိခဲ့ရသည်။ Python သည် data science နှင့် machine learning အတွက် ရေပန်းစားသော ecosystem တစ်ခုဖြစ်သည်။ အမှန်စင်စစ်၊ malware density သည် NPM ထက် PyPI တွင် ပိုမိုမြင့်မားနေပါသည်။ 

malware ဘယ်လို လှုံ့ဆော်ခံရသလဲ

တပ်ဆင်နေစဉ်အတွင်း အန္တရာယ်ရှိသော ပက်ကေ့ဂျ်များသည် ၁၀ မှုတွင် ၄ မှုသာ လှုံ့ဆော်ခံရပါသည် (မကြာသေးမီနှစ်များအတွင်း ၁၀ မှုတွင် ၆ မှုနီးပါးရှိခဲ့ပါတယ်)။ ကျန်တာတွေကတော့ runtime မှာ အန္တရာယ်ရှိတဲ့ အပြုအမူကို လုပ်ဆောင်ပြီး ၁၀၀ မှုမှာ ၁ မှုကတော့ စမ်းသပ်မှုတွေကို လုပ်ဆောင်နေစဉ်မှာ လှုံ့ဆော်ခံရပါတယ်။ ရန်သူတွေဟာ တပ်ဆင်မှု script တွေရဲ့ ထိန်းချုပ်မှုမဲ့ လုပ်ဆောင်မှုကို နေရာအတော်များများမှာ ပိတ်ထားတာကို သိပုံရပါတယ်။

လူဆိုးတွေ ဘာတွေရနေကြတာလဲ။

ကျွန်ုပ်တို့သည် အန္တရာယ်ရှိသော အပြုအမူအမျိုးအစားများကို စာရင်းပြုစုပါမည်၊ အထင်ရှားဆုံးကို ဦးစွာဖော်ပြပါမည်။ သက်ရောက်မှုမှာ အတော်လေးကွဲပြားနိုင်ကြောင်း ကျေးဇူးပြု၍ သတိပြုပါ- a wiper ခေါင်းမာစွာ ဖျက်ဆီးတတ်သော်လည်း အဖြစ်များသော ကိစ္စမဟုတ်ပဲ ပစ်မှတ်ထား ဆိုက်ဘာစစ်ပွဲ လှုပ်ရှားမှုများ သို့မဟုတ် ရက်စက်ကြမ်းကြုတ်သော ဟက်ကာလှုပ်ရှားမှုများနှင့် ဆက်စပ်သည့် ကိစ္စအနည်းငယ်တွင်သာ တွေ့ရှိရလေ့ရှိသည်။ အောက်ပါ အမျိုးအစားများသည် အတော်လေး အဖြစ်များပါသည်။

  • InfoStealer / Credentials Drainer။ အဖြစ်အများဆုံး၊ ရိုးရှင်းသောတိုက်ခိုက်မှုများ၏ 90% ကျော်သည် စကားဝှက်များ၊ ဝင်ရောက်ခွင့်တိုကင်များ၊ API key များနှင့် private key များ (SSH နှင့် အလားတူအရာများအတွက်) ကဲ့သို့သော အထောက်အထားများကို ရှာဖွေသည့် ရိုးရှင်းသောခိုးယူသူများဖြစ်သည်။ ရေးသားခြင်းသည် (wipers များနှင့်အတူ?) အရိုးရှင်းဆုံးဖြစ်နိုင်သည်။ ၎င်းတို့သည် လူသိများသောဖိုင်များ/လမ်းညွှန်များနှင့် အခြားရင်းမြစ်များ (ဥပမာ registry key များကို စာရင်းပြုစုပြီး အကြောင်းအရာများကို package လုပ်ကာ ထိုဒေတာကို C2 server သို့ ပေးပို့သည်။ အယူအဆမှာ ရိုးရှင်းပါသည်- "phishing အထောက်အထားများအတွက် stealer တစ်ခုကို ကျွန်ုပ်ထုတ်ဝေသည်၊ ထို့ကြောင့် နောက်ပိုင်းတွင် ညွှန်ကြားထားသောတိုက်ခိုက်မှုတစ်ခုအတွက် အထောက်အထားများကို အသုံးပြုနိုင်သည်"။ 

တွေ့ရှိရတဲ့ C2 ကွန်ရက်ဟာ Telegram ချန်နယ်တွေလိုမျိုး ဈေးပေါပြီး ညစ်ပတ်လေ့ရှိပါတယ်။ ngrok ကဲ့သို့သော ဥမင်လိုဏ်ခေါင်းတူးကိရိယာများ (VPN egress IP များမှတစ်ဆင့် ဖော်ထုတ်ထားသော reverse proxy များပုံစံဖြင့် မကြာခဏ)။ GitHub ပရောဂျက်များစွာသည် ဖြစ်နိုင်ခြေရာပေါင်းများစွာ (!) ရှိပြီး စကားဝှက်ခိုးယူသူခေါင်းစဉ်keylogger ကဲ့သို့သော အထူးပြုလုပ်ငန်းများသည် malicious package များနှင့် container image များအတွက် ရှားပါးသော်လည်း၊ အသုံးပြုသူ အပြန်အလှန်တုံ့ပြန်မှုကို မျှော်လင့်ထားသည့် tool extension များတွင် ပိုမိုအဖြစ်များပါသည်။

  • ချောင်းစက် / ဒေါင်းလုဒ်လုပ်သူ။ ဒုတိယရေပန်းစားမှုရှိပြီး ပုံမှန်အားဖြင့် အဆင့်များစွာတိုက်ခိုက်မှုများတွင် ပထမနေရာရရှိလေ့ရှိသည်။ malicious components သုံးခုတွင် တစ်ခုထက်ပိုသောသူများသည် droppers (malicious payload သည် package ထဲတွင်ပါဝင်ပါက) သို့မဟုတ် downloader များ (payload ကို attacker ၏ထိန်းချုပ်မှုအောက်ရှိ endpoint မှ download လုပ်သည်) ရှိသည်။ payload သည် မကြာခဏလူသိများသော binary malware variant တစ်ခုဖြစ်ပြီး backdoors၊ spyware၊ crypto drainers နှင့် အခြားအသုံးပြုမှုကိစ္စရပ်များကို install လုပ်ရန်အတွက် run ပြီး တစ်ခါတစ်ရံတွင် ဆက်လက်တည်ရှိနေသည်။ download လုပ်ထားသော သို့မဟုတ် deploy လုပ်ထားသော payload သည် ရှိပြီးသား malware binaries များမှ ပံ့ပိုးပေးသော စွမ်းအားအားလုံးဖြင့် ဒုတိယအဆင့်တိုက်ခိုက်မှုကို စတင်သည်။ binaries များကို package အတွင်းတွင် ဖြန့်ဝေနိုင်ပြီး မမျှော်လင့်ထားသောဆိုက်များသို့ ချိတ်ဆက်နေစဉ် ရှာဖွေတွေ့ရှိမှုကို ရှောင်ရှားရန် မကြာခဏ ရုပ်ပုံများ သို့မဟုတ် အန္တရာယ်မရှိဟု ယူဆရသော ဖိုင်အမျိုးအစားများအဖြစ် ဟန်ဆောင်လေ့ရှိသည်။ 
  • ဒစ်ဂျစ်တယ်ငွေကြေး ခိုးယူသူများ / တူးဖော်သူများငွေကြေးအရ လှုံ့ဆော်မှုရှိသော ရန်သူများသည် cryptominers များကို လည်ပတ်ရန်အတွက် သင့် cloud asset များကို အသုံးပြုရန် ဆန္ဒရှိကြသည် (၎င်းတို့သည် cloud VM တွင် လည်ပတ်နေခြင်း ရှိမရှိကိုပင် သိရှိနိုင်သည်)။ ၎င်းတို့သည် ဂရုမစိုက်ပါ။ အမြတ်အစွန်းနည်းသောအချိုး ခိုးယူခံရသော cloud အခြေခံအဆောက်အအုံအတွက် သားကောင်အား ကောက်ခံသည့် ဒေါ်လာ ၅၃ တိုင်းအတွက် ဒေါ်လာ ၁ ဒေါ်လာ ကောက်ခံပါသည်။ မမျှော်လင့်ထားသော ဘေလ်တစ်စောင် မရောက်မချင်း သားကောင်များသည် ဤအကြောင်းကို မသိရှိနိုင်ပါ။ ကံကောင်းထောက်မစွာ၊ ဤသည်မှာ ပေါ်လာပြီး ပျောက်ကွယ်သွားပါသည်။ ကွမ်းခြံကုန်း အန္တရာယ်ရှိတဲ့ package တွေထဲက campaign တွေဟာ ရံဖန်ရံခါ ပေါ်လာပြီး ပျောက်ကွယ်သွားတတ်ပါတယ်၊ ဥပမာ wallet အသုံးပြုသူတွေကို phishing လုပ်တာမျိုး ဒါမှမဟုတ် နောက်ဆုံးမှာ wallet provider ကို ပစ်မှတ်ထားတာမျိုးပါ။ စာရင်းတိုက်ခိုက်မှု.   

အခြားအပြုအမူများ၊ ဥပမာ ဖြန့်ကျက်ခြင်း မင်္ဂလာပါ reverse shell ကိုဖွင့်ခြင်းဖြင့် remote code execute လုပ်ခြင်းသည် ယခင်ကထက် ယခုအခါ နည်းပါးလာပါသည်။ ဥပမာအားဖြင့်၊ ၁၂၃rf_ပံ့ပိုးကူညီသူ_ဝဘ် package (ယခု registry မှ ဖယ်ရှားလိုက်ပါပြီ) သည် မည်သည့် ရှုပ်ထွေးမှုမျှ မရှိဘဲ ပွင့်လာပြီး reverse shell မှ ကူးယူပြီး paste လုပ်ထားသည်။ ပြောင်းပြန်အခွံ လိမ်လည်မှုစာရွက်:

အန္တရာယ်ရှိသော ပက်ကေ့ဂျ် ၄ ခု
၂၀၂၄ ခုနှစ် ဇွန်လ ၂၄ ရက်မှ ၃၀ ရက်အတွင်း အန္တရာယ်ရှိသော ပက်ကေ့ဂျ်အမျိုးအစားများကို တွေ့ရှိခဲ့ရသည်။

တရားဝင်နှင့် အန္တရာယ်ရှိသော အစိတ်အပိုင်းများအပြင်၊ ကျွန်ုပ်တို့သည် အောက်ပါတို့အပါအဝင် အလွဲသုံးစားပြုမှုများစွာကို တွေ့ရှိခဲ့ရပါသည်-

စပမ်းပက်ကေ့ဂျ်များ

malware မပါဝင်ပေမယ့် ဝင်ငွေရလွယ်တဲ့ package လေးတွေ၊ snake oil၊ Viagra ကမ်းလှမ်းချက်တွေဆီ link တွေ စတာတွေနဲ့ တခြားအရာတွေ အများကြီးရှိပါတယ်။ အသုံးပြုသူအနည်းငယ်က ဒီလို spam တွေကို ထုတ်ဝေပြီး registry ကနေ bandwidth အများကြီးယူပါတယ်။ အင်ဒိုနီးရှားက ဖြစ်နိုင်ချေရှိတဲ့ နောက်ထပ်သရုပ်ဆောင်(များ)က အကျိုးအမြတ်ရယူဖို့ ကြိုးစားခဲ့ပါတယ်။ လက်ဖက်ရည်အဆင့်အတန်းကို အလွဲသုံးစားလုပ်ခြင်း ဆက်စပ်နေသော GitHub dummy repositories များနှင့် အပြန်အလှန်ဆက်စပ်နေသော NPM package ထောင်ပေါင်းများစွာကို ဖန်တီးခြင်းဖြင့် open-source developer များအား လျော်ကြေးပေးရန် ရည်ရွယ်ပါသည်။ ၎င်းသည် အသုံးပြုမှုစည်းကမ်းချက်များကို ထင်ရှားစွာချိုးဖောက်ခြင်းဖြစ်သည်။

ချို့ယွင်းချက်ဆုနှင့် လုံခြုံရေးသုတေသနလိမ်လည်မှုများ

 package တစ်ခုသည် bug bounty program များအတွက် လုံခြုံရေးချို့ယွင်းချက်များကို ထောက်လှမ်းခြင်း သို့မဟုတ် ecosystem ၏ အချို့သောရှုထောင့်များကို သုတေသနပြုခြင်းကဲ့သို့သော ကောင်းမွန်သောရည်ရွယ်ချက်များအတွက် data များကို ထုတ်ယူခြင်းအဖြစ် ဖော်ပြသည့်အခါ။ ဤအမျိုးအစားတွင် package ထောင်ပေါင်းများစွာကို ကျွန်ုပ်တို့တွေ့မြင်ခဲ့ရပြီး၊ ၎င်းတို့သည် PortSwigger မှ Burp Collaborator address (ဥပမာ oastify.com domain ရှိ host) သို့ identification ကို ရယူသော်လည်း အလွန်အရေးကြီးသော data များကို ရယူခြင်းမရှိပါ။ ကျွန်ုပ်တို့သည် မကြာခဏ copycat များကို တွေ့ရှိခဲ့ရသည်။ မှီခိုမှု ရှုပ်ထွေးမှု Alex Birsan ရဲ့ အယူအဆသက်သေပြချက်လိုမျိုး aurora-webmail-pro package (registry မှ ဖယ်ရှားလိုက်သည်)၊ ၎င်းသည် pre-install script တွင် ဤဆိုးရွားသော code ကို ရိုးရှင်းစွာ run ပါ-

ထို့အပြင် "တစ်ခုလည်း ပါဝင်သည်"ဒါက Simple Dependency Confusion Attack ရဲ့ Proof of Concept ပါ။" ငြင်းဆိုချက်ဖော်ပြချက်တွင် မြတ်စွာဘုရား။ ဤသည်မှာ မကောင်းသောရည်ရွယ်ချက်မရှိဘဲပင် ဝန်ဆောင်မှုစည်းမျဉ်းများကို ထင်ရှားစွာချိုးဖောက်ခြင်းဖြစ်သည်။ 

သတင်းကောင်းလား။ ကျွန်ုပ်တို့သည် malicious component များမှတစ်ဆင့် ပေးပို့သော ransomware တိုက်ခိုက်မှုများကို မမြင်ရသေးပါ။ မသိရသေးသော အကြောင်းရင်းများကြောင့် ဆိုက်ဘာရာဇဝတ်ကောင်များသည် ပိုမိုရိုးရာ email phishing၊ RDP-based နှင့် drive-by download delivery ယန္တရားများကို ပိုမိုနှစ်သက်ကြပုံရသည်။ 

တွေ့ရှိရသည့် နောက်ထပ်နည်းစနစ်များ 

အန္တရာယ်ရှိသော ပက်ကေ့ဂျ် ၄ ခု

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

ဇှဲကောငျးခွငျး malicious components များတွင် ဒုတိယအဆင့် binary malware ရှိ persistence features များကို အသုံးပြု၍ ရရှိသော်လည်း၊ တစ်ခါတစ်ရံတွင် အပြုအမူသည် package code တွင် တည်ရှိပြီး Windows registry တွင် အချိန်ဇယားဆွဲထားသော task များနှင့် ပြောင်းလဲမှုများအဖြစ် အများဆုံးဖြစ်သည်။ 

ရှုပ်ထွေးပွေလီအောင်လုပ် အဖြစ်များပေမယ့် ရှုပ်ထွေးမှုမရှိပါဘူး။ စာလုံးပေါင်းအမှားပြင်ဆင်တဲ့ package အများစု ("အန်ချိုငါး") လုံးဝမသုံးပါနဲ့။ အများစုဟာ ရိုးရှင်းတဲ့ ကုဒ်တွေ (base64/hex encoding ဒါမှမဟုတ် rot13 လိုမျိုး substitution ciphers) ကို အသုံးပြုကြတယ်၊ ဒါမှမဟုတ် ရရှိနိုင်တဲ့ code obfuscators နဲ့ minification တွေကို အသုံးပြုကြတယ်၊ အဲဒါတွေကို မှန်ကန်သော tooling နဲ့ အလွယ်တကူ ပြောင်းပြန်လှန်နိုင်ပါတယ်။ "sharks" တွေသာ တကယ့်၊ hard-core၊ obfuscation၊ reverse-engineering လုပ်ရတာ ခက်ခဲတာတွေကို လုပ်ကြတယ်။

Obfuscation က တိုက်ခိုက်မှုကို ဖုံးကွယ်ထားနိုင်ပေမယ့် open-source component ထဲက code ကို ဘာကြောင့် obfuscated လုပ်ရမှာလဲ။ တစ်ခုခုကို မမြင်ရအောင် ဖုံးကွယ်ထားဖို့ လိုအပ်တယ်ဆိုတဲ့ အထောက်အထား ရှိပါသလား။ ဉာဏပစ္စည်းမူပိုင်ခွင့်ကို ကာကွယ်ဖို့ obfuscation ကို အသုံးပြုတဲ့ non-malicious package တွေရဲ့ သာဓကတွေ အများကြီးကို ကျွန်တော်တို့ တွေ့ရှိခဲ့ပြီး ဒါဟာ “open source” နဲ့ ဆန့်ကျင်ဘက်ပါပဲ။ Obfuscation ကို malware ရဲ့ အထောက်အထားအဖြစ် အသုံးပြုနိုင်ပေမယ့် အပြီးသတ် ဆုံးဖြတ်ချက်တော့ မဟုတ်ပါဘူး။ de-obfuscate လုပ်ဖို့လည်း ခက်ခဲပါတယ်။ 

ရှောငျခွငျး ကာကွယ်ရေးထိန်းချုပ်မှုများမှ ရိုးရှင်းသောနည်းစနစ်များကို လက်ခံကျင့်သုံးသည်။ အန္တရာယ်ရှိသောကုဒ်ကို မကြာခဏကာကွယ်ထားသည်။ ကြိုးစား...ဖမ်း ခြွင်းချက်တစ်စုံတစ်ရာကို လျစ်လျူရှုသော ပိတ်ဆို့ချက်များကြောင့် ပုံမှန်မဟုတ်သော လုပ်ဆောင်ချက်ကို မှတ်တမ်းများတွင် မပြသပါ။ သတ်မှတ်ထားသော အဖွဲ့အစည်း သို့မဟုတ် ပတ်ဝန်းကျင်ကို ပစ်မှတ်ထားသော malware များမှအပ ပတ်ဝန်းကျင်ကို အတည်ပြုခြင်း (VM သို့မဟုတ် container တွင် လုပ်ဆောင်ခြင်း) သည် ရှားပါးပါသည်။

ရုပ်ပုံများနှင့် PDF ဖိုင်များတွင် binary များကို အတုအယောင်ပြုလုပ်ခြင်း (steganography တစ်မျိုး) သည် ထောက်လှမ်းမှုကို ရှောင်ရှားရန် တွေ့ရှိရသော နောက်ထပ်နည်းပညာတစ်ခုဖြစ်သည်။

အဖြစ်အများဆုံး malicious components တွေက infostealers တွေဖြစ်လို့ပါ။ ဒေတာစုဆောင်းခြင်း အရေးကြီးပါသည်။ လျှို့ဝှက်ချက်များ (စကားဝှက်များ၊ ဝင်ရောက်ခွင့်တိုကင်များ၊ API သော့များ၊ ကုဒ်ဝှက်သော့များ) ကို log ဖိုင်များ၊ ပတ်ဝန်းကျင်ပြောင်းလဲမှုများနှင့် clipboard (ဘဏ်လုပ်ငန်း trojans များနှင့် crypto stealers များတွင်တွေ့မြင်ရသည်) တွင်ပင် ပုံမှန်စကင်ဖတ်စစ်ဆေးသည်။ source code exfiltration သည်လည်း အဖြစ်များသည်၊ အဘယ်ကြောင့်ဆိုသော် package installation ကို development node တစ်ခုတွင် internal git repositories များကို clone လုပ်နိုင်သည့်နေရာတွင် မကြာခဏပြုလုပ်လေ့ရှိသောကြောင့်ဖြစ်သည်။ git repositories များကိုရှာဖွေရန် directory များကိုစာရင်းပြုစုနေသော package များကိုကျွန်ုပ်တို့တွေ့မြင်ခဲ့ရသည်။ .env၊ private.pem၊ settings.py၊ app.js သို့မဟုတ် application.properties ကဲ့သို့သောနေရာများကိုရှာဖွေခြင်းသည်အတော်လေးအဖြစ်များသည်။

Exfiltration သည် ကျယ်ကျယ်ပြန့်ပြန့် အသုံးပြုနေသော နောက်ထပ်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ အန္တရာယ်ရှိသော package အနည်းငယ်သာ ထုတ်ယူထားသောဒေတာ၏ ဦးတည်ရာကို ဖုံးကွယ်ရန် ကြိုးစားကြသည်။ Telegram channels များနှင့် ngrok ကဲ့သို့သော ဥမင်လိုဏ်ခေါင်းများ မကြာခဏအသုံးပြုကြသည်။ ပြီးတော့ အများကြီးရှိပါတယ် ယေဘုယျအားဖြင့် ထုတ်ယူရန်အတွက် အသုံးပြုသော whitelist ဒိုမိန်းများ

အခြားနည်းပညာများဖြစ်သည့် အခွင့်ထူးတိုးမြှင့်ခြင်း သို့မဟုတ် ဘေးတိုက်ရွေ့လျားမှုများသည် အသုံးနည်းပါသည်။ 

လူကြိုက်များမှုနှင့် ယုံကြည်မှုရရှိခြင်း

အသင့်လုပ်ထားတဲ့ လူသတ်သမား အန္တရာယ်ရှိတဲ့ အရာတစ်ခုနဲ့ နည်းပညာဆိုင်ရာ လူလိမ်တစ်ယောက်ဟာ “ဒီ s#$! ကို မသိနားမလည်တဲ့ လူမိုက်တွေအတွက် ဘယ်လို ယုံကြည်စိတ်ချရအောင်လုပ်ရမလဲ” လို့ တွေးနေတာကို မြင်ယောင်ကြည့်ပါ။ 

အဲဒါက malicious component ရဲ့ entry မှာ star/forks တွေ အများကြီး (လူကြိုက်များမှုအတွက်) ပြသဖို့၊ version/issues တွေနဲ့ ဘယ်လိုလုပ်ဆောင်ရမလဲဆိုတာနဲ့ သက်ဆိုင်ပါတယ်။ pull requests (လုပ်ဆောင်ချက်အတွက်)။ အယူအဆမှာ စိတ်ကူးယဉ်ဆန်သော လူကြိုက်များမှု (ကြယ်များ) နှင့် မှီခိုသူများ၊ သက်ဆိုင်မှုနှင့် ထိန်းသိမ်းမှုနှင့်ပတ်သက်၍ ယုံကြည်စိတ်ချရသော အကြည့်တစ်ခုရရှိရန်ဖြစ်သည်။ 

GitHub ပရောဂျက်ရှိ အကြောင်းအရာများနှင့် package အကြောင်းအရာများ ကိုက်ညီမှုရှိမရှိ registry သည် မစစ်ဆေးပါ။ဒါက software supply chain မှာ လူသိများတဲ့ ပြဿနာတစ်ခုပါ။ public registry တွေက သူတို့ဆီ ပစ်ပေါက်လိုက်တဲ့ အရာအားလုံးကို မျိုချတဲ့ ဧရာမ sinklars တွေပါ။ repository တိုင်းကို ချိတ်ဆက်နိုင်ပါတယ်။ 

အန္တရာယ်ရှိသော ပက်ကေ့ဂျ် ၄ ခု
၂၀၂၄ ခုနှစ် ဇွန်လ ၂၄ ရက်မှ ၃၀ ရက်အထိ ရက်သတ္တပတ်အတွင်း ဖြစ်နိုင်ခြေရှိသော malware များတွင် အထောက်အထားဖြန့်ဖြူးမှု။

အန္တရာယ်ရှိတဲ့ package က လူကြိုက်များတဲ့ package တစ်ခုကို typo-squats လုပ်မိရင် အဲဒါလွယ်ပါတယ်- package ဖန်တီးပြီး registry မှာ publish လုပ်ဖို့အတွက် အသုံးပြုတဲ့ dependencies manifest မှာရှိတဲ့ ရှိပြီးသား GitHub repository ကို ရည်ညွှန်းလိုက်ရုံပါပဲ။ အတု GitHub repo မှာရှိတဲ့ package အသစ်တွေအတွက် သင်ဟာ ပိုပြီး တီထွင်ကြံဆဖို့ လိုအပ်နိုင်ပါတယ်၊ ဖြစ်နိုင်တာက အတုတွေကို ဖန်တီးခြင်း ကြယ်ကြည့်ခြင်း/ခွဲထွက်ခြင်း GitHub အကောင့်များကို scripting မှတစ်ဆင့် ပြုလုပ်သည်။

ပြီးတော့ သင့် package ရဲ့ content တွေက repo နဲ့ အတော်လေးဆင်တူနေရင်၊ ကောင်းမွန်စွာ ဒီဇိုင်းထုတ်ထားတဲ့ ပြောင်းလဲမှုအနည်းငယ်ကို နေရာအနှံ့ထည့်လိုက်ပါ… ရှိပြီးသား repository ကို ရည်ညွှန်းထားတဲ့ လူကြိုက်များတဲ့ package တစ်ခုနဲ့ ဆင်တူတဲ့ package အသစ်တစ်ခုထဲကို malware ကို ထိုးသွင်းနိုင်ပြီး typos တွေကို စောင့်နိုင်ပါတယ်။ တစ်စုံတစ်ယောက်က package tarball ရဲ့ content တွေကို GitHub repository က content တွေနဲ့ နှိုင်းယှဉ်ရဲရင် malware injection point တွေမှာ ကွာခြားချက်တွေကို အလွယ်တကူ လွတ်သွားနိုင်ပါတယ်။ ဒီချဉ်းကပ်မှုကို ကျွန်တော်တို့ အရင်က အကြိမ်ပေါင်းများစွာ မြင်တွေ့ခဲ့ရပြီးပါပြီ။ 

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

Component X က malware လား။

malicious package တွေရဲ့ (ပြည့်စုံတဲ့) database ရှိလား။ မရှိပါဘူး။ Open-source vulnerabilities တွေမှာ CVE ID သတ်မှတ်ထားပေမယ့် malicious package အနည်းငယ် (အထူးသဖြင့် သတင်းခေါင်းစဉ်တွေမှာ ပါနေတဲ့ package တွေ) ကိုပဲ ပေးထားပါတယ်။ malicious package တွေအတွက် CWE က CWE-506 (ထည့်သွင်းထားသော အန္တရာယ်ရှိသော ကုဒ်)။ 

ပုံမှန် malware tool များ (VirusTotal၊ MalwareBazaar၊ SOREL-20M…) သည် အန္တရာယ်ရှိသော အစိတ်အပိုင်းများအတွက် တိကျသော ပြဋ္ဌာန်းချက်များ မပြုလုပ်ထားပါ။ ၎င်းသည် ကြိုဆိုစရာပင်!

ခွဲခြမ်းစိတ်ဖြာရန်အတွက် သုတေသနနမူနာဒေတာဘေ့စ်များနှင့် အချက်အလက်အစုများ ရှိပါသည် (ကျွန်ုပ်တို့သည် ၎င်းတို့ထဲမှ အနည်းငယ်ကို အသုံးပြုပါသည်)၊ သို့သော် entry များကို အန္တရာယ်ရှိသော package ကို သိရှိမှသာ အပ်ဒိတ်လုပ်ပါသည်၊ ၎င်းသည် မကြာခဏ နောက်ကျနေပါသည်။ သင်စိတ်ဝင်စားပါက၊ OpenSSF အန္တရာယ်ရှိသော အထုပ်များ ကောင်းမွန်တဲ့ အစပျိုးမှုတစ်ခုပါ။

နောက်ပို့စ်မှာ ပေးထားတဲ့ package တစ်ခုဟာ အန္တရာယ်ရှိတဲ့ component ဟုတ်မဟုတ် ဘယ်လိုသိနိုင်မလဲဆိုတာ ဆွေးနွေးပါမယ်။ Spoiler: ဟုတ်ကဲ့၊ registry က သိရှိထားတဲ့ အန္တရာယ်ရှိတဲ့ component တစ်ခုကို မဖယ်ရှားခင် exposure window မှာ အန္တရာယ်ရှိတဲ့ component တွေကို အစောပိုင်းကတည်းက စစ်ဆေးနိုင်တဲ့ နည်းလမ်းတွေ ရှိပါတယ်။

နောက်ထပ်ဖတ်ရန်

နောက်ဇာတ်လမ်းတွဲမှာ "Open Source Malicious Package များမှ ကာကွယ်ခြင်း- ဘာတွေက (အလုပ်မလုပ်ဘူး) လဲ။" open-source လုံခြုံရေးအတွက် လုပ်သင့်တာတွေနဲ့ မလုပ်သင့်တာတွေကို ဆွေးနွေးသွားပါမယ်။ လုံခြုံရေးကို သိရှိနားလည်သော ပညာရှင်အများစုတွင် ဤခြိမ်းခြောက်မှုကို မည်သို့ကိုင်တွယ်ရမည်နှင့် ပတ်သက်၍ အလိုလိုသိကြသော်လည်း အထင်အမြင်လွဲမှားမှုများ များပြားလှသည်။ 

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

ထို့အပြင်၊ ကျွန်ုပ်တို့သည် အန္တရာယ်ရှိသော package များ၏ ရည်ရွယ်ချက်၊ ထိုးသွင်းသည့် ယန္တရားနှင့် တိုက်ခိုက်မှုနည်းစနစ်များအရ ၎င်းတို့၏ တိုးတက်ပြောင်းလဲမှုအကြောင်းကိုလည်း ပို့စ်တင်သွားပါမည်။

ဆက်ပြီးနားထောင်ပါ!

ကိုးကား

Open Source Malicious Packages များ- ပြဿနာ

OSS Malicious Package များမှ ကာကွယ်ခြင်း- ဘာတွေက (အလုပ်မလုပ်ဘူး) လဲ။

sca-tools-software-composition-analysis-tools
သင့်ဆော့ဖ်ဝဲလ်အန္တရာယ်များကို ဦးစားပေးသတ်မှတ်ခြင်း၊ ပြုပြင်ခြင်းနှင့် လုံခြုံစေခြင်း
သင့်ရဲ့ အခမဲ့အကောင့်ကို ရယူလိုက်ပါ။
အကြွေးဝယ်ကဒ်မရှိပါ။

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

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