ការរៀនពីរបៀបបង្កើតសាខានៅក្នុង GitHub គឺជាជំហានដំបូង។ ទោះជាយ៉ាងណាក៏ដោយ ការស្ទាត់ជំនាញពីរបៀបបញ្ចូលសាខានៅក្នុង GitHub ដោយសុវត្ថិភាពគឺមានសារៈសំខាន់ដូចគ្នាសម្រាប់សាខានីមួយៗ។ GitHub លំហូរការងារ។ ដូច្នេះ នៅក្នុងអត្ថបទនេះ យើងនឹងណែនាំអ្នកអំពីដំណើរការទាំងមូល ដោយចាប់ផ្តើមពី របៀបបង្កើតសាខានៅក្នុង GitHub ហើយបន្ទាប់មកបង្ហាញអ្នក របៀបបញ្ចូលសាខានៅក្នុង GitHub ដោយសុវត្ថិភាព។ យើងក៏នឹងពន្យល់ពីរបៀបលុបចោលការបញ្ចូលគ្នា ប្រសិនបើអ្នករកឃើញបញ្ហាណាមួយ និងចុងក្រោយ របៀបដែល Xygeni អាចជួយអ្នកក្នុងការចាប់បញ្ហានីមួយៗ មុនពេលវាចូលទៅក្នុងសាខាសំខាន់របស់អ្នក។
ចូរយើងដើរឆ្លងកាត់វាមួយជំហានម្តងៗ។
១. របៀបបង្កើតសាខានៅក្នុង GitHub តាមរបៀបត្រឹមត្រូវ
លំហូរការងារដែលមានសុវត្ថិភាពនីមួយៗចាប់ផ្តើមនៅពេលដែលអ្នកបង្កើតសាខានៅក្នុង GitHub។ វាអនុញ្ញាតឱ្យអ្នកអភិវឌ្ឍន៍ញែកមុខងារ ការជួសជុល ឬការពិសោធន៍ដោយមិនប៉ះពាល់ដល់កូដផលិតកម្ម។
ដើម្បីបង្កើតសាខានៅក្នុង GitHub៖
១. រុករកទៅកាន់ឃ្លាំងរបស់អ្នក
២. ចុចលើម៉ឺនុយជ្រើសរើសសាខា

៣. វាយបញ្ចូលឈ្មោះសាខាថ្មីរបស់អ្នក
4. ចុច បង្កើតសាខា

ពីទីនេះ សាខាថ្មីរបស់អ្នករួចរាល់សម្រាប់ប្រើប្រាស់ហើយ។ ឥឡូវនេះ អ្នកអាចដាក់កូដ សហការលើការផ្លាស់ប្តូរ និងបើក... pull requestទោះបីជានេះជាសកម្មភាព GitHub ជាមូលដ្ឋានក៏ដោយ វាកំណត់ដំណាក់កាលសម្រាប់ការអភិវឌ្ឍដែលមានសុវត្ថិភាព។
អ្វីដែលសំខាន់នោះ រាល់ពេលដែលអ្នកបង្កើតសាខានៅក្នុង GitHub វាគួរតែជាផ្នែកមួយនៃលំហូរការងារដែលអាចធ្វើម្តងទៀតបាន និងត្រូវបានការពារ។
2. ស្កេន Pull Requests ដោយស្វ័យប្រវត្តិមុនពេលអ្នកបញ្ចូលចូលគ្នា
នៅពេលអ្នកបង្កើតសាខានៅក្នុង GitHub ហើយរៀបចំសម្រាប់ការពិនិត្យឡើងវិញ ជំហានបន្ទាប់គឺការយល់ដឹងពីរបៀបបញ្ចូលសាខានៅក្នុង GitHub ដោយសុវត្ថិភាព។ ការជំរុញ GitHub សាខានីមួយៗគួរតែបង្កឱ្យមានការត្រួតពិនិត្យដោយស្វ័យប្រវត្តិ។ ប៉ុន្តែមុនពេលបញ្ចូល វាមានសារៈសំខាន់ណាស់ក្នុងការ ផ្ទៀងផ្ទាត់ ថា កូដនេះមិនបង្ហាញពីចំណុចខ្សោយទេ។ តែមួយមិនមានសុវត្ថិភាព commit អាចបង្ហាញកម្មវិធីរបស់អ្នក leak secretឬបំបែកហេដ្ឋារចនាសម្ព័ន្ធសំខាន់ៗ។
ការបញ្ចូលកូដទៅក្នុងសាខាសំខាន់របស់អ្នកគឺជាប្រតិបត្តិការដែលមានផលប៉ះពាល់ខ្ពស់។ បើគ្មានការត្រួតពិនិត្យត្រឹមត្រូវទេ វាអាចនាំឱ្យមានផលវិបាកធ្ងន់ធ្ងរដូចជា៖
- ភាពងាយរងគ្រោះ Zero-day ធ្លាក់ចូលទៅក្នុងផលិតកម្ម
- បានស្គាល់ CVEs ណែនាំតាមរយៈកញ្ចប់ប្រភពបើកចំហ
- អាថ៌កំបាំងដែលបានអ៊ិនកូដយ៉ាងរឹងមាំ ត្រូវបានរុញទៅឃ្លាំងសម្ងាត់
- ការកំណត់រចនាសម្ព័ន្ធមិនត្រឹមត្រូវ ដែលធ្វើឱ្យប្រព័ន្ធការពាររបស់អ្នកចុះខ្សោយ
- កូដព្យាបាទ ឬកូដដែលត្រូវបានក្លែងបន្លំ ចូលតាមរយៈការពឹងផ្អែក
នេះជាកន្លែងដែល Xygeni ធ្វើឱ្យមានភាពខុសគ្នាពិតប្រាកដ
ដោយប្រើ សកម្មភាព GitHub, អ្នកអាចបង្កក ការស្កេន Xygeni ដោយស្វ័យប្រវត្តិ នៅពេលណាដែលអ្នកអភិវឌ្ឍន៍បើក pull request ទៅក្នុងសាខាដែលត្រូវបានការពារ។ សាខាដែលត្រូវបានការពារនៅក្នុង GitHub គឺជាសាខាដែលតម្រូវឱ្យមានការត្រួតពិនិត្យ ឬការអនុម័តជាក់លាក់ មុនពេលការផ្លាស់ប្តូរត្រូវបានអនុញ្ញាតឱ្យបញ្ចូលគ្នា។
Xygeni វិភាគ ការអនុវត្តចុងក្រោយបំផុតនៃ pull request លំហូរការងារ ដើម្បីផ្ទៀងផ្ទាត់ឥរិយាបថសុវត្ថិភាពនៃការផ្លាស់ប្តូរដែលបានស្នើឡើង។ នេះរួមបញ្ចូលទាំងការត្រួតពិនិត្យ បញ្ហានៅក្នុងកូដ ភាពអាស្រ័យ អាថ៌កំបាំង និង CI/CD ការកំណត់រចនាសម្ព័ន្ធសាខាពេញលេញមិនត្រូវបានស្កេនឡើងវិញទេ ប៉ុន្តែលទ្ធផលលំហូរការងារថ្មីបំផុតត្រូវបានប្រើដើម្បីអនុវត្តគោលការណ៍ និងរារាំងការបញ្ចូលគ្នាដែលមិនមានសុវត្ថិភាព។
ការស្កេនទាំងនេះផ្ទៀងផ្ទាត់ថាកូដមានសុវត្ថិភាព និងរួចរាល់សម្រាប់ការផលិត។ ពួកវារកឃើញ៖
- ចំណុចខ្សោយនៃកូដ (SAST)
- កញ្ចប់ប្រភពបើកចំហដែលងាយរងគ្រោះ (SCA)
- អាថ៌កំបាំងដែលបានអ៊ិនកូដយ៉ាងរឹងមាំ
- IaC ការកំណត់រចនាសម្ព័ន្ធខុស
- មេរោគដែលអាចកើតមាន
រួមបញ្ចូល។ ការត្រួតពិនិត្យទាំងនេះធានាបាននូវភាពរហ័សរហួន រាល់ពេលដែលអ្នកបង្កើតសាខានៅក្នុង GitHub ហើយរៀបចំដើម្បីបញ្ចូលគ្នា អ្នកធ្វើវាជាមួយ ភាពមើលឃើញ និងការគ្រប់គ្រងពេញលេញ.
នេះជាការរៀបចំដ៏សាមញ្ញមួយ៖
on:
pull_request:
branches: [ main ]
jobs:
xygeni-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Xygeni Scanner
uses: xygeni/xygeni-action@3.2.0
with:
token: ${{ secrets.XYGENI_TOKEN }}
៣. ប្លុកមិនមានសុវត្ថិភាពបញ្ចូលគ្នាជាមួយ Guardrails
Guardrailsត្រូវប្រាកដថានៅពេលអ្នកបង្កើតសាខានៅក្នុង GitHub ឬព្យាយាមពីរបៀបបញ្ចូលសាខានៅក្នុង GitHub មានតែការផ្លាស់ប្តូរដែលមានសុវត្ថិភាពប៉ុណ្ណោះដែលទៅដល់សាខាមេរបស់អ្នក ការដំឡើង GitHub។ Xygeni ផ្តល់ឱ្យអ្នក ការគ្រប់គ្រងពេញលេញលើអ្វីដែលត្រូវបានបញ្ចូលគ្នាអ្នកអាចកំណត់និយមន័យជាមុនcisច្បាប់អេឡិចត្រូនិកដែលត្រូវបានរចនាឡើងសម្រាប់គោលការណ៍សុវត្ថិភាព និងការអត់ឱនហានិភ័យរបស់អ្នក។ ឧទាហរណ៍៖
- រារាំងប្រសិនបើជាអាថ៌កំបាំងសំខាន់ ត្រូវបានរកឃើញ (ឧទាហរណ៍ កូនសោ AWS ថូខឹន)
- បរាជ័យក្នុងការសាងសង់ ប្រសិនបើមួយ ហានិភ័យខ្ពស់ថ្មី កញ្ចប់ប្រភពបើកចំហត្រូវបានណែនាំ
- បដិសេធ pull requests ថា កែប្រែផ្លូវរសើប ដូច
.github/workflows/,infrastructure/ឬsecrets.env - ការពារការបញ្ចូលគ្នា ប្រសិនបើមួយ ការបន្ទាបកម្រិតណែនាំឡើងវិញ ស្គាល់ ងាយរងគ្រោះ
- ប្លុក CI/CD ការផ្លាស់ប្តូរការកំណត់រចនាសម្ព័ន្ធ លុះត្រាតែមានស្លាកសញ្ញាត្រឹមត្រូវ
- បញ្ឈប់ការរួមបញ្ចូលគ្នាប្រសិនបើ SAST រកឃើញខ្ពស់ ឬ បញ្ហាសំខាន់ៗ
- អនុវត្តឲ្យតឹងរ៉ឹងជាងនេះ Guardrails នៅលើសាខាផលិតកម្ម ខណៈពេលដែលរក្សាភាពបត់បែនក្នុងការអភិវឌ្ឍ
ច្បាប់ទាំងនេះដើរតួជាអ្នកយាមទ្វារដោយស្វ័យប្រវត្តិ។ ពួកវាជួយក្រុមរបស់អ្នកបញ្ចូលតែអ្វីដែលមានសុវត្ថិភាព គ្មានការភ្ញាក់ផ្អើល គ្មានការពិនិត្យដោយដៃ គ្មានការពន្លត់អគ្គីភ័យនៅនាទីចុងក្រោយ។
ឧទាហរណ៍នៃច្បាប់របាំង៖
guardrail block_critical_secrets
on secrets
when severity = critical
then @fail()
មតិប្រតិកម្មដែលមើលឃើញនៅក្នុង Dashboard

ដើម្បីធានាបាននូវភាពមើលឃើញពេញលេញ Xygeni បង្ហាញលទ្ធផលនៃការវាយតម្លៃចុងក្រោយបំផុតនៃស្ថានភាព Guardrail ។
- ជាដំបូងបង្អស់រូបតំណាងពណ៌បៃតងមានន័យថាគោលការណ៍ទាំងអស់ត្រូវបានអនុម័ត។
- ផ្ទុយមកវិញរូបតំណាងពណ៌ក្រហមបង្ហាញថាលក្ខខណ្ឌ Guardrail មួយ ឬច្រើនត្រូវបានរំលោភបំពាន។
ជាលទ្ធផល ទាំងអ្នកអភិវឌ្ឍន៍ និងក្រុមសន្តិសុខ ទទួលបានការយល់ដឹងភ្លាមៗអំពីមូលហេតុដែលការបញ្ចូលគ្នាត្រូវបានរារាំង ដោយមិនចាំបាច់ជីកកកាយចូលទៅក្នុងកំណត់ហេតុ CI ឡើយ។
ឧទាហរណ៍ពិតពី Dashboard:
ឧទាហរណ៍ ឧបមាថាឃ្លាំងផ្ទុកមិនមានសាខាដែលត្រូវបានការពារទេ ដែលជាការកំណត់រចនាសម្ព័ន្ធមិនត្រឹមត្រូវទូទៅដែលអនុញ្ញាតឱ្យអ្នកអភិវឌ្ឍន៍ជំរុញ commitដោយគ្មានការផ្ទៀងផ្ទាត់។ នោះជាហានិភ័យធ្ងន់ធ្ងរមួយ។
Xygeni រកឃើញ និងដាក់ទង់ជាតិដោយស្វ័យប្រវត្តិថាជា បានចុះហត្ថលេខាcommits បញ្ហាក្រោម CI/CD ប្រភេទ។ នេះ។ dashboard គំនួសពណ៌ៈ
- ភាពធ្ងន់ធ្ងរ៖ ខ្ពស់
- ប្រភេទ: បានចុះហត្ថលេខាលើ Commits
- ការពន្យល់: ឃ្លាំងមិនមានសាខាដែលត្រូវបានការពារទេ
- ស្ថានភាព: Open
ដូច្នេះ ជាមួយនឹងមតិប្រតិកម្មសម្បូរទៅដោយបរិបទនេះ ក្រុមនានាអាចកំណត់អត្តសញ្ញាណហានិភ័យបានយ៉ាងឆាប់រហ័ស យល់ពីផលប៉ះពាល់របស់វា និងចាត់វិធានការកែតម្រូវ ទាំងអស់នេះមកពី Xygeni UI។
ប្ដូរតាមបំណង ឥរិយាបថអនុវត្ត
អ្នកតែងតែគ្រប់គ្រង។ ជ្រើសរើសថាតើវាតឹងរ៉ឹងប៉ុណ្ណា Guardrails គួរតែ:
--fail-on=critical: ការបញ្ចូលគ្នានៃប្លុកកើតឡើងតែលើការរកឃើញធ្ងន់ធ្ងរប៉ុណ្ណោះ--never-fail: Run Guardrails ក្នុងរបៀបដំណើរការស្ងួត ដើម្បីសាកល្បងគោលការណ៍មុនពេលអនុវត្ត
ដូច្នេះនៅពេលក្រោយដែលអ្នកបង្កើតសាខានៅក្នុង GitHub របស់អ្នក Guardrails មានរួចហើយ ការពាររបស់អ្នក pipeline និងអនុវត្តគោលនយោបាយរបស់អ្នកដោយស្វ័យប្រវត្តិ។
តើខ្ញុំដឹងដោយរបៀបណាថាកម្មវិធី GitHub មានសុវត្ថិភាព?
ស្វែងយល់ពីរបៀបវាយតម្លៃកម្មវិធី GitHub មុនពេលដំឡើងវា។
៤. លុបចោលការបញ្ចូលគ្នានៅក្នុង GitHub ដោយស្វ័យប្រវត្តិនៅពេលដែលរកឃើញហានិភ័យ
ប្រសិនបើហានិភ័យត្រូវបានរកឃើញ ការបញ្ចូលគ្នានឹងត្រូវបានលុបចោល។ ការការពារនេះការពារគម្រោង GitHub គ្រប់សាខា និងអនុវត្តការអនុវត្តល្អបំផុតអំពីរបៀបបញ្ចូលសាខានៅក្នុង GitHub។
Xygeni រួមបញ្ចូលដោយផ្ទាល់ទៅក្នុង UI របស់ GitHub។ នៅពេលដែលរកឃើញហានិភ័យ៖
- GitHub បង្ហាញថាការត្រួតពិនិត្យបរាជ័យ
- ការការពាររបស់ GitHub រារាំងការរួមបញ្ចូលគ្នា
- ជួរបញ្ចូលគ្នារំលងកូដដែលមិនមានសុវត្ថិភាព
មិនថាវាជាការសម្ងាត់ CVE ឬគ្រោះថ្នាក់ទេ CI/CD លំនាំ លទ្ធផលគឺដូចគ្នា៖ ការរួមបញ្ចូលត្រូវបានលុបចោលនៅក្នុង GitHub និងត្រូវបានសម្គាល់សម្រាប់ការពិនិត្យមើល។
អ្នកក៏អាចមើលលទ្ធផលលម្អិតនៅក្នុង Xygeni ផងដែរ៖
- ស្ថានភាពសុវត្ថិភាពនៃសាខានីមួយៗ
- ហេតុអ្វីបានជាការបញ្ចូលគ្នាត្រូវបានរារាំង
- ប្រវត្តិស្កេនពេញលេញ
- ស្ថានភាពរបាំងការពារត្រូវបានបង្ហាញតាមរយៈរូបតំណាងពណ៌បៃតង (ជាប់) ឬពណ៌ក្រហម (ធ្លាក់) នៅក្នុងទំព័រគម្រោង
មតិប្រតិកម្មដែលមើលឃើញនេះធ្វើឱ្យវាងាយស្រួលសម្រាប់អ្នកអភិវឌ្ឍន៍ និងក្រុមសន្តិសុខក្នុងការចាត់វិធានការដោយទំនុកចិត្ត។ ហើយនៅពេលដែលអ្នកត្រូវការបរិបទកាន់តែស៊ីជម្រៅ បញ្ហានីមួយៗភ្ជាប់ទៅឯកសារជាមួយនឹងភាពធ្ងន់ធ្ងរ ស្លាក ទីតាំង និងការណែនាំអំពីការកាត់បន្ថយផលប៉ះពាល់។
Tldr Merge មានតែអ្វីដែលមានសុវត្ថិភាពប៉ុណ្ណោះ
សរុបមក នេះជារបៀបបញ្ចូលគ្នាដោយសុវត្ថិភាពបន្ទាប់ពីអ្នកបង្កើតសាខានៅក្នុង GitHub៖
- បង្កើតសាខាមួយនៅក្នុង GitHub តាមរយៈ UI
- បើកដំណើរការស្កេនដោយស្វ័យប្រវត្តិជាមួយរាល់ pull request ជាមួយ Xygeni
- រារាំងការបញ្ចូលគ្នាដែលមិនមានសុវត្ថិភាពដោយប្រើ Guardrails
- ប្រើប្រាស់គោលការណ៍សវនកម្មផ្នែកម៉ាស៊ីនមេសម្រាប់ការគ្រប់គ្រងកាន់តែស៊ីជម្រៅ
- បោះបង់ការបញ្ចូលគ្នានៅក្នុង GitHub នៅពេលដែលមានអ្វីមួយបរាជ័យ
- មើលឃើញលទ្ធផលទាំងអស់នៅក្នុង Xygeni's dashboard
សម្រាប់ការអនុវត្តល្អបំផុតបន្ថែមលើការការពារឃ្លាំង សូមអានរបស់យើង សំណួរដែលសួរញឹកញាប់អំពីសុវត្ថិភាព GitHub៖ អ្វីដែលអ្នកអភិវឌ្ឍន៍គ្រប់រូបគួរដឹង.
ទោះបីជាការរួមបញ្ចូលគ្នាគឺជាប្រតិបត្តិការមូលដ្ឋានក៏ដោយ ការធ្វើវាដោយសុវត្ថិភាពទាមទារឱ្យមានភាពមើលឃើញ និងស្វ័យប្រវត្តិកម្មពិតប្រាកដ។ ជាមួយ Xygeni អ្នកមិនគ្រាន់តែបញ្ចូលគ្នានូវកូដទេ អ្នកថែមទាំងបញ្ចូលគ្នានូវទំនុកចិត្តទៀតផង។
ការពារសាខា GitHub នីមួយៗដោយទំនុកចិត្ត
បញ្ហាមួយដែលមើលរំលងនៅក្នុង pull request អាចធ្វើឱ្យខូចដល់សាខាសំខាន់របស់អ្នក។ ម៉ាស៊ីនស្កេនបែបប្រពៃណីច្រើនតែដំណើរការយឺតពេក ខកខានហានិភ័យសំខាន់ៗ ឬបរាជ័យក្នុងការអនុវត្តគោលការណ៍ដែលមានអត្ថន័យ។
នោះហើយជាមូលហេតុដែលការការពារសាខា GitHub របស់អ្នកត្រូវការច្រើនជាងការស្កេន។
Xygeni ផ្តល់នូវការអនុវត្តជាក់ស្តែង។ ពេលណា pull request កំណត់គោលដៅសាខាដែលត្រូវបានការពារ Xygeni វិភាគការប្រតិបត្តិចុងក្រោយបំផុតរបស់អ្នក CI/CD លំហូរការងារ។ វាមិនស្កេនឡើងវិញនូវសាខាទាំងមូលទេ។ ផ្ទុយទៅវិញ វាវាយតម្លៃលទ្ធផលថ្មីៗបំផុត ដើម្បីពិនិត្យមើលបញ្ហាសុវត្ថិភាពនៅក្នុងកូដ ការពឹងផ្អែក អាថ៌កំបាំង និងការកំណត់រចនាសម្ព័ន្ធលំហូរការងារ។ អ្នកមិនត្រឹមតែត្រូវបានជូនដំណឹងប៉ុណ្ណោះទេ។ អ្នកត្រូវបានការពារ។
អ្វីដែលធ្វើឱ្យវាខុសគ្នា៖
- ការផ្ទៀងផ្ទាត់បរិបទពេញលេញ៖ Guardrails អនុវត្តគោលនយោបាយដោយប្រើប្រាស់បរិបទសម្បូរបែបដូចជា ភាពធ្ងន់ធ្ងរ ការកេងប្រវ័ញ្ច និងទិន្នន័យមេតាសាខា។
- ការរួមបញ្ចូល GitHub ដែលភ្ជាប់មកជាមួយ៖ អ្វីៗគ្រប់យ៉ាងចាប់ពីការស្កេនរហូតដល់ការអនុវត្តដំណើរការដើមនៅក្នុងលំហូរការងារ GitHub របស់អ្នក ដោយមិនចាំបាច់មានស្គ្រីបផ្ទាល់ខ្លួន ឬកូដស្អិតឡើយ។
- ការត្រួតពិនិត្យផ្នែកម៉ាស៊ីនបម្រើ៖ ផ្នែកខាងម៉ាស៊ីនមេ Guardrails ផ្ទៀងផ្ទាត់លទ្ធផលបន្ទាប់ពីផ្ទុកឡើង ដោយបន្ថែមស្រទាប់ទីពីរនៃការគ្រប់គ្រងនៅខាងក្រៅ pipeline.
ជំនួសឲ្យការពឹងផ្អែកលើការរៀបចំ CI របស់អ្នកដើម្បីចាប់យកអ្វីៗទាំងអស់ Xygeni អនុវត្តការរចនាដោយស្វ័យប្រវត្តិដែលផ្អែកលើគោលនយោបាយcisអ៊ីយ៉ុង មុនពេលអ្វីមួយទៅដល់សាខាសំខាន់របស់អ្នក។
ទោះបីជាការរួមបញ្ចូលគ្នាគឺជាប្រតិបត្តិការមូលដ្ឋានក៏ដោយ ការធ្វើវាដោយសុវត្ថិភាពតម្រូវឱ្យមានភាពមើលឃើញ និងស្វ័យប្រវត្តិកម្មពិតប្រាកដ។ ជាមួយ Xygeni អ្នកមិនត្រឹមតែការពារឃ្លាំងរបស់អ្នកប៉ុណ្ណោះទេ អ្នកការពារគ្រប់សាខា GitHub ដោយមានទំនុកចិត្ត។







