ICMP ပက်ကေ့ဂျ်မှတစ်ဆင့် အသုံးချခံရသူများအပါအဝင် RTOS Zephyr တွင် အားနည်းချက် 25 ခု၊

NCC အဖွဲ့မှ သုတေသီများ ထုတ်ဝေခဲ့သည် အခမဲ့ပရောဂျက်စာရင်းစစ်ရလဒ်များ Zephyr, ဖွံ့ဖြိုးဆဲ Internet of Things အယူအဆ (IoT၊ Internet of Things) နှင့် ကိုက်ညီသော စက်ပစ္စည်းများကို တပ်ဆင်ရန် ရည်ရွယ်သည့် အချိန်နှင့်တပြေးညီ လည်ပတ်မှုစနစ် (RTOS)။ စာရင်းစစ်အတွင်း ထုတ်ဖော်ပြသခဲ့သည်။ အားနည်းချက် ၃၅ Zephyr နှင့် MCUboot ရှိ 1 အားနည်းချက်။ Zephyr ကို Intel ကုမ္ပဏီများ၏ ပူးပေါင်းပါဝင်မှုဖြင့် တီထွင်လျက်ရှိသည်။

စုစုပေါင်း၊ ကွန်ရက် stack တွင် အားနည်းချက် 6 ခု၊ kernel တွင် 4 ခု၊ command shell တွင် 2 ခု၊ system call handlers တွင် 5 ခု၊ USB subsystem တွင် 5 ခုနှင့် firmware update ယန္တရားတွင် 3 ခုတို့ဖြစ်သည်။ ပြသနာနှစ်ခုကို အဆင့်သတ်မှတ်ထားပြီး၊ နှစ်ခုက မြင့်မားသည်၊ 9 သည် အလယ်အလတ်၊ 9 သည် နိမ့်သည်နှင့် 4 ကို ထည့်သွင်းစဉ်းစားရန်ဖြစ်သည်။ အရေးပါသောပြဿနာများသည် IPv4 stack နှင့် MQTT ခွဲခြမ်းစိတ်ဖြာမှုကို ထိခိုက်စေသည်၊ အန္တရာယ်ရှိသောအရာများသည် USB အစုလိုက်အပြုံလိုက်သိုလှောင်မှုနှင့် USB DFU ဒရိုက်ဗာများကို ထိခိုက်စေပါသည်။ သတင်းအချက်အလက် ထုတ်ဖော်ချိန်တွင် အန္တရာယ်အရှိဆုံး အားနည်းချက် ၁၅ ခုအတွက်သာ ပြင်ဆင်မှုများ ပြုလုပ်ထားပြီး၊ ဝန်ဆောင်မှုကို ငြင်းပယ်ခြင်း သို့မဟုတ် အပို kernel ကာကွယ်ရေး ယန္တရားများတွင် ချို့ယွင်းချက်များနှင့် ဆက်စပ်နေသည့် ပြဿနာများသည် ပြုပြင်မွမ်းမံနေဆဲဖြစ်သည်။

အဝေးထိန်းစနစ်ဖြင့် အသုံးချနိုင်သော အားနည်းချက်တစ်ခုကို ပလပ်ဖောင်း၏ IPv4 အစုအဝေးတွင် ဖော်ထုတ်တွေ့ရှိခဲ့ပြီး ၎င်းသည် ICMP ပက်ကေ့ခ်ျများကို ပြုပြင်မွမ်းမံသည့်အခါ မှတ်ဉာဏ်ပျက်စီးမှုကို ဦးတည်စေသည်။ သင့်လျော်သော header field length ကို စစ်ဆေးခြင်း မရှိခြင်းကြောင့် ဖြစ်ရသည့် MQTT protocol parser တွင် နောက်ထပ် လေးနက်သော ပြဿနာကို တွေ့ရှိခဲ့ပြီး၊ ၎င်းသည် အဝေးထိန်းကုဒ်ကို လုပ်ဆောင်ခြင်းသို့ ဦးတည်သွားနိုင်သည်။ IPv6 stack နှင့် CoAP ပရိုတိုကော အကောင်အထည်ဖော်မှုတွင် ဝန်ဆောင်မှုဆိုင်ရာ ငြင်းဆိုမှုပြဿနာများ နည်းပါးသည်ကို တွေ့ရှိရသည်။

ဝန်ဆောင်မှုကို ငြင်းပယ်ခြင်း သို့မဟုတ် kernel အဆင့်တွင် ကုဒ်ကို လုပ်ဆောင်ရန် အခြားပြဿနာများကို စက်တွင်းတွင် အသုံးချနိုင်သည်။ ဤအားနည်းချက်အများစုသည် စနစ်ခေါ်ဆိုမှုဆိုင်ရာ အငြင်းအခုံများကို မှန်ကန်သောစစ်ဆေးမှုများမရှိခြင်းနှင့် ဆက်စပ်နေပြီး kernel memory ၏ မတရားသောနေရာများသို့ ရေးမှတ်ခြင်းနှင့် ဖတ်ခြင်းဆီသို့ ဦးတည်သွားစေနိုင်သည်။ ပြဿနာများသည် စနစ်ခေါ်ဆိုမှုလုပ်ဆောင်ခြင်းကုဒ်ကိုယ်တိုင်လည်း တိုးလာသည်—အနုတ်လက္ခဏာစနစ်ခေါ်ဆိုမှုနံပါတ်ကို ခေါ်ဆိုခြင်းသည် ကိန်းပြည့်ပြည့်သွားစေသည်။ kernel သည် ASLR ကာကွယ်မှု (လိပ်စာနေရာကို ကျပန်းပြုလုပ်ခြင်း) နှင့် စထရိုက်ပေါ်တွင် Canary အမှတ်အသားများကို သတ်မှတ်ခြင်းအတွက် ပြဿနာများကို ဖော်ထုတ်ခဲ့ပြီး အဆိုပါယန္တရားများကို ထိရောက်မှုမရှိစေပါ။

ပြဿနာများစွာသည် USB stack နှင့် တစ်ဦးချင်း drivers များကို ထိခိုက်စေပါသည်။ ဥပမာအားဖြင့်၊ USB အစုလိုက်အပြုံလိုက် သိုလှောင်မှုတွင် ပြဿနာများသည် တိုက်ခိုက်သူမှ ထိန်းချုပ်ထားသော USB host နှင့် စက်ပစ္စည်းကို တိုက်ခိုက်သူမှ ထိန်းချုပ်ထားသည့် USB ဟို့စ်သို့ ချိတ်ဆက်ထားသည့်အခါ kernel အဆင့်တွင် ကြားခံအလျှံပယ်ဖြစ်စေပြီး ကုဒ်ကို လုပ်ဆောင်နိုင်သည်။ USB DFU တွင် အားနည်းချက်တစ်ခုသည် USB မှတစ်ဆင့် ဖိုင်းဝဲအသစ်ကိုတင်ခြင်းအတွက် ဒရိုက်ဘာဖြစ်ပြီး၊ သင်သည် ကုဒ်ဝှက်ခြင်းအသုံးမပြုဘဲ၊ ဒစ်ဂျစ်တယ်လက်မှတ်ကို အသုံးပြု၍ အစိတ်အပိုင်းများကို စစ်ဆေးခြင်းမရှိဘဲ မိုက်ခရိုကွန်ထရိုလာ၏အတွင်းပိုင်း Flash ထဲသို့ မွမ်းမံထားသော ဖိုင်းဝဲပုံတစ်ပုံကို တင်နိုင်သည်။ ထို့အပြင် open bootloader code ကို လေ့လာခဲ့သည်။ MCUbootညင်သာပျော့ပျောင်းသော အားနည်းချက်တစ်ခုကို တွေ့ရှိခဲ့ရာ၊
၎င်းသည် UART အပေါ် SMP (ရိုးရှင်းသောစီမံခန့်ခွဲမှုပရိုတိုကော) ပရိုတိုကောကို အသုံးပြုသောအခါ ကြားခံအလျှံပယ်ဖြစ်စေနိုင်သည်။

Zephyr တွင် လုပ်ငန်းစဉ်အားလုံးအတွက် ကမ္ဘာလုံးဆိုင်ရာ မျှဝေထားသော virtual address space (SASOS၊ Single Address Space Operating System) တစ်ခုတည်းကိုသာ ပေးထားကြောင်း သတိရပါ။ Application-specific code ကို သီးခြား hardware တွင် loaded လုပ်ပြီး run နိုင်သော monolithic executable အဖြစ် ဖန်တီးရန်အတွက် application-specific kernel နှင့် ပေါင်းစပ်ထားသည်။ စနစ်ရင်းမြစ်အားလုံးကို compile time တွင် ဆုံးဖြတ်ပြီး ကုဒ်အရွယ်အစားကို လျှော့ချကာ စွမ်းဆောင်ရည်ကို တိုးစေသည်။ စနစ်ပုံတွင် အပလီကေးရှင်းကိုလည်ပတ်ရန် လိုအပ်သည့် kernel အင်္ဂါရပ်များသာ ပါဝင်နိုင်သည်။

Zephyr ၏အဓိကအားသာချက်များကြားတွင်မှတ်သားစရာဖြစ်သည်။ ဖော်ပြခဲ့သည် လုံခြုံစိတ်ထားဖြင့် ဖွံ့ဖြိုးတိုးတက်ရေး။ အတည်ဖွံ့ဖြိုးတိုးတက်မှုအဆင့်အားလုံးသည် ကုဒ်၏လုံခြုံရေးကို အတည်ပြုရန် မဖြစ်မနေအဆင့်များဖြစ်ကြသည်- fuzzing testing၊ static analysis၊ penetration testing၊ code review၊ backdoor implementation နှင့် ခြိမ်းခြောက်မှု modeling တို့ဖြစ်သည်။

source: opennet.ru

မှတ်ချက် Add