មេរោគឆ្លង - មេរោគឆ្លងឯកសារ - កូដមេរោគ

មេរោគ File Infector នៅក្នុងឃ្លាំងកូដ៖ អ្វីដែលអ្នកអភិវឌ្ឍន៍ត្រូវប្រុងប្រយ័ត្ន

នៅពេលដែលមេរោគ 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 គឺជាអនាម័យកូដ ហើយឃ្លាំងទិន្នន័យស្អាតគឺជាជំហានដំបូងឆ្ពោះទៅរកខ្សែសង្វាក់ផ្គត់ផ្គង់កម្មវិធីដែលមានសុវត្ថិភាព។

ឧបករណ៍វិភាគសមាសភាពកម្មវិធី sca
ផ្តល់អាទិភាព ដោះស្រាយ និងធានាសុវត្ថិភាពហានិភ័យផ្នែកទន់របស់អ្នក
ទទួលបានគណនីឥតគិតថ្លៃរបស់អ្នក។
មិនតម្រូវឱ្យមានកាតឥណទានទេ។

ធានាសុវត្ថិភាពនៃការអភិវឌ្ឍន៍ និងការដឹកជញ្ជូនកម្មវិធីរបស់អ្នក

ជាមួយឈុតផលិតផល Xygeni