Google သည် ClusterFuzzLite fuzzing စမ်းသပ်ခြင်းစနစ်ကို မိတ်ဆက်ခဲ့သည်။

Google သည် စဉ်ဆက်မပြတ်ပေါင်းစည်းမှုစနစ်များလုပ်ဆောင်နေစဉ်အတွင်း ဖြစ်နိုင်ချေရှိသော အားနည်းချက်များကို စောစီးစွာသိရှိနိုင်စေရန်အတွက် ကုဒ်စမ်းသပ်မှုများကို စုစည်းခွင့်ပြုသည့် ClusterFuzzLite ပရောဂျက်ကို မိတ်ဆက်ပေးခဲ့သည်။ လောလောဆယ်တွင်၊ GitHub လုပ်ဆောင်ချက်များ၊ Google Cloud Build နှင့် Prow တွင် ဆွဲငင်တောင်းဆိုမှုများ၏ fuzz စမ်းသပ်မှုကို အလိုအလျောက်လုပ်ဆောင်ရန် ClusterFuzz ကို အသုံးပြုနိုင်ပြီး၊ သို့သော် အခြားသော CI စနစ်များအတွက် အထောက်အပံ့ကို အနာဂတ်တွင် မျှော်လင့်ထားသည်။ ပရောဂျက်သည် ClusterFuzz ပလပ်ဖောင်းပေါ်တွင် အခြေခံထားပြီး မွမ်းမံစမ်းသပ်မှုအစုအဝေးများကို ညှိနှိုင်းလုပ်ဆောင်ရန် ဖန်တီးထားပြီး Apache 2.0 လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

Google သည် OSS-Fuzz ဝန်ဆောင်မှုကို 2016 ခုနှစ်တွင် မိတ်ဆက်ပြီးနောက်တွင် အရေးကြီးသော open source ပရောဂျက် 500 ကျော်ကို စဉ်ဆက်မပြတ် fuzzing စမ်းသပ်ခြင်းအစီအစဉ်တွင် လက်ခံခဲ့ကြောင်း မှတ်သားရပါသည်။ စမ်းသပ်မှုများအပေါ်အခြေခံ၍ အတည်ပြုထားသော အားနည်းချက်ပေါင်း 6500 ကျော်ကို ဖယ်ရှားခဲ့ပြီး အမှားပေါင်း 21 ကျော်ကို ပြုပြင်ခဲ့သည်။ ClusterFuzzLite သည် အဆိုပြုထားသော အပြောင်းအလဲများ၏ ပြန်လည်သုံးသပ်မှုအဆင့်တွင် ပြဿနာများကို အစောပိုင်းက ရှာဖွေဖော်ထုတ်နိုင်မှုနှင့်အတူ ရှုပ်ထွေးနေသော စမ်းသပ်မှုယန္တရားများကို ဆက်လက်ဖော်ဆောင်နေသည်။ ClusterFuzzLite သည် systemd နှင့် curl ပရောဂျက်များရှိ ပြောင်းလဲမှုပြန်လည်သုံးသပ်ခြင်းလုပ်ငန်းစဉ်များတွင် အကောင်အထည်ဖော်ထားပြီးဖြစ်ပြီး၊ ကုဒ်အသစ်စစ်ဆေးခြင်း၏ ကနဦးအဆင့်တွင် အသုံးပြုသည့် static analyzers နှင့် linters များမှ လွဲချော်သွားသောအမှားများကို ခွဲခြားသတ်မှတ်နိုင်စေပါသည်။

ClusterFuzzLite သည် ပရောဂျက်ပြန်လည်သုံးသပ်ခြင်းကို C၊ C++၊ Java (နှင့် အခြား JVM အခြေခံဘာသာစကားများ)၊ Go၊ Python၊ Rust နှင့် Swift တို့တွင် ပံ့ပိုးပေးသည်။ Fuzzing စမ်းသပ်ခြင်းကို LibFuzzer အင်ဂျင်ကို အသုံးပြု၍ လုပ်ဆောင်သည်။ မှတ်ဉာဏ်အမှားအယွင်းများနှင့် ကွဲလွဲချက်များကို ခွဲခြားသတ်မှတ်ရန် Address Sanitizer၊ MemorySanitizer နှင့် UBSan (UndefinedBehaviorSanitizer) ကိရိယာများကိုလည်း ခေါ်နိုင်သည်။

ClusterFuzzLite ၏အဓိကအင်္ဂါရပ်များ- ကုဒ်လက်ခံခြင်းမပြုမီ အမှားများကိုရှာဖွေရန် အဆိုပြုထားသောပြောင်းလဲမှုများကို အမြန်စစ်ဆေးပါ။ ပျက်စီးမှုအခြေအနေများဆိုင်ရာ အစီရင်ခံစာများကို ဒေါင်းလုဒ်ဆွဲခြင်း၊ ကုဒ်ပြောင်းလဲမှုများကိုစစ်ဆေးပြီးနောက်တွင်ပေါ်မလာသောပိုမိုနက်ရှိုင်းသောအမှားအယွင်းများကိုဖော်ထုတ်ရန်ပိုမိုအဆင့်မြင့်သော fuzzing စမ်းသပ်ခြင်းသို့ဆက်လက်လုပ်ဆောင်နိုင်မှု။ စမ်းသပ်နေစဉ်အတွင်း ကုဒ်အကျုံးဝင်မှုကို အကဲဖြတ်ရန် လွှမ်းခြုံအစီရင်ခံစာများ ဖန်တီးခြင်း၊ လိုအပ်သောလုပ်ဆောင်ချက်ကို ရွေးချယ်နိုင်စေမည့် မော်ဂျူလာဗိသုကာ။

fuzzing testing တွင် real data နှင့်နီးစပ်သော ကျပန်းပေါင်းစပ်ထည့်သွင်းမှုအမျိုးမျိုး၏ stream များပါဝင်သည် (ဥပမာ၊ ကျပန်းတဂ်ဘောင်များပါသည့် html စာမျက်နှာများ၊ မော်ကွန်းတိုက်များ သို့မဟုတ် ပုံမမှန်သောခေါင်းစဉ်များ စသည်ဖြင့်) နှင့် ရိုက်ကူးနိုင်သည် လုပ်ငန်းစဉ်တွင် ၎င်းတို့၏ လုပ်ဆောင်မှု ပျက်ကွက်မှုများ။ အစီအစဥ်တစ်ခု ပျက်စီးသွားပါက သို့မဟုတ် မျှော်လင့်ထားသည့် တုံ့ပြန်မှုနှင့် မကိုက်ညီပါက၊ ဤအပြုအမူသည် ချို့ယွင်းချက် သို့မဟုတ် အားနည်းချက်ကို ညွှန်ပြရန် အလွန်အလားအလာရှိသည်။

source: opennet.ru

မှတ်ချက် Add