XZ Backdoor တိုက်ခိုက်မှု

XZ Backdoor: “အဲဒါက အနီးစပ်ဆုံးပဲ”

နောက်ကွယ်မှ SSH အသုံးပြုခြင်း

မကောင်းဆိုးဝါးသော သို့မဟုတ် အန္တရာယ်ရှိသော ပြုပြင်ထိန်းသိမ်းသူတစ်ဦးသည် အမည်ရှိ စာကြည့်တိုက်တွင် အန္တရာယ်ရှိသော အပြုအမူကို ထည့်သွင်းခဲ့သည် လစ်ဘဇ်မာxz compression tools နှင့် libraries များ၏ အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး SSH တွင် backdoor တစ်ခုဖြစ်ပေါ်စေသည်။ ၎င်းသည် အဆင့်မြင့် software supply chain တိုက်ခိုက်မှုတစ်ခုဖြစ်ပြီး library ကို backdoor အတွက် ရည်ရွယ်ချက်ရှိရှိ ပြုပြင်မွမ်းမံထားပြီး၊ attack payload ကို reviewers များထံမှ ဝှက်ထားရန် obfuscation နှင့် stealth နည်းပညာများဖြင့် ပြုလုပ်ထားသည်။

၎င်းကို မကြာသေးမီက (ပြီးခဲ့သည့် မတ်လ ၂၉ ရက်နေ့တွင်) ရှာဖွေတွေ့ရှိခဲ့ပြီး တိုက်ခိုက်မှုကိုင်တွယ်မှုမှာ ဆက်လက်လုပ်ဆောင်နေပါသည်။ သို့သော်၊ ၎င်းသည် ကန့်သတ်ထားသော ပတ်ဝန်းကျင်အစုအဝေး၏ pre-release ဗားရှင်းများ (x86_64 ဗိသုကာအတွက် DEB နှင့် RPM packages များနှင့် GCC ဖြင့်တည်ဆောက်ထားသည်) ကိုသာ သက်ရောက်မှုရှိပုံရသောကြောင့် ၎င်းကို လျင်မြန်စွာ ထိန်းချုပ်နိုင်ခဲ့သည်။ မည်သို့ပင်ဖြစ်စေ၊ CVE ပေးခဲ့ပါတယ် CVSS အခြေခံရမှတ် အရေးအကြီးဆုံး ဆိုက်ဘာလုံခြုံရေး အားနည်းချက်များအတွက် သီးသန့်ထားရှိထားသော ၁၀ ခုအနက်မှ တစ်ခု။ ၎င်းသည် တည်ငြိမ်သော ဖြန့်ဖြူးမှုများထဲသို့ ဝင်ရောက်ပါက သက်ရောက်မှု အလွန်ကြီးမားလိမ့်မည်။ 

တိုက်ခိုက်မှု၏ နည်းပညာဆိုင်ရာ ခွဲခြမ်းစိတ်ဖြာမှု အပါအဝင် xz backdoor အကြောင်း အသေးစိတ်ရှင်းပြထားပါတယ်, ကို အခြားနေရာတွင် ခွဲခြမ်းစိတ်ဖြာခဲ့သည်။ ဤပို့စ်တွင် တိုက်ခိုက်မှု၏ အချိန်ဇယား၊ ၎င်းကို မည်သို့ရှာဖွေတွေ့ရှိနိုင်ပုံ၊ ဖြစ်ရပ်ကို ယနေ့အထိ မည်သို့ကိုင်တွယ်ဖြေရှင်းခဲ့ပုံနှင့် တိုက်ခိုက်မှုမှ မည်သည့်သင်ခန်းစာများ ထုတ်ယူနိုင်ပုံတို့ကို အဓိကထားပါမည်။

backdoor ရဲ့ ရှည်လျားတဲ့ အမြီးဟာ ကနဦး patch ကို ကျော်လွန်ပြီး အတော်ကြာ ဆက်လက်တည်ရှိနေပါတယ်။ CVE-2024-3094 ကို ထုတ်ဖော်ပြသပြီး တစ်နှစ်ကျော်အကြာ ၂၀၂၅ ခုနှစ် ဩဂုတ်လမှာ Binarly မှ လုံခြုံရေးသုတေသီတွေက Docker Hub မှာ ထုတ်ဝေခဲ့တဲ့ Debian Docker image ဆယ်ဂဏန်းလောက်မှာ backdoor ကို ဆက်လက်တွေ့ရှိခဲ့ပြီး Debian ရဲ့အဖွဲ့က ဖယ်ရှားဖို့ ငြင်းဆိုခဲ့ပြီး active risk ထက် historical development artifacts အဖြစ်သာ သဘောထားခဲ့ပါတယ်။ သီးခြားစီအနေနဲ့၊ OpenSSF XZ ဖြစ်ရပ်ဖြစ်ပွားပြီး မကြာမီတွင် OpenJS သည် အလားတူ လူမှုရေးအင်ဂျင်နီယာ သိမ်းပိုက်မှုကြိုးပမ်းမှုများသည် JavaScript ပရောဂျက်များကို ပစ်မှတ်ထားပြီးဖြစ်ကြောင်း ပူးတွဲသတိပေးချက်ထုတ်ပြန်ခဲ့ပြီး ဤနေရာတွင်အသုံးပြုသော maintainer-trust တိုက်ခိုက်မှုပုံစံကို အခြားနေရာတွင် ပြန်လည်အသုံးပြုနေကြောင်း ညွှန်ပြနေသည်။

XZ backdoor ကို ဘယ်လိုထိုးသွင်းခဲ့လဲ

မှတ်ချက်- git repository သည် အောက်ပါတွင်ရှိသည် git.tukaani.org။ သို့သျောလညျး တစ်ခုလည်း ရှိခဲ့တယ် GitHub တွင် လက်ခံထားသော သိုလှောင်ရုံ (လက်ရှိပိတ်ဆို့ထားသည်) GitHub အကောင့်မှ နောက်ပိုင်းတွင် Git repository ထဲသို့ ပေါင်းစပ်ထားသော ပြောင်းလဲမှုများကို တင်နေသည့်နေရာ။

backdoor ရဲ့ တစ်စိတ်တစ်ပိုင်းဟာ 5.6.0 နဲ့ 5.6.1 ဗားရှင်းတွေအတွက် distributed tarballs တွေထဲမှာပဲ ရှိနေပြီး git repositories ထဲမှာ မဟုတ်ဘဲ a ပေါ်မှာ မှီခိုနေပုံရပါတယ်။ build-to-host.m4 မှာ တစ်ကြောင်းတည်း autoconf မှအသုံးပြုသော macro ဖိုင်။ ကျန်အပိုင်းမှာ testfiles နှစ်ခုဟုယူဆရသောဖိုင်တွင်ရှိသည်။ bad-3-corrupt_lzma2.xz နှင့် good-large_compressed.lzma

အဲဒါတွေရှိတယ် commitTED GitHub အကောင့် “Jia Tan” မှ (JiaT75) ထဲမှာ xz သိုလှောင်ရုံ ဖေဖော်ဝါရီ ၂၃ ရက်နေ့မှာပါ။ testfiles (.lzma နဲ့ .xz compressed blocks လို့ ယူဆရတဲ့) ကို ထည့်သွင်းတာက အန္တရာယ်မရှိတဲ့ ပြောင်းလဲမှုတစ်ခုပါ။ စိတ်ဝင်စားစရာကောင်းတာက test files တွေကို tests တွေက အသုံးမပြုခဲ့ပါဘူး။ .m4 file ရဲ့ line က obfuscated script (tarball မှာ ပါဝင်တဲ့) ကို inject လုပ်ထားပြီး configure ရဲ့အဆုံးမှာ configure လုပ်ရမယ့် context အခြေအနေတွေ ကိုက်ညီရင် execute လုပ်ပါတယ်။ Makefile ကို ပြုပြင်ပေးပါတယ်။ လစ်ဘဇ်မာ library တွင် .xz ဖိုင်မှ ဒေတာများကို ထုတ်ယူသည့် ကုဒ်ပါဝင်ရန်၊ deobfuscation ပြီးဆုံးပြီးနောက် ဒီဇာတ်ညွှန်းမှာ, ကို configure ရဲ့အဆုံးမှာ injection လုပ်ပါတယ်။ build process ကို inject code အဖြစ် ပြုပြင်မွမ်းမံဖို့ ဆုံးဖြတ်ပါတယ်- GCC နဲ့ GCC linker အောက်မှာပဲ၊ Debian ဒါမှမဟုတ် rpm အောက်မှာပဲ၊ x86_64 Linux အတွက်ပဲ ဖြစ်ပါတယ်။ match ဖြစ်တဲ့အခါ injected code က execution နှစ်ခုကို အစားထိုးခြင်းဖြင့် intercept လုပ်ပါတယ် အိုင်ဖန့်ခ် resolvers များကြောင့် အချို့သော ခေါ်ဆိုမှုများကို အစားထိုးပါသည်။ ၎င်းက symbol table များကို memory တွင် parse လုပ်စေသည် (၎င်းသည် အချိန်ယူရသောကြောင့် နောက်ပိုင်းတွင် ရှင်းပြထားသည့်အတိုင်း ထောက်လှမ်းမှုကို ဖြစ်ပေါ်စေသည်)။

ထို့နောက် အရာအားလုံး စိတ်ဝင်စားစရာကောင်းလာသည်- backdoor သည် dynamic linker တွင် audit hook တစ်ခုကို ထည့်သွင်းပြီး RSA_public_decrypt function symbol ရောက်ရှိလာရန် စောင့်ဆိုင်းနေပြီး ၎င်းကို backdoor code ထဲသို့ ပြန်ညွှန်းကာ ၎င်းက ပြန်လည်ခေါ်ယူသည်။ libcryptoပုံမှန် authentication ကို လုပ်ဆောင်ရန် ဖြစ်နိုင်သည်။ ထို့အပြင် လည်ပတ်နေသော program တွင် process name ရှိပါက payload သည် အသက်ဝင်သည်။ /usr/sbin/sshdSSH ဆာဗာများသည် ပစ်မှတ်ဖြစ်ကြောင်း ထင်ရှားပါသည်။ ရိုးရာအစဉ်အလာအရ၊ ssh OpenSSH ကဲ့သို့သော server များကို ချိတ်ဆက်မထားပါ။ လစ်ဘဇ်မာဒါပေမယ့် sshd ကတော့ မကြာခဏ ပြင်ထားသည် sshd လည်ပတ်နေချိန်မှာ တခြားဝန်ဆောင်မှုတွေ စတင်နိုင်အောင် systemd-notify ကို ပံ့ပိုးပေးဖို့ပါ။ ပြီးတော့ liblzma ကို သွယ်ဝိုက်ပြီး load လုပ်ပါတယ် systemd, စက်ဝိုင်းကို ပိတ်ခြင်း။

နောက်ကွယ်ကတံခါးကို အပြည့်အဝ မခွဲခြမ်းစိတ်ဖြာရသေးပေမယ့် ထင်ရပါတယ် အဝေးထိန်း command ကို လုပ်ဆောင်ခွင့်ပြုခြင်း (RCE) sshd daemon ရဲ့ အခွင့်အရေးတွေနဲ့အထောက်အထားစိစစ်ခြင်းမပြုမီ အခြေအနေတွင် လုပ်ဆောင်နေပါသည်။ ဝေးလံခေါင်သီသော လက်မှတ်မှ အချက်အလက်များကို backdoor မှ တိုက်ဆိုင်စစ်ဆေးသောအခါ ChaCha20 ဖြင့် decrypt လုပ်ပြီးနောက် အောင်မြင်စွာ decrypt လုပ်သောအခါ ၎င်းကို ပေးပို့သည် စနစ်()ဒါကြောင့် ဒါက အခြေခံအားဖြင့် gated RCE တစ်ခုဖြစ်ပြီး public key bypass ထက် အများကြီး ပိုဆိုးပါတယ်။ 

နောက်ပိုင်း 5.6.1 tarball တွင် သင်္ကေတအမည်များအတွက် ပိုမိုရှုပ်ထွေးစေခြင်း၊ နှင့် မြင်တွေ့ရသော အမှားများကို ပြင်ဆင်ရန် အပိုကြိုးပမ်းမှုများကို ပြသခဲ့သည်။ တိုးချဲ့မှုယန္တရား backdoor တွင်ထည့်သွင်းရန် အချို့သောလက်မှတ်များအတွက် နောက်ထပ်စမ်းသပ်မှုဖိုင်များကို ရှာဖွေခဲ့သည့်နေရာကိုလည်း ထားရှိခဲ့သည်။

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

XZ Backdoor တိုက်ခိုက်မှုကို ရှာဖွေတွေ့ရှိခြင်း

ထိုးသွင်းခံရတဲ့ မကောင်းမှုအပြုအမူတွေဟာ မတော်တဆ ဒါမှမဟုတ် မတော်တဆမှုကြောင့် ပေါ်ပေါက်လာတဲ့ အကြိမ်ပေါင်းများစွာပါ။ ကောင်းမွန်တဲ့ ဥပမာတစ်ခုကတော့ ဖျက်သိမ်းခြင်းသတိပေးချက် (“သတိပေးချက်တွေကို ဘယ်သူဂရုစိုက်သလဲ”) ကို ရှာဖွေတွေ့ရှိမှုဆီသို့ ဦးတည်စေခဲ့သည် အဖြစ်အပျက်စီးဆင်းမှုတိုက်ခိုက်မှု ၂၀၁၈ ခုနှစ် အောက်တိုဘာလတွင်။ နောက်ထပ်သတိပေးခဲ့သော အသုံးပြုသူတစ်ဦးမှာ Codecov ၂၀၂၁ ခုနှစ် ဧပြီလတွင် ၎င်းတို့၏ bash uploader script သည် checksum ကို မအောင်မြင်ကြောင်း (“checksum များဖြင့် artifacts များ၏ သမာဓိကို မည်သူက အတည်ပြုသနည်း”) တွင် တွေ့ရှိခဲ့သည်။ ssh မှာ ပုံမှန်မဟုတ်တဲ့ လက္ခဏာတွေနဲ့ ထူးဆန်းတဲ့ လက္ခဏာတွေ logins ကို (loginCPU အများကြီးယူပြီး အချိန်ပိုကြာလာခြင်း၊ valgrind error များ) က စပ်စုချင်စိတ်ကို နှိုးဆွပေးသည် Andres Freund၊ သတိရှိသော PostgreSQL ဆော့ဖ်ဝဲရေးသားသူဖြစ်သော်လည်း လုံခြုံရေး ခွဲခြမ်းစိတ်ဖြာသူမဟုတ်ပါ (သူဖော်ပြခဲ့သည့်အတိုင်း)Debian Sid မှာ OpenSSH နဲ့ စုံစမ်းစစ်ဆေးမှုအချို့ ပြုလုပ်ပြီးနောက်မှာ response time ပြဿနာဟာ library တစ်ခုပေါ်မှာ မူတည်နေတယ်လို့ သူက ကောက်ချက်ချခဲ့ပါတယ်။ လစ်ဘဇ်မာအဆိုပါ၏တစိတ်တပိုင်း xz-utils ချုံ့ခြင်းစာကြည့်တိုက်။ အကြောင်းပြချက်- “upstream xz repository နှင့် xz tarballs များကို backdoor လုပ်ထားသည်"ဒီရောဂါရှာဖွေမှုက အရမ်းတိကျတယ်!"   ၂၀၂၄ ခုနှစ် မတ်လ ၂၉ ရက်နေ့တွင် Andres သည် Openwall တွင် ပထမဆုံး ခွဲခြမ်းစိတ်ဖြာမှုကို တင်ခဲ့သည်- “upstream xz/liblzma ရှိ backdoor သည် ssh server ကို ထိခိုက်စေသည်"အချက်အလက်- XZ Utils 5.6.0 နှင့် 5.6.1 tarball များတွင် backdoor ပါရှိသည်။ ဤ tarball များကို အထက်ဖော်ပြပါ Jia Tan အကောင့်မှ ဖန်တီးပြီး လက်မှတ်ရေးထိုးထားသည်။  He Mastodon မှာ တင်ထားပါတယ် ထိုနေ့နှောင်းပိုင်းတွင်၊ ထိုရှာဖွေတွေ့ရှိမှုသည် မတော်တဆဖြစ်ရပ်ဖြစ်ပြီး တိုက်ဆိုင်မှုများစွာ လိုအပ်ကြောင်း သဘောပေါက်လာခဲ့သည်။ အခြားအသုံးပြုသူများထံမှ မှတ်ချက်များသည် ဖတ်ရှုထိုက်ပါသည်။ GitHub အသုံးပြုသူ သီဆမ်ဆမ် (ခေါ် Sam James) သည် ကောင်းမွန်သော Gist တစ်ခုကို ထုတ်ဝေခဲ့သည်။ xz-utils backdoor အကြောင်း မကြာခဏမေးလေ့ရှိသောမေးခွန်းများ တိုက်ခိုက်မှုကို အကျဉ်းချုပ်ဖော်ပြသည့်နေရာ၊ ပိုမိုချိတ်ဆက်ထားသည် နက်ရှိုင်းသော ခွဲခြမ်းစိတ်ဖြာမှုများ တိုက်ခိုက်မှု payload ၏ ဤခွဲခြမ်းစိတ်ဖြာမှုများသည် နည်းပညာပိုင်းအရ ထိရောက်မှုရှိပြီး အလွန်အသေးစိတ်ရှင်းပြထားသော ထိုးဆေးကို ပိုမိုနားလည်ရန် ကျွန်ုပ်တို့အား ကူညီပေးခဲ့ပါသည်။
  • xz/liblzma: Bash-stage Obfuscation ရှင်းလင်းချက်။ injection script မှ deobfuscation ပြုလုပ်ခြင်းအပေါ် "အဆင့်" လေးဆင့်ဖြင့် ကောင်းမွန်သော ခွဲခြမ်းစိတ်ဖြာမှု။
  • Filippo Valsorda ရဲ့ bluesky thread RSA_public_decrypt မှာရှိတဲ့ backdoor ကိုယ်တိုင်ကို ခွဲခြမ်းစိတ်ဖြာထားပြီး၊ ၎င်းရဲ့ သဘောသဘာဝကို ပြသထားပါတယ်- auth bypass မဟုတ်ဘဲ RCE ဖြစ်ပြီး gated (စာရေးသူရဲ့ private key ကို လက်ခံပြီး မလက်ခံရင် ပုံမှန်အပြုအမူကို ပြန်ပြောင်းပါတယ်) / ပြန်မပေးဆပ်နိုင်ပါဘူး။ စာရေးသူဟာ ထောက်လှမ်းခံရမှုကို ရှောင်ရှားဖို့ low profile လုပ်ဖို့ ရည်ရွယ်ထားပါတယ်။
  • @smx-smx (WIP) မှ XZ Backdoor ခွဲခြမ်းစိတ်ဖြာမှု – backdoor အကြောင်း နောက်ထပ် ခွဲခြမ်းစိတ်ဖြာချက် (အစပိုင်းမှာ ကျွန်တော် နီးပါး လမ်းလွဲသွားတယ် 😀)
  • xz backdoor စာရွက်စာတမ်းဝီကီ5.6.1 injection script ၏ နောက်ထပ်ခွဲခြမ်းစိတ်ဖြာမှုတစ်ခု။
ဒီလိုပါလား။ Thomas Roccia မှ ပိုစတာ  GitHub repository မှာ JiaT75 ရဲ့ လုပ်ဆောင်ချက် တစ်စိတ်တစ်ပိုင်းကို ပြသထားပြီး injection script က binary backdoor ကို ဘယ်လိုထည့်သွင်းသလဲဆိုတာကို ပြသထားပါတယ်။ xz backdoor အကြောင်း ရှင်းပြချက်.

ဖြစ်ရပ်ကို ဘယ်လိုကိုင်တွယ်ခဲ့လဲ

Andreas Freund ၏ ထုတ်ဖော်ချက်သည် သူ့စကားအရ သတိထားခဲ့သောကြောင့်-

"upstream ပါဝင်ပတ်သက်နေပုံရတာကြောင့် upstream bug ကို ကျွန်တော် report မလုပ်ရသေးပါဘူး။ အစကတော့ debian သီးသန့်ပြဿနာလို့ ထင်ခဲ့လို့ security@...ian.org ကို ကနဦးအစီရင်ခံစာ ပို့ခဲ့ပါတယ်။ နောက်ပိုင်းမှာ distros@ ကို ပြဿနာကို တင်ပြခဲ့ပါတယ်။" CISA ကို ဖြန့်ဖြူးမှုတစ်ခုမှ အကြောင်းကြားခဲ့သည်။

Red Hat က ဒီပြဿနာကို CVE-2024-3094 လို့ သတ်မှတ်ပေးခဲ့ပါတယ်။ ပြီးတော့ အဲဒီစကားလုံးက တောမီးလို ပျံ့နှံ့သွားခဲ့ပါတယ်။ XZ ရဲ့ နောက်ထပ် ပြုပြင်ထိန်းသိမ်းသူ Lasse Collin က ထပ်ထည့်ခဲ့ပါတယ်။ အသစ် commit မတ်လ ၃၀ ရက်၊ စနေနေ့တွင် “CMake: Fix sabotaged Landlock sandbox check” ခေါင်းစဉ်ဖြင့် ရေးသားခဲ့သည်။ library sandboxing landlock နည်းလမ်းများထဲမှ တစ်ခုကို အနည်းဆုံး CMake ဖြင့် တည်ဆောက်သည့်အခါတွင် ဖျက်ဆီးခဲ့သည်။ သူသည် ပြဿနာကို ချက်ချင်းထုတ်ဖော်ပြောကြားခဲ့သည်။ XZ Utils နောက်ကွယ်ကတံခါး. Red Hat က ဒီပြဿနာကို သတ်မှတ်ပေးခဲ့ပါတယ် CVE-2024-3094 (တွင်လည်းကြည့်ပါ CVE, NDV, Ubuntu ကို)။ ၎င်းကို ကြီးမားသော ပမာဏတစ်ခု သတ်မှတ်ပေးခဲ့သည်။ CVSS အခြေခံရမှတ် ၁၀ထိုသို့သော ရမှတ်များသည် အင်တာနက်ကို အမြဲတမ်း မုန်တိုင်းထန်စေသည်။ CISမတ်လ ၂၉ ရက်နေ့တွင်ပင် A မှ ထုတ်ပြန်ခဲ့သည် သတိပေးအရေးတကြီးဖြစ်မှုကြောင့် ရိုးရှင်းလွန်းနေနိုင်တာကြောင့် အသုံးပြုသူတွေကို 5.4.6 stable version ကို downgrade လုပ်ဖို့ အကြံပြုထားပါတယ်။ Tukaani အဖွဲ့အစည်းအောက်ရှိ GitHub repositories များကို ပိတ်ထားသည် (ဒါကောင်းလား၊ ဆိုးလား။ ကျွန်တော်ထင်တာက ကောင်းတယ်လို့ ထင်တယ်- distros နဲ့ အဖွဲ့အစည်းအများစုဟာ ကူးစက်ခံရတဲ့ tarballs တွေကို တည်ဆောက်ဖို့အတွက် GitHub releases တွေကို ချိတ်ဆက်နေကြဆဲပါ။ repo ကို disable လုပ်ခြင်းအားဖြင့် အဲဒါကို တားဆီးပေးပါတယ်။ ဘာပဲဖြစ်ဖြစ် မိတ္တူတစ်ခု ဒါမှမဟုတ် repos တွေ ရှိပါတယ်)။ git.tukaani.org). JiaTan75 နှင့် Lasse Collins (Larhzu) တို့၏ GitHub အကောင့်များကိုလည်း ရပ်ဆိုင်းထားသည်။ ၎င်းသည် ၎င်း၏ အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ ထိန်းချုပ်ရေးအပြစ်မဲ့သူတွေကို ထိခိုက်နိုင်ရင်တောင်မှ။ JiaT75 မပိတ်ထားသော သိုလှောင်ရုံများတွင် လုပ်ဆောင်ချက် မမြင်နိုင်သေးပါ။ လုပ်ငန်းက ချက်ချင်းတုံ့ပြန်ခဲ့ပါတယ်။ ရောင်းချသူအများအပြားဟာ အားနည်းချက်ရှိတဲ့စနစ်တွေကို ထောက်လှမ်းဖို့အတွက် စည်းမျဉ်းတွေကို ထုတ်ပြန်ခဲ့ပါတယ်။ ဥပမာ ယာရာ စည်းမျဉ်းများသို့မဟုတ် စီးပွားဖြစ်ကိရိယာများမှ ပံ့ပိုးမှု Sysdig, PANနှင့် အခြားသူများ။ လုံခြုံရေးပညာရှင်များကဲ့သို့သော ဂျိမ်းစ် ဘာသိုတီ open-source software ကို ကျွန်ုပ်တို့ မည်သို့ချဉ်းကပ်ပုံကို ပြန်လည်သုံးသပ်ခြင်းအကြောင်း တင်ခဲ့သည်။  ကျွန်ုပ်တို့သည် ယခုအခါ ဖြစ်ရပ်၏ အမြစ်ပြတ်ဖယ်ရှားခြင်းနှင့် ပြန်လည်ထူထောင်ခြင်းအဆင့်တွင် ရှိနေသည်။ JiaTan75 မှ ထိန်းသိမ်းထားသော အခြားစီမံကိန်းများကို အနီးကပ် ပြန်လည်သုံးသပ်နေပြီး အထူးသဖြင့် libarchive/libarchive (JiaTan75 သည် ပုံမှန်ပံ့ပိုးကူညီသူဖြစ်သည်) နှင့် fuzzer အော့စ်-ဖပ်ဇ် (ဒီနေရာမှာ commit JiaTan75 မှ ထုတ်လုပ်သော oss-fuzz ကို ရှောင်ရှားရန် ကြိုးစားခဲ့သော်လည်း၊ အမှန်တကယ်တွင် backdoor ကို မတွေ့ရှိနိုင်ခဲ့ပါ။ဤဖုံးကွယ်ရန်ကြိုးပမ်းမှုများသည် နောက်ထပ်သက်သေအထောက်အထားများကို ထပ်လောင်းပေါင်းထည့်သည်။ 

ဘယ်သူတွေ တိုက်ခိုက်မှုအောက်မှာ ရှိနေလဲ။

GitHub JiaT75 အကောင့် ခိုးယူခံရခြင်း (GitHub သည် မကြာသေးမီက 2FA ကို မဖြစ်မနေလိုက်နာရန် ညွှန်ကြားခဲ့သည်ကို သတိရပါ) သို့မဟုတ် အကောင့်ကိုပေးဆောင်ရမည့် ရုပ်ပိုင်းဆိုင်ရာအသုံးပြုသူသည် မကောင်းသောဘက်သို့ ရောက်သွားခြင်း ဖြစ်နိုင်သည်။ သို့သော် တိုက်ခိုက်မှု၏ နည်းပညာပိုင်းဆိုင်ရာ ရှုပ်ထွေးမှုကြောင့် နိုင်ငံတော်မှ ကျောထောက်နောက်ခံပြုထားသော အဆင့်မြင့် အမြဲတမ်းခြိမ်းခြောက်မှု (APT) အကြောင်း စဉ်းစားရန် ဆွဲဆောင်မှုရှိသော အကြောင်းပြချက်များ ရှိပါသည်။ ဆိုက်ဘာလုံခြုံရေးအေဂျင်စီများနှင့် ဥပဒေစိုးမိုးရေးမှ နောက်ထပ်စုံစမ်းစစ်ဆေးမှုများက ပြောပြလိမ့်မည် … ဒီဝင်ခွင့် Jia Tan အကြောင်း YCombinator Hacker News မှာ “ဘယ်သူ” နဲ့ သူ့ရဲ့လုပ်ဆောင်ချက်တွေအကြောင်း အလင်းပြပေးပါတယ်။ အကြံပြုထားပါတယ်။ လူဆိုးတွေက လူမှုရေးအင်ဂျင်နီယာကို အသုံးပြုပြီး တခြားအသုံးပြုသူတွေကို ဘယ်လိုလှည့်စားဖို့ ကြိုးစားကြတယ်ဆိုတဲ့ အချက်အလက်တွေ အများကြီးပေးပါတယ်။

“အရမ်းစိတ်အနှောင့်အယှက်ဖြစ်စရာကောင်းတယ် - backdoor ရဲ့ရေးသားသူလို့ထင်ရတဲ့သူက ကျွန်တော် (rwmj) နဲ့ ရက်သတ္တပတ်အတော်ကြာ ဆက်သွယ်ပြောဆိုနေခဲ့တယ် xz 5.6.x ကို Fedora 40 & 41 မှာ "ကောင်းမွန်တဲ့ features အသစ်" တွေကြောင့်ပါ။ valgrind ပြဿနာကို ဖြေရှင်းဖို့တောင် ကျွန်တော်တို့ သူနဲ့အတူတူ လက်တွဲလုပ်ဆောင်ခဲ့တယ် (အခုတော့ သူထည့်ထားတဲ့ backdoor ကြောင့် ဖြစ်တယ်ဆိုတာ သိလိုက်ရတယ်)။ ပိတ်ဆို့မှုကို မတော်တဆ ချိုးဖောက်မိပြီးနောက် မနေ့ညက ပြဿနာကို ဖြေရှင်းဖို့ အပြေးအလွှားလုပ်ခဲ့ရတယ်။ သူက xz project မှာ ၂ နှစ်ကြာ ပါဝင်ခဲ့ပြီး binary test files အမျိုးမျိုးကို ထည့်သွင်းခဲ့တယ်၊ ဒီလို ရှုပ်ထွေးမှုအဆင့်နဲ့ ရိုးသားစွာပြောရရင် တခြားနည်းလမ်းနဲ့ သက်သေမပြနိုင်မချင်း xz ရဲ့ အဟောင်းဗားရှင်းတွေကိုတောင် သံသယဝင်မိမှာပဲ။”

Jia Tan က ခြေရာခံခံရခြင်းမှ ကာကွယ်ရန် အစီအမံများ ချမှတ်ခဲ့သည်- ၎င်းသည် ချိတ်ဆက်ရန် VPN (vpn.singapore.witopia.net) ကို အသုံးပြုခဲ့ပုံရသည် - ၎င်းသည် အဆင်ပြေပါသည်။ ထို့အပြင် ပြောင်းလဲမှုများစွာသည် ပြောင်းလဲမှုများကို ပေါင်းစည်းရန် တိုက်တွန်းသည့် ယာယီ၊ တစ်ကြိမ်သာအသုံးပြုသည့် အီးမေးလ်များ (ဤကိစ္စတွင် ProtonMail မှ) မှ ပံ့ပိုးပေးထားပုံရသည်။

သရုပ်ဆောင်သည် Linux kernel အထိ ပိုမိုနက်ရှိုင်းစွာ လုပ်ဆောင်ရန် ရည်ရွယ်ထားနိုင်ပြီး၊ ၎င်းတွင် ပံ့ပိုးကူညီသူအနေဖြင့် xy-ထည့်သွင်းထားသော စီမံကိန်း။ ကနဦး ခွဲခြမ်းစိတ်ဖြာမှုအရ ယနေ့အထိ ကိုယ်ဝန်ပျက်ကျသည့် အထောက်အထား မတွေ့ရှိခဲ့ပါ။

မှတ်ချက်: နောက်တစ်ခု လူသိနည်းသော XZ ပံ့ပိုးကူညီသူ “Hans Jansen” (GitHub အသုံးပြုသူ “hansjans162”) သည် စိစစ်ဆဲdebian မှာ သူ့ရဲ့အကောင့်က အခု ပိတ်ဆို့သူဟာ debian/xz-utils မှာ သူလိုချင်တဲ့တစ်ခုကို ဖုံးကွယ်ဖို့အတွက် Debian Games ကို အပ်ဒိတ်တွေ အများကြီးလုပ်ခဲ့ပြီး backdoor ကို ဖြန့်ဝေရာမှာ မြန်မြန်ဆန်ဆန်ဖြစ်အောင် upstream 5.6.1 ကို အပ်ဒိတ်လုပ်ခဲ့ပါတယ်။ ဒက်ဘီယန်/မတည်ငြိမ်သော

လောလောဆယ် ကျွန်တော်တို့ ပြောနိုင်တာက ဒါဟာ မတူညီတဲ့ အကောင့်တွေကို အသုံးပြုနေတဲ့ (မသိရသေးတဲ့) APT တစ်ခုဖြစ်ပြီး ဒီ campaign မှာ အနည်းဆုံး နှစ်နှစ်လောက် အလုပ်လုပ်နေပြီး SSH မှာ RCE တစ်ခု ထည့်သွင်းဖို့ စိတ်ရှည်ရှည်နဲ့ ကြိုးစားနေပါတယ်။

ဤစာရေးသားချိန်အထိ “ဂျာတန်” ၏နောက်ကွယ်ရှိ အထောက်အထားကို အတည်မပြုနိုင်သေးပါ။ တိကျသော လူပုဂ္ဂိုလ်၊ အဖွဲ့အစည်း သို့မဟုတ် နိုင်ငံတော်သရုပ်ဆောင်တစ်ဦးဦးကို ယုံကြည်စိတ်ချရသော အထောက်အထားကို အများပြည်သူသိရှိနိုင်ရန် အတည်ပြုထားခြင်းမရှိသေးဘဲ၊ ၎င်းသည် ပုဂ္ဂိုလ်၏ လုပ်ငန်းလည်ပတ်မှုဆိုင်ရာ စည်းကမ်းချက် မည်မျှထိရောက်သည်ကို ပိုမိုအားကောင်းစေပါသည်။

XZ backdoor တိုက်ခိုက်မှုကို ကာကွယ်လို့ရပါသလား။

အတော်လေးခက်ခဲပါတယ်။ 

ပထမဦးစွာ၊ ထိုးသွင်းထားသော backdoor ၏ အစိတ်အပိုင်းတစ်ခုသည် စမ်းသပ်မှုများ အသုံးမပြုခဲ့သော ချုံ့ထားသော စမ်းသပ်ဖိုင်များထဲသို့ ရောက်ရှိသွားခဲ့သည်။ နောက်ကြောင်းပြန်ကြည့်လျှင် ၎င်းသည် (ဆူညံသော) အချက်ပေးသံအချို့ ထွက်ပေါ်လာနိုင်သော်လည်း၊ လက်တွေ့ကမ္ဘာတွင် စမ်းသပ်မှုများ အသုံးပြုထားသော စမ်းသပ်ဖိုင်အားလုံးကို အမှန်တကယ် စစ်ဆေးရန် မည်သူဂရုစိုက်မည်နည်း။ ဒုတိယအနေဖြင့်၊ ထိုးသွင်းထားသော backdoor ၏ အစိတ်အပိုင်းတစ်ခုသည် macro ဖိုင်များထဲသို့ release tarball များထဲသို့ ရောက်ရှိသွားပြီး၊ မျှော်လင့်ထားသော tarball များနှင့် ကွာခြားချက်များကို ကိုယ်တိုင်စစ်ဆေးရန် ခက်ခဲပါသည်။ အလိုအလျောက်လုပ်ဆောင်ခြင်းသည်လည်း ရှုပ်ထွေးပါသည်၊ အဘယ်ကြောင့်ဆိုသော် တည်ဆောက်မှုကိုယ်တိုင်မှ မျှော်လင့်ထားသော ရလဒ် (automake/autoconf မည်သို့အလုပ်လုပ်သည်ကို သိသူတိုင်းအတွက်) သည် တကယ့် tarball သည် မျှော်လင့်ချက်များနှင့် ကိုက်ညီမှုရှိမရှိ ခွဲခြမ်းစိတ်ဖြာရန် ပုံစံထုတ်ရန် ခက်ခဲသောကြောင့်ဖြစ်သည်။ တချို့က တင်စားခဲ့ကြတယ် as "git tree မှ tarball များ မကိုက်ညီခြင်းသည် bug မဟုတ်ဘဲ feature တစ်ခုသာဖြစ်သည်"၎င်း၏ source code မှ binary tarball များ၏ မူလအစသည် မဖြေရှင်းရသေးသော ပြဿနာတစ်ခုဖြစ်သည်။

အသုံးပြုသူဂုဏ်သတင်းလား။ JiaTan75 GitHub အကောင့်က အတိတ်ကလို မသမာမှုတွေ မလုပ်ခဲ့ပါဘူး။ commits. သက်သေအထောက်အထားများ စုပုံလာပြီးနောက်မှသာ ၎င်းကို ရပ်ဆိုင်းထားခဲ့သော်လည်း မတ်လ ၂၉ ရက်နေ့အထိ ပုံမှန်လုပ်ငန်းဆောင်တာများကို ပုံမှန်အသုံးပြုသူတစ်ဦးသာ လုပ်ဆောင်နေခဲ့သည်။ အင်း၊ သိပ်မပုံမှန်ပါဘူး။ နောက်ပိုင်းတွင် commits ကို (, , နှင့် exploit code ကို ချိန်ညှိပေးသည်) သည် backdoor မှ မျှော်လင့်ထားသော stack layout နှင့် ကွဲပြားမှုများကြောင့် valgrind error များနှင့် configuration အချို့တွင် crash များကို ပြင်ဆင်ရန် ကြိုးစားခဲ့သည်။ Commit သုံးသပ်ချက်တွေက ဒါကို ထောက်လှမ်းနိုင်ပေမယ့် binary test file ထဲက ပြောင်းလဲမှုတွေကို ခွဲခြမ်းစိတ်ဖြာဖို့ ဒါမှမဟုတ် C source code ထဲက GCC attribute တွေ ပြောင်းလဲဖို့ တကယ့် လှုံ့ဆော်မှုကို ဘယ်သူ သည်းခံနိုင်မှာလဲ။

SSH ကိုအသုံးပြုတဲ့အခါ alarm တွေထုတ်ပြန်သင့်လား login ၃၀၀ မီလီစက္ကန့်အစား ၈၀၀ မီလီစက္ကန့် ကြာသလား။ အလွန်သတိကြီးသူများသာ သတိပြုမိကြပေလိမ့်မည်။ စီစရိုက ပြောသည်မှာ "စိတ်တိုခြင်းသည် ငယ်ရွယ်ခြင်းနှင့်သက်ဆိုင်ပြီး သတိပညာသည် အသက်ကြီးခြင်းနှင့်သက်ဆိုင်သည်။"  

ifunc အခြေခံအဆောက်အအုံကို ၂၀၂၃ ခုနှစ် ဇွန်လတွင် “Hans Jansen” နှင့် “Jia Tan” တို့က ထည့်သွင်းခဲ့သည်။ ဤသည်မှာ ပထမဆုံးဖြစ်သည်။ commit crc64_fast.c မှာ ifunc support ထည့်ခြင်း (နောက်ပိုင်းမှာ backdoor ထိုးသွင်းဖို့အသုံးပြုခဲ့ပါတယ်)။ စမ်းသပ်ဖိုင်တွေထဲကို backdoor binaries တွေ ထိုးသွင်းခြင်းမပြုမီ လပေါင်းများစွာအလို!

မှတ်ချက်- စာရေးသူနှင့် commitဒီမှာ ကွဲပြားတာတွေ အများကြီးရှိပေမယ့် ဒါက ပုံမှန်ပါပဲ- Lasse Collin က ပရောဂျက် ထိန်းသိမ်းသူဖြစ်ပြီး ပြောင်းလဲမှုတွေကို ပေါင်းစပ်ပေးခဲ့ပါတယ်။ သူက “Hans Jansen” ကိုတောင် ကျေးဇူးတင်ကြောင်း ပြောခဲ့ပါတယ်…

Andres Freund ရဲ့ ပို့စ်နဲ့ RedHat က ဖန်တီးထားတဲ့ CVE မတိုင်ခင် ဘယ်သူမှ စိုးရိမ်ပူပန်မှုတွေ မထုတ်ဖော်ခဲ့ကြပါဘူး။ ဒါကို ဖမ်းယူနိုင်မယ့် tool တွေ အများကြီးကို သင်တွေ့ရင် အခု သူတို့က ထိခိုက်နေတဲ့ component ကို ထောက်လှမ်းမိပါပြီ။ အတိတ်ပို့စ်

အကောင်းဆုံးကာကွယ်မှုမှာ Linux ဖြန့်ချိမှုများ၏ သဘောသဘာဝနှင့် မတည်ငြိမ်သော၊ bleeding edge ဗားရှင်းများသည် အရှိန်အဟုန်မြင့်သော လုပ်ငန်းစဉ်တစ်ခုပြီးနောက် downstream တည်ငြိမ်သော ဖြန့်ချိမှုများသို့သာ ရောက်ရှိသွားပုံတို့မှ လာခြင်းဖြစ်နိုင်သည်။

XZ bBackdoor တိုက်ခိုက်မှုမှ သင်ခန်းစာများ

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

Kevin Beaumont လို စာရေးဆရာတချို့ ညွှန်ပြသည် စံနစ်၎င်းသည် ပြင်ပဝန်ဆောင်မှုများ၏ ကြီးမားသောတိုက်ခိုက်မှုမျက်နှာပြင်ကို backdoor သို့ဖွင့်ပေးသည်။ ဤအရာသည် မကောင်းသောသရုပ်ဆောင်က ဤနေရာတွင် အလွဲသုံးစားလုပ်ခဲ့ခြင်းဖြစ်သည်။ Systemd တွင် မျက်လုံးများစွာရှိသော်လည်း XZ သည် အထက်ပိုင်းတွင် ထင်ရှားသောစာကြည့်တိုက်တစ်ခုဖြစ်သည်။ “အထက်ပိုင်းရေညစ်ညမ်းသွားသောအခါ လူတိုင်းသည် အောက်ပိုင်းတွင် အဆိပ်သင့်ရေကို သောက်သုံးကြသည်”။

စနစ်အတွင်းရှိ မသက်ဆိုင်သော ပြောင်းလဲမှုတောင်းဆိုချက် ချုံ့ခြင်းစာကြည့်တိုက်များကို dynamically load လုပ်ခြင်းbackdoor ကို ဖယ်ရှားပေးမည့် ဗားရှင်းကို စနစ်ထဲသို့ ပေါင်းစည်းပြီးဖြစ်သော်လည်း ပေးပို့ခြင်း မရှိသေးပါ။ libsystemd မှ မိတ်ဆက်ပေးထားသော အပို dependencies များသည် အားနည်းချက်များ၏ အရင်းအမြစ် ဖြစ်နိုင်သည်နှင့် မနေ့က ဤတောင်းဆိုချက်ကို ဖွင့်လှစ်ထားသည်

A မှတ်ချက် “xz: ပြဿနာဖြေရှင်းရန် ifunc ကိုပိတ်ပါ” တွင် commit ထိုသို့သော လုပ်ဆောင်ချက်များကို ကာကွယ်လိုပါက မည်သည့်နေရာတွင် အာရုံစိုက်ရမည်ကို ထက်မြက်စွာ ထိုးထွင်းသိမြင်စေခဲ့သည် (ကျွန်ုပ်၏ အလေးပေးမှုမှာ-

"ကျွန်ုပ်တို့ အသိုင်းအဝိုင်းတစ်ခုအနေနဲ့ သင်ယူသင့်တဲ့ သင်ခန်းစာကတော့ ပိုမိုလုံခြုံအောင် လုပ်ဆောင်ဖို့ပါပဲ" software supply chain security ရင်းမြစ်ကုဒ်ထက်ကျော်လွန်၍ တည်ဆောက်မှုစနစ်များကို ဘက်စုံစစ်ဆေးခြင်း။ SolarWinds ၏ closed-source စောင့်ကြည့်ရေးဆော့ဖ်ဝဲလ်ကမ်းလှမ်းချက်အတွက် တိုက်ခိုက်သူများသည် ဆော့ဖ်ဝဲလ်အပ်ဒိတ်များကို ပြုပြင်မွမ်းမံခဲ့သည့် SolarWinds ချိုးဖောက်မှုကဲ့သို့ပင်။

အစောပိုင်းရှာဖွေတွေ့ရှိမှုနှင့် လျင်မြန်သောတုံ့ပြန်မှုသည် သက်ရောက်မှုကို အကန့်အသတ်ဖြစ်စေခဲ့သည်။ သင်မှတ်မိပါက အဆုံးသတ်မြင်ကွင်းမှ Men in Black III"အဲဒါက အတော်လေးကို နီးစပ်တဲ့ အဆင့်ပဲ။" K က ဒီတစ်ခါလည်း အကြံပေးချက်ကို ချန်ထားဖို့ မမေ့ပါဘူး။ ပြီးတော့ Linux stable distributions တွေမှာ boglodite ဘယ်ဟာမှ မဝင်ဘူး။
၁။ “ကျွန်တော်က လုံခြုံရေးသုတေသီလည်း မဟုတ်သလို၊ ပြောင်းပြန်အင်ဂျင်နီယာလည်း မဟုတ်ပါဘူး။” ၂။ ဂျီယာဆိုတာ တရုတ်နာမည်တစ်ခုပါ။ တန်ဆိုတာကလည်း “ခမ်းနားထည်ဝါတယ်” လို့ အဓိပ္ပာယ်ရတဲ့ မိသားစုနာမည်တစ်ခုပါ။ ဆွေမျိုးတော်စပ်သူ အတော်များများက ဒီနာမည်ကို မျှဝေသုံးစွဲကြပါတယ်။ ဒီနာမည်နဲ့ ဘယ်သူ့ကိုမှ မဝေဖန်ပါနဲ့။

အမြဲမေးလေ့ရှိသောမေးခွန်းများ

XZ backdoor က ဒီနေ့ခေတ်မှာ အန္တရာယ်ရှိနေတုန်းလား။

အများစုမှာ ထိန်းသိမ်းထားနိုင်ပေမယ့် လုံးဝပျောက်ကွယ်သွားတာမျိုးတော့ မဟုတ်ပါဘူး။ ၂၀၂၅ ခုနှစ် ဩဂုတ်လမှာ သုတေသီတွေက Debian Docker Hub image အတော်များများမှာ backdoor ရှိနေတာကို တွေ့ရှိခဲ့ပြီး Debian က အသက်မဝင်တဲ့ သမိုင်းဝင်ပစ္စည်းတွေအဖြစ် သတ်မှတ်ခဲ့ပါတယ်။ အဖွဲ့တွေအနေနဲ့ ၂၀၂၄ patch က တံခါးကို လုံးဝပိတ်လိုက်တယ်လို့ ယူဆမယ့်အစား ခေတ်မမီတော့တဲ့၊ patch မလုပ်ရသေးတဲ့ base image တွေပေါ်မှာ တည်ဆောက်နေတာ မဟုတ်ဘူးဆိုတာ အတည်ပြုသင့်ပါတယ်။

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

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

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