မာတိကာ[ဖျောက်][ရှိုး]
အင်တာနက် အားနည်းချက်တစ်ခုဖြစ်သည့် Log4Shell သည် မကြာသေးမီက စက်သန်းပေါင်းများစွာကို ထိခိုက်ခဲ့သည်။ Log4j၊ မထင်မရှားဖြစ်သော်လည်း နေရာအနှံ့နီးပါး ဆော့ဖ်ဝဲလ်အပိုင်းအစတစ်ခုက ၎င်းကိုဖြစ်ပေါ်စေသည်။
Log4j ကို ကွန်ပြူတာ စနစ်အမျိုးမျိုးတွင် နောက်ကွယ်မှ ဖြစ်ပေါ်လာသည့် လုပ်ဆောင်ချက်အားလုံးကို မှတ်တမ်းတင်ရန်အတွက် အသုံးပြုသည်။
၎င်းသည် အပလီကေးရှင်းအများစုတွင် စီးပွားရေးလုပ်ငန်းများနှင့် အစိုးရအဖွဲ့အစည်းများပင်လျှင် အသုံးပြုသည့် open-source logging library ကို အခြေခံထားသည်။
ဖော်ထုတ်ဖူးသမျှ အဆိုးဆုံး ဆိုက်ဘာလုံခြုံရေးတွင်းများထဲမှ တစ်ခုဖြစ်သောကြောင့် သင်၏စနစ်များကို ဤအားနည်းချက်မှ ကာကွယ်ရန် အရေးကြီးပါသည်။ ဒါပေမယ့်ဘယ်လို?
Log4j အားနည်းချက်ကို အသေးစိတ်လေ့လာပြီး ၎င်းအတွက် ဖြစ်နိုင်ချေရှိသော ဖြေရှင်းချက်အားလုံးကို ရှာဖွေကြည့်ကြပါစို့။
Log4j ဆိုတာဘာလဲ။
Log4j သည် တစ်ခုဖြစ်သည်။ open-source ဆော့ဖ်ဝဲလ်ဆော့ဖ်ဝဲရေးဆွဲသူများသည် ၎င်းတို့၏အက်ပ်လီကေးရှင်းများအတွင်း မတူညီသောဒေတာများကို မှတ်တမ်းတင်နိုင်စေသည့် လော့ဂ်ဘောင်ဘောင်။ ၎င်းသည် Apache Logging Services ပရောဂျက်၏ အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး၊ Apache ကိုဆော့ဝဲဖောင်ဒေးရှင်းမှ.
ရာနှင့်ချီသော ဝဘ်ဆိုက်များနှင့် အက်ပ်များသည် အမှားရှာပြင်ခြင်းနှင့် အခြားအသုံးပြုမှုများအတွက် မှတ်တမ်းဒေတာများကဲ့သို့သော အရေးကြီးသော လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန် Log4j ကို အသုံးပြုသည်။
ညံ့ဖျင်းသောအွန်လိုင်းလင့်ခ်ကို သင်ထည့်သွင်းခြင်း သို့မဟုတ် ကလစ်နှိပ်ခြင်းဖြင့် 404 အမှားသတိပေးချက်ကို ရယူသည့်အခါ၊ ၎င်းသည် အလုပ်တွင် Log4j ၏ မကြာခဏဥပမာတစ်ခုဖြစ်သည်။ သင်ဝင်ရောက်ရန်ကြိုးစားခဲ့သည့် ဝဘ်လင့်ခ်၏ဒိုမိန်းကို လုပ်ဆောင်သည့် ဝဘ်ဆာဗာသည် ထိုဝဘ်စာမျက်နှာမရှိကြောင်း အသိပေးသည်။ ၎င်းသည် ဆာဗာ၏ စနစ်စီမံခန့်ခွဲသူများအတွက် Log4j တွင် အဖြစ်အပျက်ကိုလည်း မှတ်တမ်းတင်ထားသည်။
ဆော့ဖ်ဝဲပရိုဂရမ်တစ်လျှောက်လုံးတွင် အလားတူရောဂါရှာဖွေရေးအချက်ပြမှုများကို အသုံးပြုသည်။ ဥပမာ-အွန်လိုင်းဂိမ်း Minecraft တွင်၊ ဆာဗာသည် အသုံးပြုထားသော RAM စုစုပေါင်းနှင့် console သို့ပေးပို့သော အသုံးပြုသူညွှန်ကြားချက်များကဲ့သို့သော လုပ်ဆောင်ချက်များကို မှတ်တမ်းရယူရန် Log4j ကိုအသုံးပြုသည်။
အားနည်းချက်က ဘယ်လိုဖြစ်တာလဲ။
Lookups သည် Log4j 2.0 တွင် မိတ်ဆက်ထားသော အင်္ဂါရပ်အသစ်ဖြစ်ပြီး၊ မှတ်တမ်းထည့်သွင်းမှုများတွင် နောက်ထပ်အချက်အလက်များကို ပေါင်းစပ်ထည့်သွင်းရန် ကူညီပေးသည်။ ဤရှာဖွေမှုများထဲမှ တစ်ခုသည် လမ်းညွှန်ဝန်ဆောင်မှုတစ်ခုနှင့် ဆက်သွယ်ရန်အတွက် Java API တစ်ခုဖြစ်သည့် JNDI (Java Naming and Directory Interface) ရှာဖွေမှုဖြစ်သည်။
ဤနည်းလမ်းကိုအသုံးပြုခြင်းဖြင့် အတွင်းပိုင်းအသုံးပြုသူ ID များကို အမှန်တကယ်အသုံးပြုသူအမည်များနှင့် ပုံဖော်နိုင်သည်။ LDAP ဆာဗာမှ ပံ့ပိုးပေးသော ဒေတာအမျိုးအစားများထဲမှ တစ်ခုသည် မှတ်ဉာဏ်ထဲသို့ ထည့်သွင်းပြီး Log4j စံနမူနာဖြင့် လုပ်ဆောင်သည့် Java အတန်းကို ညွှန်ပြသည့် URI ဖြစ်သောကြောင့် ဤမေးမြန်းချက်သည် အသစ်တွေ့ရှိထားသော RCE အားနည်းချက်ကို ဖော်ထုတ်ပေးပါသည်။
Log4j စာကြည့်တိုက်၏ ထည့်သွင်းမှုအတည်ပြုချက်တွင် အားနည်းချက်တစ်ခုကြောင့်၊ ၎င်းသည် မယုံကြည်ရသော ရင်းမြစ်တစ်ခုမှ မတရားသော LDAP ဆာဗာကို ထိုးသွင်းရန် ဖြစ်နိုင်သည်။ မှတ်တမ်းများသို့ ပေးပို့သော ဒေတာကို ရိုးရိုးစာသားအဖြစ် ကိုင်တွယ်မည်ဟု ဆော့ဖ်ဝဲအင်ဂျင်နီယာများက ယူဆသောကြောင့်၊ အပိုထည့်သွင်းမှု အတည်ပြုခြင်းမျိုး မလုပ်ဘဲ အန္တရာယ်ရှိသော အသုံးပြုသူ ထည့်သွင်းမှုသည် မှတ်တမ်းများအတွင်းသို့ ဝင်ရောက်သွားမည်ဖြစ်သည်။
မှတ်တမ်းထုတ်ပြန်ချက်သည် ဤကဲ့သို့ဖြစ်နိုင်သည်-
အန္တရာယ်ရှိသောအသုံးပြုသူတစ်ဦးသည် URL ကန့်သတ်ချက်တစ်ခုတွင် လူဆိုး LDAP ဆာဗာကို ရည်ညွှန်းသည့် JNDI ရှာဖွေမှုတစ်ခုကို ယခုထည့်သွင်းမည်ဖြစ်သည်။ JNDI ရှာဖွေမှုမှာ အောက်ပါအတိုင်းဖြစ်ပါမည်။
ထို့နောက် Log4j စာကြည့်တိုက်သည် Java Factory နှင့် Java Codebase အတွက် တန်ဖိုးများအပါအဝင် လမ်းညွှန်အချက်အလက်များကို ရယူရန်အတွက် attacker.com တွင် ဤ LDAP ဆာဗာနှင့် ဆွေးနွေးသည်။
ဤတန်ဖိုးနှစ်ခုတွင် ကုဒ်ကိုလုပ်ဆောင်ခြင်းအား ပြီးမြောက်စေကာ Log4j instance မှ လုပ်ဆောင်ပြီး memory ထဲသို့ တင်ပြီး LogXNUMXj မှ လုပ်ဆောင်သည့် တိုက်ခိုက်သူ၏ Java အတန်းအစား ပါဝင်သည်။
အန္တရာယ်မှာကားအဘယ်သူနည်း
Log4j အားနည်းချက်သည် မယုံနိုင်လောက်အောင် ကျယ်ပြန့်ပြီး လုပ်ငန်းသုံး အပလီကေးရှင်းများ၊ ထည့်သွင်းထားသော စက်များနှင့် ၎င်းတို့၏ စနစ်ခွဲများကို ထိခိုက်စေပါသည်။ သက်ရောက်မှုရှိသောအက်ပ်များတွင် Cisco Webex၊ Minecraft နှင့် FileZilla FTP တို့ပါဝင်သည်။
သို့သော်လည်း ဤသည်မှာ စာရင်းတစ်ခုလုံးကို ဆိုလိုခြင်းမဟုတ်ပါ။ ချို့ယွင်းချက်သည် အဖြစ်အပျက်မှတ်တမ်းတင်ရန်အတွက် Apache Log2020j ကိုအသုံးပြုသည့် Ingenuity Mars 4 ဓားမမစ်ရှင်ကိုပင် သက်ရောက်မှုရှိသည်။
လုံခြုံရေးအသိုက်အဝန်းတစ်ရပ်ကို ပြုစုထားသည်။ အားနည်းချက်ရှိသော စနစ်များစာရင်း. ဤစာရင်းများကို စဉ်ဆက်မပြတ် အပ်ဒိတ်လုပ်နေသည်ကို မှတ်သားထားရန်မှာ အရေးကြီးပါသည်၊ ထို့ကြောင့် အချို့သော ပရိုဂရမ် သို့မဟုတ် စနစ်တစ်ခုအား မဖော်ပြပါက၊ ၎င်းကို မထိခိုက်စေဟု မယူဆပါနှင့်။
ဤအားနည်းချက်ကို ထိတွေ့မှုသည် အလွန်ဖြစ်နိုင်ချေရှိပြီး တိကျသည့်တိုင်ဖြစ်သည်။ နည်းပညာ stack Java ကိုမကျင့်သုံးပါ၊ လုံခြုံရေးအမှုဆောင်များသည် အရေးကြီးသော ပေးသွင်းစနစ်များ၊ SaaS ပေးသွင်းသူများ၊ cloud hosting ဝန်ဆောင်မှုပေးသူများနှင့် ဝဘ်ဆာဗာပံ့ပိုးပေးသူများကို မျှော်လင့်သင့်သည်။
Log4j အားနည်းချက်ကို ဘယ်လိုစစ်ဆေးမလဲ။
ပထမအဆင့်မှာ တိုက်ခိုက်မှုတစ်ခု ဖြစ်ပွားနေပြီလားဟု ဆုံးဖြတ်ရန်ဖြစ်သည်။ RCE payload အပိုင်းအစများအတွက် စနစ်မှတ်တမ်းများကို စစ်ဆေးခြင်းဖြင့် သင်သည် ထိုသို့ပြုလုပ်နိုင်သည်။
“jndi”၊ “ldap”၊ သို့မဟုတ် “$::” ကဲ့သို့သော ဝေါဟာရများကို ရှာဖွေခြင်းသည် မည်သည့်မှတ်တမ်းကိုမဆို ထုတ်ပေးပါက၊ လုံခြုံရေးသုတေသီများသည် တရားဝင်တိုက်ခိုက်မှုဟုတ်မဟုတ် သို့မဟုတ် လက်ဗွေနှိပ်ခြင်းမျှသာဖြစ်ကြောင်း သိရှိရန် ထပ်မံရှာဖွေသင့်သည်။
အန္တရာယ်ရှိသော ဝန်ထုပ်ဝန်ပိုးများကို မပို့ဆောင်ဘဲ တောရိုင်းအတွင်း ချေမှုန်းမှုများစွာကို ရှာဖွေတွေ့ရှိခဲ့သည်။ မည်သို့ပင်ဆိုစေကာမူ၊ ၎င်းတို့ကို လုံခြုံရေးကျွမ်းကျင်သူများက ဤတိုက်ခိုက်မှုတွင် မည်မျှထိခိုက်နိုင်သည်ကို ဆုံးဖြတ်ရန် ၎င်းတို့ကို လုပ်ဆောင်ခဲ့သည်။
နောက်တစ်ဆင့်မှာ ပရောဂျက်အားလုံးကိုခွဲခြားသတ်မှတ်ရန် Log4j စာကြည့်တိုက်ကို အသုံးပြုရန်ဖြစ်သည်။ 2.0-beta9 နှင့် 2.14.1 ကြားရှိဗားရှင်းများကို အသုံးပြုပါက ပရောဂျက်ကို ထိခိုက်နိုင်သည်။
ဤအားနည်းချက်သည် မည်သည့်နေရာတွင် ရှိနေသည်ကို ဆုံးဖြတ်ရာတွင် ခက်ခဲခြင်းကြောင့်၊ ပရောဂျက်ကို ထိခိုက်နိုင်သည်ဟု ယူဆနိုင်ပြီး စာကြည့်တိုက်ကို အပ်ဒိတ်လုပ်ခြင်းသည် ကုဒ်လုပ်ဆောင်ခြင်း၏ အန္တရာယ်ကို ဖယ်ရှားရန် အကောင်းဆုံးလုပ်ဆောင်မှုနည်းလမ်းဖြစ်သည်ကို ဆိုလိုပါသည်။
အသုံးပြုထားသောဗားရှင်းသည် 2.0-beta 9 ထက်နည်းပါက ပရောဂျက်သည် Log4j ဒစ်ဂျစ်တိုက်ကို အဆင့်မြှင့်ထားသင့်သော်လည်း 1.x အပိုင်းအခြားရှိ ဗားရှင်းများသည် ဟောင်းနေပြီး အပ်ဒိတ်များမရတော့ပါက ပရောဂျက်သည် အားနည်းချက်မရှိပါ။
ထိခိုက်လွယ်သောပရောဂျက်ကို ရှာဖွေတွေ့ရှိခြင်းရှိမရှိ၊ Log4j ကို အသုံးပြု၍ မှတ်တမ်းတင်ထားသည့် မည်သည့်အချက်အလက်မဆို အသုံးပြုသူပြောင်းလဲနိုင်သော အချက်အလက်ပါရှိသည်ကို စစ်ဆေးရန် အကြံပြုအပ်ပါသည်။ URL များ၊ တောင်းဆိုချက်ဘောင်များ၊ ခေါင်းစီးများနှင့် ကွက်ကီးများသည် ဤဒေတာ၏ ဥပမာများဖြစ်သည်။ ဤအရာများထဲမှ တစ်ခုကို မှတ်တမ်းတင်ထားပါက ပရောဂျက်သည် အန္တရာယ်ရှိသည်။
ဤအသိပညာသည် စနစ်မှတ်တမ်းများအတွင်း ပိုမိုသိရှိနိုင်စေရန်နှင့် သင့်ဝဘ်အက်ပလီကေးရှင်းကို တိုက်ခိုက်ပြီးဖြစ်မဖြစ် ဆုံးဖြတ်ရာတွင် ကူညီပေးနိုင်ပါသည်။
ဝဘ်အက်ပလီကေးရှင်းသည် အားနည်းချက်ရှိမရှိကို ရှာဖွေနိုင်သည့် အခမဲ့အွန်လိုင်းကိရိယာများ ရှိပါသည်။ အဲဒီအစီအစဉ်တွေထဲက တစ်ခုပါ။ Log4Shell မုဆိုး. ၎င်းသည် open-source ဖြစ်ပြီး တွင် ရရှိနိုင်ပါသည်။ GitHub.
အွန်လိုင်းအပလီကေးရှင်းရှိ ကုဒ်၏အားနည်းချက်ဧရိယာတစ်ခုကို တွေ့ရှိပါက၊ ထုတ်ဖော်ကိရိယာမှပေးဆောင်သည့် payload ကို ဝဘ်အပလီကေးရှင်းထဲသို့ ထိုးသွင်းရန်အတွက် အသုံးပြုနိုင်သည်။ စမ်းသပ်ခြင်းတူးလ်သည် အားနည်းချက်ကို အသုံးချခံရပါက သင့်ဝဘ်အပလီကေးရှင်းနှင့် ၎င်းတို့၏ LDAP ဆာဗာကြားတွင် ပြုလုပ်ထားသည့် ချိတ်ဆက်မှုများကို ဖော်ပြမည်ဖြစ်သည်။
Log4j အားနည်းချက်ကို ပြုပြင်ရန် နည်းလမ်းများ
ပထမအဆင့်မှာ ပုံမှန် ပက်ကေ့ဂျ်မန်နေဂျာများကို အသုံးပြု၍ သို့မဟုတ် ၎င်းမှ တိုက်ရိုက်ဒေါင်းလုဒ်လုပ်ခြင်းဖြင့် သင်လုပ်ဆောင်နိုင်သည့် Log4j ကို အပ်ဒိတ်လုပ်ရန်ဖြစ်သည်။ စာမျက်နှာ.
ပတ်ဝန်းကျင်ကို ပြောင်းလဲနိုင်သောပုံစံ MSG ဖော်မုဒ်ကို အမှန်ဟု သတ်မှတ်ခြင်းဖြင့် အားနည်းချက်၏ အသုံးချနိုင်မှုကို လျှော့ချရန်လည်း ဖြစ်နိုင်သည်။ သို့သော်လည်း ဤတန်ပြန်ဆောင်ရွက်မှုသည် 4 ထက်ကြီးသော သို့မဟုတ် တူညီသော Log2.10j ဗားရှင်းများနှင့်သာ သက်ဆိုင်ပါသည်။
ယခု ကျွန်ုပ်တို့သည် အခြားရွေးချယ်စရာများကို စဉ်းစားကြည့်ကြစို့။
1. Log4j ဗားရှင်း 2.17.0 အတွက် ဖြေရှင်းနည်းများ
Log4Shell ကို ကာကွယ်ရန် Log2.15.0j ဗားရှင်း 4 ကို အသုံးပြုရန် အခိုင်အမာ အကြံပြုထားသော်လည်း၊ ထိုသို့မဖြစ်နိုင်ပါက အခြားဖြေရှင်းနည်းများကို ရရှိနိုင်ပါသည်။
Log2.7.0j ၏ ဗားရှင်း 4 နှင့် နောက်ပိုင်း အသုံးပြုသူမှ ပံ့ပိုးပေးသော ဒေတာအတွက် ရာခိုင်နှုန်း m nolookups syntax ကို အသုံးပြု၍ မှတ်တမ်းတင်ရမည့် အဖြစ်အပျက်များ၏ ဖော်မတ်ကို ပြောင်းလဲခြင်းဖြင့် မည်သည့်တိုက်ခိုက်မှုကိုမဆို ကာကွယ်ရန် ဖြစ်နိုင်သည်။ ဤအပ်ဒိတ်သည် ပရိုဂရမ်၏ဗားရှင်းအသစ်ကိုထုတ်လုပ်ရန်အတွက် Log4j ဖွဲ့စည်းမှုပုံစံဖိုင်ကို တည်းဖြတ်ရန်လိုအပ်သည်။ ရလဒ်အနေဖြင့်၊ ဤဗားရှင်းအသစ်ကို အသုံးမပြုမီ၊ နည်းပညာပိုင်းနှင့် လုပ်ငန်းဆိုင်ရာ တရားဝင်အတည်ပြုခြင်းအဆင့်များကို ထပ်ခါတလဲလဲ ပြုလုပ်ရမည်ဖြစ်သည်။
Log4j ဗားရှင်း 2.10.0 နှင့်အထက်- ဥပမာ -Dlog4j2 ရွေးချယ်မှုဖြင့် Java virtual machine ကိုစတင်သောအခါ log4j2.formatMsgNoLookups configuration parameter ကို true အဖြစ်သတ်မှတ်ခြင်းဖြင့် မည်သည့်တိုက်ခိုက်မှုကိုမဆို ကာကွယ်ရန်လည်း ဖြစ်နိုင်သည်။" formatMsgNoLookups = မှန်သည်၊ အခြားရွေးချယ်စရာမှာ classpath အငြင်းအခုံမှ JndiLookup အတန်းကို ဖယ်ရှားရန်ဖြစ်ပြီး၊ ပင်မတိုက်ခိုက်မှု vector ကို ဖယ်ရှားမည် (သုတေသီများသည် အခြားသော တိုက်ခိုက်မှု vector ၏ ဖြစ်နိုင်ချေကို မငြင်းဆိုပါ)။
Amazon Web Services သည် "သင့်ကိုယ်ပိုင်အန္တရာယ်ဖြင့် အသုံးပြုသင့်သည်" ဟူသော hotpatch ကို ပံ့ပိုးပေးပါသည်။ Logout4Shell ကဲ့သို့သော အခြား "နည်းပညာများ" ဖြစ်သည့် "ဤအားနည်းချက်ကို သူ့ဘာသာသူအသုံးပြုသည်" ကို ထုတ်ဝေလိုက်ပါသည်။ လုံခြုံရေးကျွမ်းကျင်သူသည် “ပြုပြင်ရန် စက်ကို ဟက်ခ်လုပ်ခြင်း” ပါ၀င်သည့် ဤလှုပ်ရှားမှု၏တရားဝင်မှုကို မေးခွန်းထုတ်သည်။
2. ပြဿနာကို Log4j v2.17.0 တွင် ဖြေရှင်းပြီးဖြစ်သည်။
2.10 ထက်ကြီးသောဗားရှင်းများအတွက်- Log4j2.formatMsgNoLookups ကို အမှန်ဟု သတ်မှတ်သင့်သည်။
ဗားရှင်း 2.0 မှ 2.10.0 အတွက်- LDAP အတန်းကို Log4j မှဖယ်ရှားရန် အောက်ပါ command ကိုဖွင့်ပါ။
Log4j2.formatMsgNoLookups ကို စနစ်ဆက်တင်များတွင် အမှန်ဟု သတ်မှတ်သင့်သည်။
JVM တွင် လျော့ပါးစေခြင်း။
JVM ကန့်သတ်ချက်များဖြင့် လျှော့ချခြင်းသည် ရွေးချယ်စရာတစ်ခု မဟုတ်တော့ပါ။ အခြားသော လျော့ပါးရေးနည်းလမ်းများ ဆက်လက်အောင်မြင်နေပါသည်။ ဖြစ်နိုင်လျှင် Log4j ဗားရှင်း 2.17.0 သို့ အဆင့်မြှင့်ပါ။ Log4j v1 အတွက် ရနိုင်သော ရွှေ့ပြောင်းခြင်းလမ်းညွှန်တစ်ခု ရှိပါသည်။
အပ်ဒိတ်တစ်ခုမဖြစ်နိုင်ပါက၊ client-side နှင့် server-side အစိတ်အပိုင်းများတွင် -Dlog4j2.formatMsgNoLookups = စစ်မှန်သောစနစ်ပိုင်ဆိုင်မှုသတ်မှတ်ထားကြောင်း သေချာပါစေ။
Log4j v1 သည် ၎င်း၏သက်တမ်းကုန်ဆုံးချိန် (EOL) သို့ရောက်ရှိပြီး ချွတ်ယွင်းချက်ပြင်ဆင်မှုများကို လက်ခံရရှိတော့မည်မဟုတ်ကြောင်း ကျေးဇူးပြု၍ သတိပြုပါ။ အခြားသော RCE vector များသည် Log4j v1 ကိုလည်း ထိခိုက်နိုင်သည် ။ ထို့ကြောင့်၊ သင် Log4j 2.17.0 သို့ အမြန်ဆုံး အဆင့်မြှင့်ရန် ကျွန်ုပ်တို့ တိုက်တွန်းအပ်ပါသည်။
3. လျော့ပါးရေးအစီအမံများ
အချို့သောအခြေအနေများတွင် Log4j သည် လက်ခံနိုင်သောစက်သည် 6u212၊ 7u202၊ 8u192 သို့မဟုတ် 11.0.2 ထက်မြင့်သော Java ဗားရှင်းကို လုပ်ဆောင်နေလျှင်ပင် လက်ရှိ exploits များသည် အလုပ်မဖြစ်နိုင်ပါ။
၎င်းသည် တိုက်ခိုက်လည်ပတ်ရန်အတွက် လိုအပ်သော လက်ရှိဗားရှင်းများတွင် ပိုမိုကောင်းမွန်သော Java အမည်ပေးခြင်းနှင့် လမ်းညွှန်ကြားခံမျက်နှာပြင် (JNDI) အဝေးထိန်းအတန်းတင်တင်ခြင်းဆိုင်ရာ အကာအကွယ်ကြောင့် ဖြစ်သည်။
ထို့အပြင်၊ 4 ထက်ကြီးသော Log2.10j ဗားရှင်းများဖြင့်၊ JVM အငြင်းအခုံ -Dlog4j2.formatMsgNoLookups = true သို့မဟုတ် JndiLookup အတန်းကို classpath မှ ဖျက်ပစ်ခြင်းဖြင့် ပြဿနာကို ရှောင်ရှားနိုင်ပါသည်။
ဤအတောအတွင်း၊ အားနည်းချက်ရှိသော ဖြစ်ရပ်များကို မဖြေရှင်းမချင်း အောက်ပါနည်းပညာများကို အသုံးပြု၍ အားနည်းချက်ကို ဖြေရှင်းနိုင်သည်-
- စနစ်ပိုင်ဆိုင်မှု log4j2.formatMsgNoLookups ကို >=2.10 အတွက် true အဖြစ် သတ်မှတ်ပါ။
- ပတ်ဝန်းကျင်ရွေးချယ်မှု LOG4J ဖော်မတ် MSG NO LOOKUPS ကို >=2.10 အတွက် အမှန်အဖြစ် သတ်မှတ်ပါ။
- 2.0-beta9 မှ 2.10.0 အတွက် classpath မှ JndiLookup.class ကို ဖယ်ရှားပါ- zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
အကြံပြုထားသည့် အကောင်းဆုံးအလေ့အကျင့်တစ်ခုမှာ သင့်လျော်သော port များသာ အင်တာနက်သို့ egress traffic ကို ကန့်သတ်ရန်ဖြစ်သည်။
နယ်ပယ်တွင်းရှိ တိုက်ခိုက်မှုအများစုကို HTTP မှတဆင့် ပေးပို့သော်လည်း၊ Log4j ကို အသုံးပြု၍ အသုံးပြုသူထည့်သွင်းသည့်ဒေတာကို မှတ်တမ်းတင်သည့် မည်သည့်ပရိုတိုကောမှတစ်ဆင့် အားနည်းချက်ကို အသုံးချနိုင်သည်။
သို့သော်လည်း၊ log4j 2.17.0 သို့ အပ်ဒိတ်လုပ်ခြင်းသည် ပြဿနာအတွက် နောက်ထပ်ချဉ်းကပ်မှုတစ်ခုကို တစ်စုံတစ်ယောက်မှ ရှာဖွေတွေ့ရှိနိုင်သောကြောင့် အကောင်းဆုံးဖြေရှင်းနည်းဖြစ်သည်။ ထို့အပြင်၊ ထုတ်ဝေသူများနှင့် ထုတ်လုပ်သူအများအပြားသည် ၎င်းတို့၏ဝန်ဆောင်မှုများ သို့မဟုတ် အက်ပ်များကို ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန် ကြေညာထားသည်။
4. Log4Shell အားနည်းချက် patch
Log4j သည် အလုံးစုံရှိနေသည်၊ အထူးသဖြင့် ယခုအခါ အားနည်းချက်ကို အသုံးချနေပါသည်။ အနှစ်ချုပ်ရန်၊ သင်လုပ်ဆောင်ရန် လိုအပ်သည်မှာ Log4j မှ စစ်ဆေးထားသော မှတ်တမ်းများတွင် အောက်ပါဇာတ်ကောင်များ ထည့်သွင်းရန်ဖြစ်သည်။
၎င်းသည် URL ၏အဆုံးတွင်ရှိသော Java ဖိုင်ကို ဒေါင်းလုဒ်လုပ်ပြီး လုပ်ဆောင်မည်ဖြစ်သည်။ ဒါဟာ ဒရာမာဆန်သလို ရိုးရှင်းပါတယ်။
သင်သိရှိထားသည့်အတိုင်း၊ ဤ Log4Shell အားနည်းချက် (CVE-2.17.0-4) ကို ပြင်ဆင်ရန် log2021j ကို ဗားရှင်း >= 44228 သို့ အဆင့်မြှင့်ရန် အရေးကြီးပါသည်။
မဖြစ်နိုင်လျှင်-
Log4j စာကြည့်တိုက် ဗားရှင်း 2.10.0 နှင့် နောက်ပိုင်းတွင် အသုံးပြုသည့် အပလီကေးရှင်းများအတွက်၊ ဥပမာ-Dlog4j2.formatMsgNoLookups = true အဖြစ် Java virtual machine ကို စတင်စဉ်တွင် configuration parameter ကို log4j2.formatMsgNoLookups = true အဖြစ် သတ်မှတ်ခြင်းဖြင့် မည်သည့်တိုက်ခိုက်မှုကိုမဆို ကာကွယ်နိုင်သည် ။ ရွေးချယ်မှု။
အခြားရွေးချယ်စရာမှာ မူလတိုက်ခိုက်မှု vector ကိုဖယ်ရှားပစ်မည့် classpath argument မှ JndiLookup အတန်းကို ဖျက်ပစ်ရန်ဖြစ်သည် (သုတေသီများသည် အခြားသော တိုက်ခိုက်သည့် vector ၏တည်ရှိမှုကို မငြင်းဆိုပါ)။
မှတ်စု
ထိခိုက်နိုင်သော စနစ်များကို ပြုပြင်ပြောင်းလဲရန် ချီတုံချတုံ ဖြစ်နေသော သို့မဟုတ် မလိုလားသော အဖွဲ့အစည်းများ (သို့မဟုတ် အပိုအကာအကွယ်များ တပ်ဆင်လိုသော်လည်း) စဉ်းစားသင့်သည်-
- အသွားအလာအားလုံးကို iSensor မှတဆင့် လမ်းကြောင်းပြောင်းကြောင်း သေချာပါစေ။waff/IPS ၎င်းသည် ချေမှုန်းရေးစနစ်သို့ ဝင်ရောက်ခြင်းမှ တားဆီးနိုင်သည်။
- စနစ်သို့ရောက်ရှိနိုင်သည့် အသွားအလာပမာဏကို ကန့်သတ်ခြင်းစနစ်သည် အင်တာနက်နှင့် ချိတ်ဆက်ရန် မလိုအပ်ပါက၊ မရှိမဖြစ်နှင့် ယုံကြည်စိတ်ချရသော IPS နှင့် အပိုင်းအခြားများသာ ဝင်ရောက်ခွင့်ကို ကန့်သတ်ပါ။
- အိမ်ရှင်၏ ခွင့်ပြုချက်ဖြင့် အထွက်လမ်းကြောင်းကို လျှော့ချခြင်း။ ဤတိုက်ခိုက်မှုသည် ဆိုးသွမ်းသောဆာဗာသို့ ချိတ်ဆက်ခြင်းဖြင့် လုပ်ဆောင်သောကြောင့်၊ လွန်ကဲသော IP လိပ်စာများနှင့် ဆိပ်ကမ်းများအားလုံးကို firewall တွင် ပိတ်ဆို့ထားသင့်သည်။
- ဝန်ဆောင်မှုကို မလိုအပ်တော့ပါက၊ ပြင်ဆင်မှု အဆင်သင့်မဖြစ်မချင်း ၎င်းကို ပိတ်ထားရပါမည်။
ကောက်ချက်
Log4j ချို့ယွင်းချက်များသည် ကျွန်ုပ်တို့၏အသိုင်းအဝိုင်းကို တုန်လှုပ်သွားစေပြီး open-source ဆော့ဖ်ဝဲလ်အပေါ် ကျွန်ုပ်တို့မည်မျှအားကိုးနေရသည်ကို ကျွန်ုပ်တို့အား သတိပေးသည်။
Log4j သည် ထူးခြားသည်။ ၎င်းသည် လည်ပတ်မှုစနစ်လည်းမဟုတ်၊ ဘရောက်ဆာလည်းမဟုတ်၊ ဆော့ဖ်ဝဲလ်တစ်ခုလည်း မဟုတ်ပါ။ ယင်းအစား ပရိုဂရမ်မာများက စာကြည့်တိုက်၊ ပက်ကေ့ခ်ျ သို့မဟုတ် ကုဒ် module တစ်ခုအဖြစ် ရည်ညွှန်းသည်။ ၎င်းသည် ဆာဗာတစ်ခုပေါ်တွင် ဖြစ်ပျက်နေသည့်အရာများကို မှတ်တမ်းထားရှိခြင်းဟူသော ရည်ရွယ်ချက်တစ်ခုသာဖြစ်သည်။
ကုဒ်ရေးသူများသည် ၎င်းတို့၏ ဆော့ဖ်ဝဲလ်ကို ထူးခြားစေသည့်အရာအပေါ် အာရုံစိုက်လိုကြသည်။ ဘီးကို ပြန်တီထွင်ဖို့ စိတ်မဝင်စားကြဘူး။ ရလဒ်အနေဖြင့်၊ ၎င်းတို့သည် Log4j ကဲ့သို့သော ရှိပြီးသား ကုဒ်စာကြည့်တိုက်များစွာကို မှီခိုအားထားနေရပါသည်။
Log4j module သည် အသုံးအများဆုံး ဝဘ်ဆာဗာဆော့ဖ်ဝဲဖြစ်သည့် Apache မှ ဆင်းသက်လာသည်။ ထို့ကြောင့် ၎င်းကို သန်းပေါင်းများစွာသော ဆာဗာများတွင် ရှာဖွေတွေ့ရှိနိုင်ပါသည်။ ဒါကြောင့် လုံခြုံရေး ခြိမ်းခြောက်မှုတွေ တိုးလာနေတယ်။
အထက်ဖော်ပြပါ ဖြေရှင်းချက်များသည် သင့်စက်ပစ္စည်းများကို ဘေးကင်းစေရန် ကူညီပေးမည်ဟု မျှော်လင့်ပါသည်။
နည်းပညာလောကမှ ပိုမိုအသုံးဝင်သော အချက်အလက်များအတွက် HashDork ကို စောင့်မျှော်ကြည့်ရှုပါ။
တစ်ဦးစာပြန်ရန် Leave