នៅពេលដែលមេរោគ File Infector វាយប្រហារមូលដ្ឋានកូដរបស់អ្នក
អ្នកអភិវឌ្ឍន៍ភាគច្រើនគិតថាមេរោគឆ្លងឯកសារជាការគំរាមកំហែងដែលមានកំណត់ចំពោះឯកសារដែលអាចប្រតិបត្តិបានបែបបុរាណ ដែលជាអ្វីមួយដែលប៉ះពាល់ដល់ ។exe or .dll ឯកសារ។ ប៉ុន្តែមេរោគឆ្លងទំនើបមិនឈប់នៅប្រព័ន្ធគោលពីរទេ។ ពួកវាមានសមត្ថភាពល្អឥតខ្ចោះក្នុងការបង្កប់កូដមេរោគទៅក្នុងឯកសារប្រភព ស្គ្រីប ឬសមាសធាតុដែលបានចែករំលែកនៅក្នុងឃ្លាំង។ មេរោគដែលឆ្លងឯកសារនៅក្នុងឃ្លាំងកូដមិនគ្រាន់តែរស់នៅលើម៉ាស៊ីនមួយទេ។ វារាលដាលដោយស្ងាត់ៗ៖
- ការឆ្លងមេរោគលើគម្រោងដែលបានក្លូន ឬដែលបានបំបែក។
- រីករាលដាលតាមរយៈ CI/CD pipelines.
- ការបំពុលវត្ថុបុរាណ និងការដាក់ពង្រាយនៅខាងក្រោម។
សេណារីយ៉ូឧទាហរណ៍: ក ស្គ្រីបព្យាបាទដែលបានបង្កប់នៅក្នុងឧបករណ៍ប្រើប្រាស់សាងសង់កែប្រែ .js or .py ឯកសារក្នុងអំឡុងពេលនីមួយៗ commitនៅពេលដែលមិត្តរួមក្រុមទាញយកឃ្លាំង ការឆ្លងមេរោគនឹងចម្លងឡើងវិញនៅក្នុងមូលដ្ឋាន។
នេះជារបៀបដែលមេរោគឆ្លងប្រែក្លាយប្រព័ន្ធគ្រប់គ្រងកំណែទៅជាកត្តាគុណនៃការឆ្លង ហើយហេតុអ្វីបានជាអ្នកអភិវឌ្ឍន៍ត្រូវតែចាត់ទុកឃ្លាំងទិន្នន័យដូចជាផ្នែកមួយនៃផ្ទៃវាយប្រហារ។
របៀបដែលមេរោគ File Infector ដំណើរការនៅក្នុងបរិយាកាសអភិវឌ្ឍន៍
នៅក្នុងបរិយាកាសអភិវឌ្ឍន៍ មេរោគឆ្លងឯកសារដំណើរការដូចជាប៉ារ៉ាស៊ីត៖ វាបង្កប់បំណែកតូចៗនៃកូដមេរោគទៅក្នុងឯកសារស្របច្បាប់ ហើយដំណើរការដោយស្ងៀមស្ងាត់។
យន្តការឆ្លងមេរោគទូទៅ
- ការរៀបចំស្គ្រីបបង្កើត៖ អ្នកវាយប្រហារបញ្ចូលបន្ទុកផ្ទុកមេរោគទៅក្នុង ធ្វើឱ្យ, សាងសង់។ gradleឬ ម៉ោងងង ស្គ្រីប។
- ក្រោយការដំឡើង Hooks: A ក្រោយការដំឡើង ស្គ្រីបដំណើរការដោយស្វ័យប្រវត្តិបន្ទាប់ពីដំឡើងរួច ដោយចាក់មេរោគចូលទៅក្នុងឯកសារសាងសង់។
- ការរុំប្រព័ន្ធគោលពីរ៖ ឧបករណ៍ប្រព័ន្ធគោលពីរស្របច្បាប់ (ឧទាហរណ៍ កម្មវិធីចងក្រង) ត្រូវបានជំនួស ឬកែប្រែដើម្បីប្រតិបត្តិកូដព្យាបាទ មុនពេលអនុវត្តមុខងារពិតរបស់វា។
- Commit-ការចាក់បញ្ចូលពេលវេលា៖ Git hooks ដូច pre-commit or រៀបចំcommit-សារ ត្រូវបានកែប្រែដើម្បីរាលដាលការឆ្លងមេរោគរាល់ពេលដែលអ្នកអភិវឌ្ឍន៍ commits.
ឧទាហរណ៍ (ហានិភ័យសាមញ្ញ)៖
⚠️ ឧទាហរណ៍មិនមានសុវត្ថិភាព សម្រាប់គោលបំណងអប់រំតែប៉ុណ្ណោះ។ កុំប្រើក្នុងផលិតកម្ម។
# ❌ Modified Git hook
echo "echo 'infecting...'; node inject.js" >> .git/hooks/pre-commit
នីមួយ commit ឥឡូវនេះ មានកូដមេរោគ ដោយពង្រីកវិសាលភាពនៃមេរោគឆ្លងទៅកាន់អ្នករួមចំណែកគ្រប់រូបដោយស្ងៀមស្ងាត់។
អ្វីដែលអាក្រក់ជាងនេះទៅទៀត នៅពេលដែលឯកសារដែលឆ្លងមេរោគត្រូវបាន commitតាមគំនិតរបស់ខ្ញុំ មេរោគនេះអាចបន្តកើតមាននៅទូទាំងសាខា ការបញ្ចូលគ្នា និងសូម្បីតែការបង្កើតដោយស្វ័យប្រវត្តិ លុះត្រាតែអ្នកមានការផ្ទៀងផ្ទាត់ភាពសុចរិត។
កន្លែងដែលពួកគេលាក់ខ្លួន៖ ភាពអាស្រ័យប្រភពបើកចំហ និងឃ្លាំងទិន្នន័យផ្ទៃក្នុង
ការកើនឡើងនៃ។ ការពឹងផ្អែកប្រភពបើកចំហ បានបង្កើតកន្លែងលាក់ខ្លួនដ៏ល្អឥតខ្ចោះសម្រាប់មេរោគដែលឆ្លងឯកសារ។ អ្នកវាយប្រហារលែងត្រូវការធ្វើឱ្យប៉ះពាល់ដល់បរិស្ថានរបស់អ្នកដោយផ្ទាល់ទៀតហើយ។ ពួកគេគ្រាន់តែត្រូវដាំកូដមេរោគនៅក្នុងភាពអាស្រ័យដែលគម្រោងរបស់អ្នកនាំចូល។
វ៉ិចទ័រឆ្លងទូទៅ
- npm ដែលឆ្លងមេរោគ ឬកញ្ចប់ PyPI៖ អ្នកវាយប្រហារចាក់បញ្ចូលទិន្នន័យដែលមានគំនិតអាក្រក់ទៅក្នុងបណ្ណាល័យដែលគួរឱ្យទុកចិត្ត។ នៅពេលដែលអ្នកអភិវឌ្ឍន៍ដំណើរការ ល្ងាចដំឡើងកូដដែលឆ្លងមេរោគដំណើរការ។
- បណ្ណាល័យដែលបានចែករំលែកផ្ទៃក្នុង៖ កញ្ចប់ផ្ទៃក្នុងដែលរងការគំរាមកំហែងឆ្លងដល់សេវាកម្មច្រើននៅផ្នែកខាងក្រោម។
- ភាពច្របូកច្របល់នៃការពឹងផ្អែក ការវាយប្រហារ៖ កញ្ចប់សាធារណៈដើរតួជាស្រមោលលើកញ្ចប់ឯកជនដែលមានឈ្មោះដូចគ្នា ដោយបញ្ជូនបន្ទុកមេរោគឆ្លងជំនួសវិញ។
ឧទាហរណ៍នៃខ្សែសង្វាក់ពឹងផ្អែកដែលសម្របសម្រួល៖
dependencies:
- name: utils-lib
source: https://internal.repo/utils-lib
If utils-lib ត្រូវបានជំនួសផ្នែកខាងលើដោយកំណែដែលឆ្លងមេរោគ គម្រោងនីមួយៗដែលទាញយកវាទទួលមរតកកូដមេរោគ។
នៅក្នុងការអភិវឌ្ឍសម័យទំនើប ការជឿទុកចិត្តគឺជាឋានានុក្រម។ នៅពេលដែលឫសគល់នៃការជឿទុកចិត្តនោះ គឺបណ្ណាល័យ ឬបញ្ជីឈ្មោះ ត្រូវបានសម្របសម្រួល ការឆ្លងមេរោគបានរីករាលដាលយ៉ាងស្ងៀមស្ងាត់នៅទូទាំងក្រុម និងអង្គការនានា។
ការរកឃើញការផ្លាស់ប្តូរគួរឱ្យសង្ស័យ និងគំរូនៃការឆ្លងមេរោគឯកសារ
ការរកឃើញមេរោគដែលឆ្លងឯកសារតាំងពីដំបូងគឺមានសារៈសំខាន់ណាស់។ ការគំរាមកំហែងទាំងនេះលាក់ខ្លួននៅកន្លែងដែលអាចមើលឃើញយ៉ាងច្បាស់ ជារឿយៗលាយឡំទៅនឹងសកម្មភាពត្រួតពិនិត្យកំណែធម្មតា។ អ្នកអភិវឌ្ឍន៍អាចរកឃើញពួកវាដោយប្រើការត្រួតពិនិត្យភាពសុចរិតដោយស្វ័យប្រវត្តិ និងការស្កេនផ្អែកលើភាពខុសគ្នា។
បច្ចេកទេសរកឃើញគន្លឹះ
- ការផ្ទៀងផ្ទាត់ Checksum៖ បង្កើត និងប្រៀបធៀប checksums SHA-256 នៃឯកសារប្រភព ដើម្បីរកឃើញការផ្លាស់ប្តូរដែលគ្មានការអនុញ្ញាត។
- ការស្កេនផ្អែកលើ Diff៖ ធ្វើឱ្យឃ្លាំង diffs ស្វ័យប្រវត្តិកម្មដើម្បីសម្គាល់ការបន្ថែមដែលមិនបានរំពឹងទុក ឬកូដដែលលាក់បាំង។
- ការត្រួតពិនិត្យសុចរិតភាពឯកសារ (FIM): តាមដានការផ្លាស់ប្តូរឯកសារជាបន្តបន្ទាប់នៅក្នុងឃ្លាំងក្នុងស្រុក និងឃ្លាំងដែលបានចែករំលែក។
- ការស្កេនមេរោគ Hooks: បង្កឲ្យមានកម្មវិធីកំចាត់មេរោគ ឬឧបករណ៍វិភាគឋិតិវន្តនៅលើឧបករណ៍នីមួយៗ commit.
ឧទាហរណ៍ pipeline បំណែកខ្លីៗ៖
security-check:
script:
- xygeni scan --detect-malware --verify-integrity
- xygeni monitor --repo-diffs
បញ្ជីត្រួតពិនិត្យខ្នាតតូចសម្រាប់អ្នកអភិវឌ្ឍន៍
- ផ្ទៀងផ្ទាត់ហាសឯកសារមុនពេលបញ្ចូលឯកសារធំៗចូលគ្នា commits.
- ត្រួតពិនិត្យការផ្លាស់ប្តូរប្រព័ន្ធគោលពីរ ឬស្គ្រីបដែលមិននឹកស្មានដល់នៅក្នុងថតប្រភព។
- ពិនិត្យឡើងវិញ ក្រោយការដំឡើង, រៀបចំឬ ស្ថាបនា hooks មុនពេលរត់។
- អនុញ្ញាត commit ចុះហត្ថលេខាសម្រាប់ការតាមដាន។
- កុំបិទកម្មវិធីកំចាត់មេរោគ ឬ FIM នៅលើម៉ាស៊ីនអភិវឌ្ឍន៍។
ជំហានទាំងនេះជួយចាប់កូដមេរោគដែលលាក់ទុកមុនពេលវាចូលទៅក្នុងឃ្លាំងរបស់អ្នក ជាកន្លែងដែលវាកាន់តែពិបាកក្នុងការដកចេញ។
ការការពារ CI/CD Pipeline ប្រឆាំងនឹងមេរោគឆ្លងឯកសារ
ចំពោះ CI/CD pipeline អាចទប់ស្កាត់ការឆ្លង ឬពង្រីកវា។ នៅពេលដែលឯកសារដែលឆ្លងមេរោគទៅដល់ម៉ាស៊ីនមេដំណើរការដែលបានចែករំលែក ឬម៉ាស៊ីនមេបង្កើត ការបង្កើតជាបន្តបន្ទាប់នីមួយៗនឹងក្លាយទៅជាឆ្លង។
សេណារីយ៉ូដែលមានហានិភ័យខ្ពស់។
- ភ្នាក់ងារ CI ដែលបានចែករំលែក៖ អ្នករត់មេរោគម្នាក់អាចចែកចាយកូដមេរោគទៅកាន់ build ទាំងអស់។
- វត្ថុបុរាណដែលមិនទាន់ចុះហត្ថលេខា៖ វត្ថុបុរាណដែលរងការគំរាមកំហែងអាចត្រូវបានដាក់ពង្រាយឡើងវិញម្តងហើយម្តងទៀតដោយគ្មានការរកឃើញ។
- គ្មានការដាក់ឱ្យនៅដាច់ដោយឡែក៖ អ្នករត់ដែលចែករំលែកថាស ឬឃ្លាំងសម្ងាត់អាចរីករាលដាលការឆ្លងមេរោគរវាងការងារ។
រឹង CI/CD ប្រឆាំងនឹងការឆ្លងមេរោគ
- ប្រើកម្មវិធីរត់ដែលនៅដាច់ដោយឡែក និងបណ្ដោះអាសន្ន ដែលកំណត់ឡើងវិញបន្ទាប់ពីការបង្កើតនីមួយៗ។
- ស្កេនវត្ថុបុរាណ និងភាពអាស្រ័យអំឡុងពេលសាងសង់ និងមុនពេលដាក់ពង្រាយ។
- អនុវត្តការបង្កើតដែលបានចុះហត្ថលេខាជាមួយនឹងការផ្ទៀងផ្ទាត់គ្រីបតូក្រាហ្វិច។
- ដាក់កម្រិតការចូលប្រើបណ្តាញនៅក្នុងបរិយាកាសបង្កើត ដើម្បីការពារការហៅត្រឡប់ពីខាងក្រៅ។
ឧទាហរណ៍នៃការកំណត់រចនាសម្ព័ន្ធខូគីដែលមានសុវត្ថិភាពនៅក្នុង pipelines, ការទប់ស្កាត់ការលួចសញ្ញាសម្ងាត់តាមរយៈកម្មវិធីរុករកតាមអ៊ីនធឺណិត ឬការលាតត្រដាងកំណត់ហេតុ៖
# ✅ Secure cookie setup
Set-Cookie: sessionid=abc123; HttpOnly; Secure; SameSite=Strict
បើគ្មានការការពារទាំងនេះទេ សូម្បីតែវីរុសឆ្លងតូចមួយក៏អាចវិវត្តទៅជាការរំលោភលើខ្សែសង្វាក់ផ្គត់ផ្គង់ទ្រង់ទ្រាយធំតាមរយៈលំហូរការងារចែកចាយជាបន្តបន្ទាប់។
ការអនុវត្តការគ្រប់គ្រងបង្ការ និងការផ្ទៀងផ្ទាត់ជាបន្តបន្ទាប់
ការបង្ការចាប់ផ្តើមជាមួយនឹងការផ្ទៀងផ្ទាត់ជាបន្តបន្ទាប់ និងប្រភពដែលគួរឱ្យទុកចិត្ត។ ក្រុម DevSecOps គួរតែ build security ពិនិត្យមើលវដ្តជីវិតទាំងមូល ចាប់ពីការក្លូន repo រហូតដល់ការដាក់ពង្រាយការចេញផ្សាយ។
ការគ្រប់គ្រងបង្ការសំខាន់ៗ
- បានចុះហត្ថលេខាលើ Commits: អនុវត្ត commit ចុះហត្ថលេខាដើម្បីផ្ទៀងផ្ទាត់អត្តសញ្ញាណអ្នកអភិវឌ្ឍន៍។
- SBOM ជំនាន់៖ ថែរក្សាបញ្ជីសម្ភារៈកម្មវិធី ដើម្បីតាមដានរាល់ភាពអាស្រ័យ និងកំណែនីមួយៗ។
- ការស្កេនមេរោគដោយស្វ័យប្រវត្តិ: បញ្ចូលឧបករណ៍ស្កេនទៅក្នុង pipelines និង pre-commit hooks.
- ការផ្ទៀងផ្ទាត់ភាពអាស្រ័យ៖ ផ្ទៀងផ្ទាត់កញ្ចប់ខាងក្រៅ និងខាងក្នុងទាំងអស់ទល់នឹងបញ្ជីឈ្មោះដែលគេស្គាល់។
- តាមដានបន្ត: រកឃើញភាពមិនប្រក្រតីនៃសុចរិតភាពឯកសារ ឬ commit ឥរិយាបថតាមពេលវេលា។
ឧទាហរណ៍នៃការរួមបញ្ចូល៖
validate-integrity:
script:
- xygeni enforce --policy repo-integrity.yaml
- xygeni validate --sbom --dependencies
នេះធានាថាកូដមេរោគ ឬឯកសារដែលត្រូវបានក្លែងបន្លំត្រូវបានរកឃើញមុនពេលវាអាចចូលទៅក្នុងផលិតកម្ម។
សុវត្ថិភាពមិនមែនជាច្រកទ្វារម្តងទេ; វាគឺជារង្វិលជុំសុពលភាពជាបន្តបន្ទាប់ដែលរក្សាមូលដ្ឋានកូដរបស់អ្នកឱ្យស្អាត និង... pipeline ធន់។
រក្សាមេរោគ Malware ឲ្យនៅឆ្ងាយពី Pipeline, ជៀសវាងមេរោគ File Infector
មេរោគឆ្លងឯកសារមិនត្រឹមតែធ្វើឲ្យខូចឯកសារតែមួយប៉ុណ្ណោះទេ វាធ្វើឲ្យខូចទំនុកចិត្តទូទាំងខ្សែសង្វាក់អភិវឌ្ឍន៍ទាំងមូលរបស់អ្នក។ នៅពេលដែលកូដមេរោគចូលទៅក្នុងឃ្លាំងរបស់អ្នក វារីករាលដាលតាមសាខា ក្លូន និងបង្កើតឡើងយ៉ាងឆាប់រហ័ស។
អ្នកអភិវឌ្ឍន៍អាចកាត់បន្ថយហានិភ័យដោយ៖
- ស្កេនឃ្លាំង និងភាពអាស្រ័យជាប្រចាំ
- ការអនុវត្ត commit ការចុះហត្ថលេខា និងការផ្ទៀងផ្ទាត់វត្ថុបុរាណ
- ដាច់ឆ្ងាយ CI/CD អ្នករត់ និងតាមដានភាពសុចរិតនៃឯកសារជាបន្តបន្ទាប់
ឧបករណ៍ដូចជា ស៊ីហ្គេនី ជួយក្រុម DevSecOps រកឃើញមេរោគដែលឆ្លងឯកសារ ត្រួតពិនិត្យភាពសុចរិតនៃកូដ និងរារាំងកូដមេរោគមុនពេលវាជ្រៀតចូលទៅក្នុងផលិតកម្ម។ pipelines. នៅចុងបញ្ចប់, code security គឺជាអនាម័យកូដ ហើយឃ្លាំងទិន្នន័យស្អាតគឺជាជំហានដំបូងឆ្ពោះទៅរកខ្សែសង្វាក់ផ្គត់ផ្គង់កម្មវិធីដែលមានសុវត្ថិភាព។







