ការវាយប្រហារបែប Man-in-the-Middle ជាអ្វី និងរបៀបដែលវាកំណត់គោលដៅ Pipelines
ប្រសិនបើអ្នកកំពុងសួរថាការវាយប្រហារបែប man-in-the-middle នៅក្នុង DevOps ជាអ្វី វាមិនមែនគ្រាន់តែជាបច្ចេកទេស sniffing បណ្តាញទូទៅនោះទេ។ វាជាការវាយប្រហារគោលដៅ។ វិធីដើម្បីសម្របសម្រួលរបស់អ្នក CI/CD pipelines តាមរយៈការស្ទាក់ចាប់ និងរៀបចំទិន្នន័យក្នុងពេលដឹកជញ្ជូន ការពឹងផ្អែក ស្គ្រីប ឬវត្ថុបុរាណ នៅពេលដែលការអ៊ិនគ្រីបខ្សោយ ឬអវត្តមាន។
សូមពិចារណាសេណារីយ៉ូក្នុងពិភពពិតមួយ៖ អ្នករត់ CI ទាញយកការពឹងផ្អែកពីឃ្លាំងភាគីទីបីដោយប្រើ HTTP។ ប្រសិនបើ TLS ត្រូវបានកំណត់រចនាសម្ព័ន្ធមិនត្រឹមត្រូវ ឬអាក្រក់ជាងនេះទៅទៀត អវត្តមាន អ្នកវាយប្រហារអាចស្ទាក់ចាប់សំណើនោះ ហើយចាក់បញ្ចូលកញ្ចប់ព្យាបាទដែលមើលទៅស្របច្បាប់។ ក្នុងការផ្លាស់ប្តូរយ៉ាងឆាប់រហ័ស pipelineវត្ថុបុរាណទាំងនេះអាចត្រូវបានសាងសង់ និងដាក់ពង្រាយមុនពេលដែលនរណាម្នាក់កត់សម្គាល់។ នោះគឺជាការវាយប្រហារបែបមនុស្សនៅកណ្តាលសៀវភៅសិក្សា ប៉ុន្តែជាមួយ CI/CD ផលវិបាក។
ការវាយប្រហារនេះមិនចាំបាច់បំបែកការអ៊ិនគ្រីបទេ វាកេងប្រវ័ញ្ចការកំណត់រចនាសម្ព័ន្ធខ្សោយ។ សូមពិចារណាអំពីការបង្កើតកុងតឺន័រដែលទាញយករូបភាពមូលដ្ឋាន ឬស្គ្រីបពីឃ្លាំងខាងក្នុងដោយមិនចាំបាច់ផ្ទៀងផ្ទាត់។ នោះគឺជាបង្អួចសម្រាប់ MITM ប្រសិនបើចរាចរណ៍ខាងក្នុងមិនត្រូវបានអ៊ិនគ្រីប ឬបែងចែកជាផ្នែក។ ប្រសិនបើអ្នកនៅតែមិនច្បាស់អំពីអ្វីដែលជាការវាយប្រហារដោយមនុស្សនៅកណ្តាល សូមគិតថាវាដូចជាតួអង្គមើលមិនឃើញដែលកំពុងកែប្រែអ្វីដែលអ្នកកំពុងធ្វើដោយស្ងៀមស្ងាត់។ pipeline ប្រើប្រាស់ដោយមិនបន្សល់ទុកស្លាកស្នាមជាក់ស្តែង។
ដែលជាកន្លែងដែល Pipeline ការសម្រាក៖ ចំណុចចូល MITM ពិតប្រាកដនៅក្នុង CI/CD
មានចំណុចខ្សោយជាច្រើនដែលការវាយប្រហារបែប man-in-the-middle អាចគ្រប់គ្រងលំហូរ DevOps៖
- កំពុងទាញយកកញ្ចប់តាមរយៈ HTTP៖ ជារឿងធម្មតានៅក្នុងការបង្កើតចាស់ៗ ឬការចុះឈ្មោះដែលបង្ហោះដោយខ្លួនឯង។ ប្រសិនបើអ្នកកំពុងទាញយក កញ្ចប់ Python, NPM ម៉ូឌុល ឬ រូបថតរបស់ Docker បើគ្មាន HTTPS ទេ អ្នកនឹងត្រូវបានលាតត្រដាង។
- ប្រភពដែលមិនបានបញ្ជាក់: Pipelineជារឿយៗប្រើប្រាស់ឧបករណ៍សហគមន៍ ឬឧបករណ៍ប្រភពបើកចំហដោយមិនផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ។ អ្នកវាយប្រហារ MITM អាចរំខានដល់ការទាញយកទាំងនេះ។
- ឃ្លាំងវត្ថុបុរាណដែលគ្មានការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ៖ ធុង S3, ម៉ាស៊ីនមេ Git LFS ឬឃ្លាំងផ្ទុកវត្ថុបុរាណខាងក្នុងដែលត្រូវបានចូលប្រើតាមរយៈ HTTP ធម្មតា គឺជាគោលដៅងាយស្រួល។
- សេវាកម្មផ្ទៃក្នុងដែលមិនមានសុវត្ថិភាព: ផ្ទៃក្នុងជាច្រើន CI/CD ឧបករណ៍ (កម្មវិធីដំណើរការ ភ្នាក់ងារ ស្គ្រីបដាក់ពង្រាយ) សន្មតថាសុវត្ថិភាពបរិវេណបណ្តាញ។ MITM អាចទាញយកប្រយោជន៍ពីការសន្មត់នោះ។
ឧទាហរណ៍ ៖
dependencies:
- wget http://internal.repo.local/package.tar.gz
⚠️ ឧទាហរណ៍មិនមានសុវត្ថិភាព៖ កុំប្រើក្នុងផលិតកម្ម
ប្រសិនបើចរាចរណ៍នេះត្រូវបានស្ទាក់ចាប់ អ្នកវាយប្រហារគ្រាន់តែត្រូវការបម្រើការបំប្លែង .tar.gz ជាមួយ payload មួយ។ នេះត្រូវបានពន្លា និងប្រតិបត្តិក្នុងដំណាក់កាលសាងសង់។ នេះជាមុនcisតើការវាយប្រហារបែប Man-in-the-Middle Attack ធ្វើអ្វីខ្លះនៅក្នុងសម័យទំនើប? pipelines: វាទាញយកអត្ថប្រយោជន៍ពីការសន្មត់ទំនុកចិត្ត។
ការបង្កើតមេរោគ៖ ការចាក់កូដអំឡុងពេលដំណើរការ និងពេលវេលាបង្កើត
ការវាយប្រហារបែប Man-in-the-middle លើសពីការស្ទាក់ចាប់ទៅទៀត; ពួកវានាំទៅដល់ការចាក់កូដ។ នៅពេលដែលការពឹងផ្អែក ឬវត្ថុបុរាណដែលមានគំនិតអាក្រក់ចូលទៅក្នុង... pipelineអ្នកវាយប្រហារគ្រប់គ្រងការសាងសង់។
- ការចាក់បញ្ចូលពេលវេលាសាងសង់: កម្មវិធីចងក្រង ឬស្គ្រីបបង្កើតដែលដំណើរការការពឹងផ្អែកដែលមិនបានផ្ទៀងផ្ទាត់អាចរួមបញ្ចូលកូដ trojanes។ សូមគិតអំពីបន្ទាត់បិទបាំងនៅក្នុង Makefile ដែលត្រូវបានប្រតិបត្តិជាមួយនឹងការអនុញ្ញាតខ្ពស់។
- ការចាក់បញ្ចូលពេលដំណើរការអថេរបរិស្ថាន ឬអាថ៌កំបាំងដែលបង្ហាញជាអត្ថបទធម្មតាអាចត្រូវបានចាប់យក និងប្រើប្រាស់ឡើងវិញ។ ប្រសិនបើអ្នករត់របស់អ្នកកត់ត្រា នាំចេញ AWS_SECRET_KEY=…អ្នកមានការលេចធ្លាយកំពុងរង់ចាំកើតឡើង។
- ការរៀបចំជំហានថាមវន្តCI ដែលបានកំណត់ដោយ YAML pipelineជារឿយៗ s ពឹងផ្អែកលើ curl/wget ដើម្បីទាញយកស្គ្រីបថាមវន្ត។ ប្រសិនបើស្គ្រីបទាំងនោះមិនត្រូវបានការពារ អ្នកវាយប្រហារ MITM អាចជំនួសពួកវាបានភ្លាមៗ។
curl http://setup.ci/init.sh | bash # Dangerous without TLS and verification
⚠️ ឧទាហរណ៍មិនមានសុវត្ថិភាព៖ កុំប្រើក្នុងផលិតកម្ម
ការដឹងពីអ្វីដែលជាការវាយប្រហារបែប man-in-the-middle ធ្វើឱ្យវាកាន់តែងាយស្រួលក្នុងការយល់ពីរបៀបដែលការចាក់បញ្ចូលទាំងនេះកើតឡើង៖ អ្នកវាយប្រហារក្លាយជាផ្នែកមួយនៃដំណើរការចែកចាយ ដោយចាក់បញ្ចូលការណែនាំដែលមានគំនិតអាក្រក់ដោយមិនចាំបាច់ចូលប្រើកូដប្រភពរបស់អ្នកដោយផ្ទាល់។
ការធានា DevOps Pipelineប្រឆាំងនឹងហានិភ័យនៃការវាយប្រហារដោយមនុស្សនៅកណ្តាល
អ្នកមិនអាចលុបបំបាត់ការគំរាមកំហែងវាយប្រហារបែប man-in-the-middle បានទេ ប៉ុន្តែអ្នកអាចធ្វើ pipelineពិបាកសម្របសម្រួលជាងច្រើន។
ជំហានដែលអាចអនុវត្តបាន៖
- អនុវត្ត TLS ជានិច្ច៖ រាល់ artifact, dependency និង script ត្រូវតែទាញយកតាមរយៈ HTTPS។
- ផ្ទៀងផ្ទាត់ checksum/hashes៖ ប្រើ SHA256 ឬឯកសារសង្ខេបដែលខ្លាំងជាងនេះ ហើយផ្ទៀងផ្ទាត់មុនពេលប្រតិបត្តិ។
- ចុះហត្ថលេខា និងផ្ទៀងផ្ទាត់វត្ថុបុរាណ៖ សូមប្រើប្រាស់ Sigstore ឬ in-toto ដើម្បីធានាបាននូវប្រភពដើម។
- អ្នករត់ CI សុវត្ថិភាពញែកបរិស្ថានដាច់ដោយឡែក ជៀសវាងកម្មវិធីរត់ដែលបានចែករំលែក និងបិទការចូលប្រើសែលតាមដែលអាចធ្វើទៅបាន។
- ញែកអាថ៌កំបាំងបញ្ចូលអាថ៌កំបាំងតែក្នុងជំហានដែលត្រូវការប៉ុណ្ណោះ។ កុំបោះពុម្ពវា ឬរក្សាទុកវាក្នុងកំណត់ហេតុឡើយ។
ជំហាន៖
- name: Fetch
run: |
curl -fsSL https://secure-repo.com/tool.sh -o tool.sh
echo " tool.sh" | sha256sum -c -
✅ ផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវនៃស្គ្រីបមុនពេលអនុវត្ត
ទាំងនេះគឺជាប្រភេទនៃវិធានការពង្រឹងដែលធ្វើឱ្យអ្វីដែលជាការវាយប្រហារដោយមនុស្សនៅកណ្តាលក្លាយជាសំណួរទ្រឹស្តី មិនមែនជាឧប្បត្តិហេតុផលិតកម្មនោះទេ។
ហេតុអ្វីបានជារឿងនេះសំខាន់៖ ផលប៉ះពាល់ខ្សែសង្វាក់ផ្គត់ផ្គង់ និងការពង្រីកហានិភ័យ
ការវាយប្រហារដោយបុរសនៅកណ្តាលក្នុង CI/CD pipeline មិនមែនគ្រាន់តែជាបញ្ហាក្នុងស្រុកទេ វាបំផ្លាញទាំងអ្នក ខ្សែសង្វាក់ផ្គត់ផ្គង់កម្មវិធី. អ្នកប្រើប្រាស់សំណង់របស់អ្នកទាំងអស់សុទ្ធតែប្រឈមនឹងហានិភ័យ។
នៅពេលដែល malicious artifact ចូលទៅក្នុង build វាត្រូវបានចែកចាយនៅខាងក្រោម៖
- កុងតឺន័រដែលរងការគំរាមកំហែងនឹងចូលទៅក្នុងផលិតកម្ម។
- បណ្ណាល័យដែលមានជាតិពុលត្រូវបានបោះពុម្ពផ្សាយនៅក្នុងបញ្ជីឈ្មោះសាធារណៈ។
- អតិថិជនដំឡើងកម្មវិធីដែលមានទ្វារខាងក្រោយ។
ការពង្រីកបែបនេះគឺជាមូលហេតុដែលការវាយប្រហារខ្សែសង្វាក់ផ្គត់ផ្គង់បង្កគ្រោះថ្នាក់ខ្លាំង។ MITM ជារឿយៗវាជាជំហានដំបូង មិនមែនជាគោលដៅចុងក្រោយទេ។ ប្រសិនបើអ្នកធ្លាប់សួរថាការវាយប្រហារដោយមនុស្សនៅកណ្តាល (man-in-the-middle attack) ជាអ្វី ឥឡូវនេះអ្នកដឹងហើយ៖ វាជាចំណុចចាប់ផ្តើមសម្រាប់ការសម្របសម្រួលខ្សែសង្វាក់ពេញលេញ។
សេចក្តីសន្និដ្ឋាន៖ ការផ្លាស់ប្តូរទៅខាងឆ្វេង Pipeline Security
ការវាយប្រហារបែប man-in-the-middle នៅក្នុង DevOps មិនមែននិយាយអំពីការស្តាប់ដោយអកម្មទេ វានិយាយអំពីការលួចចូលយ៉ាងសកម្មនៃលំហូរដែលមិនមានសុវត្ថិភាពនៅក្នុង... CI/CD. TLS ដែលត្រូវបានកំណត់រចនាសម្ព័ន្ធមិនត្រឹមត្រូវប្រភពដែលមិនបានផ្ទៀងផ្ទាត់ និងវត្ថុបុរាណដែលមិនបានផ្ទៀងផ្ទាត់ បើកទ្វារឱ្យឃើញ។ អ្នកអភិវឌ្ឍន៍ត្រូវការព្យាបាល pipelineដូចជាកូដផលិតកម្ម៖ បានសាកល្បង ផ្ទៀងផ្ទាត់ និងធានាសុវត្ថិភាព។ នេះមានន័យថា គ្មានការទាញយកដែលមិនបានផ្ទៀងផ្ទាត់ គ្មានប្រភពផ្អែកលើ HTTP និងគ្មានការប្រតិបត្តិថាមវន្តដោយគ្មានការផ្ទៀងផ្ទាត់។
ឧបករណ៍ដូចជា ស៊ីហ្គេនី ជួយក្រុមឱ្យពង្រឹងសមត្ថភាពរបស់ពួកគេ pipelineដោយការរកឃើញចំណុចខ្សោយ ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវនៃវត្ថុបុរាណ និង ចាប់យកការជ្រៀតជ្រែកនៃការពឹងផ្អែកមុនពេលវារីករាលដាល។ ការរំកិលទៅខាងឆ្វេងមិនមែនជាជម្រើសទេ វាជារបៀបដែលអ្នកនៅនាំមុខគេលើការគំរាមកំហែង AppSec ក្នុងពិភពពិត។ ការយល់ដឹងអំពីអ្វីដែលជាការវាយប្រហារដោយមនុស្សនៅកណ្តាលគឺមិនគ្រប់គ្រាន់ទេ។ អ្នកត្រូវរកឃើញវា ការពារវា និងបញ្ឈប់ការព្យាបាល pipeline ក្នុងនាមជាពលរដ្ឋលំដាប់ទីពីរនៅក្នុងគំរូសន្តិសុខរបស់អ្នក។







