កញ្ចប់ប្រភពបើកចំហ

ការការពារប្រឆាំងនឹងកញ្ចប់ព្យាបាទប្រភពបើកចំហ៖ អ្វីដែល (មិន) ដំណើរការ

នេះជាវគ្គទីបីក្នុងរឿង ស៊េរីនៃអត្ថបទ អំពីប្រភេទនៃការវាយប្រហារខ្សែសង្វាក់ផ្គត់ផ្គង់កម្មវិធីដែលរីករាលដាលបំផុត៖ ការវាយប្រហារទាំងនោះដែលរំលោភលើការចុះបញ្ជីសាធារណៈរបស់ ប្រភព​បើក​ចំហ សមាសធាតុ​កម្មវិធី។ បន្ទាប់ពីការវិភាគនៅក្នុងវគ្គមុន “កាយវិភាគសាស្ត្រនៃកញ្ចប់ព្យាបាទ៖ តើនិន្នាការអ្វីខ្លះ?«របៀបដែលជនអាក្រក់ចាក់ឥរិយាបថព្យាបាទចូលទៅក្នុងសមាសធាតុដែលបានបោះពុម្ពផ្សាយថ្មី ឬដែលមានស្រាប់ យើងបានត្រៀមខ្លួនរួចរាល់ហើយដើម្បីពាក់អាវពន្លត់អគ្គីភ័យរបស់យើង ហើយពិនិត្យមើលពីរបៀបដែលយើងអាចរារាំងកម្មវិធីព្យាបាទដែលបញ្ជូនតាមវិធីនេះដោយជោគជ័យ ឬជាជម្រើសមួយ ដោះស្រាយជាមួយឧប្បត្តិហេតុតាមអ៊ីនធឺណិតធ្ងន់ធ្ងរដែលអាចកើតមាន ពីព្រោះយើងបានប្រើវិធីសាស្រ្តខុស»។

អ្នកជំនាញភាគច្រើនដែលយល់ដឹងអំពីសុវត្ថិភាពមានគំនិតអំពីរបៀបដោះស្រាយការគំរាមកំហែងនេះ។ យើងបានឮអ្នកគ្រប់គ្រងសន្តិសុខនិយាយដោយមិនស្ទាក់ស្ទើរថា SCA ឧបករណ៍​ប្រាប់​អ្នក​រួចហើយ​ថា​តើ​កំណែ​កញ្ចប់​មួយ​ជា​មេរោគ​ឬ​អត់។ ឬ​ថា​ពួកគេ​ពឹងផ្អែក​លើ​សមាសធាតុ​កម្មវិធី​ដែល​ល្បី​និង​ត្រូវ​បាន​ពិនិត្យ​យ៉ាង​ខ្លាំង ដែល​មេរោគ​ណាមួយ​នឹង​ត្រូវ​បាន​រក​ឃើញ​និង​លុប​ចេញ​ភ្លាមៗ។ ពួកគេ​ប្រើ​កំណែ​តូចតាច/បំណះ​បើកចំហ​សម្រាប់​ការ​ជួសជុល​ភាព​ងាយ​រងគ្រោះ​ដោយ​ស្វ័យប្រវត្តិ ហើយ​នោះ​គឺជា​វិធី​ត្រឹមត្រូវ​ដែល​បាន​ណែនាំ​ដើម្បី​កាត់បន្ថយ​ហានិភ័យ​លើ​ការ​ពឹងផ្អែក​របស់​ប្រភព​បើកចំហ ដោយ​ធ្វើតាម "បំណះមុន, បំណះញឹកញាប់គោលការណ៍។ 

នៅក្នុងវគ្គនេះ យើងនឹងពិនិត្យមើលឡើងវិញនូវមូលហេតុដែលគំនិតទាំងនេះខុស និងរបៀបដែលការយល់ច្រឡំបែបនេះរួមចំណែកដល់ប្រជាប្រិយភាពនៃយន្តការវាយប្រហារនេះ និងហានិភ័យដ៏លើសលប់ដែលអង្គការនានាកំពុងជួបប្រទះ។ យើងនឹងបញ្ចប់ដោយអ្វីដែលដំណើរការ ហើយតើការខិតខំប្រឹងប្រែង និងធនធានដែលពាក់ព័ន្ធគឺជាអ្វី។

ការយល់ច្រឡំជាទូទៅ

ក្នុងអំឡុងពេលនៃដំណើររបស់យើងជាមួយនឹងសុវត្ថិភាពកម្មវិធី យើងបានឃើញបច្ចេកទេសវាយប្រហារវិវត្ត និងគំនិតជាច្រើនពីមនុស្សដែលមានស្មារតីសុវត្ថិភាព។ អង្គការនានាច្រើនតែយល់ច្រឡំអំពីអ្វីដែលមានប្រសិទ្ធភាពប្រឆាំងនឹងការគំរាមកំហែងនេះ ដូច្នេះដំបូងយើងនឹងពិនិត្យមើលអ្វីដែលមិនមានប្រសិទ្ធភាព ដែលសង្ខេបជាបញ្ជីនៃការយល់ច្រឡំខាងក្រោម មិនមែនជាបញ្ជីពេញលេញនោះទេ។

ការយល់ច្រឡំលេខ ៣៖ SCA ឧបករណ៍​រាយការណ៍​ពី​សមាសធាតុ​ដែល​មាន​គំនិត​អាក្រក់​រួចហើយ

ជា​ការ​ពិត! ប៉ុន្តែបន្ទាប់ពីការពិត... ពេលដែលប្រហែលជាវាយឺតពេលហើយ ប្រសិនបើធាតុនោះត្រូវបានប្រើនៅក្នុងការបង្កើតកម្មវិធី ហើយជនខិលខូចបានទទួលទីតាំងឈរជើងរួចហើយនៅក្នុងអ្នកអភិវឌ្ឍន៍ ឬ CI/CD ម៉ាស៊ីន។ អាថ៌កំបាំងអាចត្រូវបានច្រោះចេញ មេរោគបន្ថែមត្រូវបានទាញយក និងដំឡើង ហើយប្រហែលជាសត្រូវបានផ្លាស់ទីទៅចំហៀង ហើយទទួលបានសិទ្ធិចូលប្រើនៅកន្លែងផ្សេងរួចហើយ។ 

ការវិភាគសមាសភាពកម្មវិធី (SCA) ឧបករណ៍ត្រូវបានរចនាឡើងដើម្បីកំណត់ភាពងាយរងគ្រោះដែលអាចកើតមាន។ ឧបករណ៍ទំនើបៗធ្វើការងារដ៏អស្ចារ្យដោយបង្កើនសមាមាត្រសញ្ញា-សំឡេងរំខាន ដោយកំណត់ថាតើភាពងាយរងគ្រោះពិតជាអាចទៅដល់បាន ឬអាចកេងប្រវ័ញ្ចបាន។ ប៉ុន្តែពួកវាគ្មានប្រយោជន៍ប្រឆាំងនឹងមេរោគថ្មីទេ។ សូមគិតអំពីសមាសធាតុព្យាបាទជាភាពងាយរងគ្រោះសូន្យថ្ងៃ៖ មានតែនៅពេលដែលឥរិយាបថព្យាបាទរបស់វាត្រូវបានរកឃើញ សមាសធាតុនេះត្រូវបានរាយការណ៍ទៅកាន់បញ្ជីឈ្មោះដែលកាន់កាប់ ដែលបន្ទាប់ពីការពិនិត្យឡើងវិញដោយក្រុមសន្តិសុខត្រូវបានបញ្ជាក់ថាជាព្យាបាទ ហើយត្រូវបានដកចេញពីបញ្ជីឈ្មោះ។ [1]

នៅពេលនោះ ពិភពលោក (រួមទាំង SCAs) ដឹងថាការដំឡើង ឬការប្រើប្រាស់សមាសភាគ (ឬកំណែមួយចំនួននៃសមាសភាគដែលមានស្រាប់) មិនមែនជារឿងល្អនោះទេ។ ប៉ុន្តែនេះជាពេលដែលសមាសភាគមិនមានពីបញ្ជីឈ្មោះ។ការដឹងថាខ្ញុំមានភាពងាយរងគ្រោះនៅក្នុងសមាសធាតុភាគីទីបី ឬសូម្បីតែសមាសធាតុដែលត្រូវបានចាត់ថ្នាក់ថាមានគ្រោះថ្នាក់ដោយបញ្ជីឈ្មោះគឺល្អ ប៉ុន្តែជាអកុសល SCA ឬឧបករណ៍សវនកម្មទូទៅមិនជួយក្នុងបរិបទនេះទេ។ លើកលែងតែ SCAឧបករណ៍ /audit ពិតជាអាចដឹងជាមុនថាសមាសធាតុមួយមានគ្រោះថ្នាក់មុនពេលវាត្រូវបានប្រើប្រាស់នៅក្នុងអង្គការរបស់អ្នក។.

សូមចងចាំថា ដំណោះស្រាយណាមួយប្រឆាំងនឹងសមាសធាតុប្រភពបើកចំហដែលមានគំនិតអាក្រក់ត្រូវតែរកឃើញពួកវា ហោះហើររវាងពេលដែលសមាសភាគត្រូវបានបោះពុម្ពផ្សាយនៅក្នុងបញ្ជីឈ្មោះ និងពេលដែលសមាសភាគ (កំណែ) ត្រូវបានប្រើប្រាស់ជាលើកដំបូងនៅក្នុងអង្គការរបស់អ្នក។ ហើយនោះរួមបញ្ចូលទាំងសមាសភាគអន្តរកាលផងដែរ។  

ការយល់ច្រឡំ #2: ការគ្រប់គ្រងស្គ្រីបដំឡើងនៅពេលសាងសង់ការពារឥរិយាបថព្យាបាទពីសមាសធាតុប្រភពបើកចំហ

កម្មវិធីគ្រប់គ្រងកញ្ចប់ផ្សេងៗផ្តល់នូវសមត្ថភាពក្នុងការដំណើរការស្គ្រីប (រួមបញ្ចូលនៅក្នុងសមាសភាគ tarball) [2]), សម្រាប់ហេតុផលស្របច្បាប់ ដូចជាការចងក្រងធាតុដែលត្រូវការនៅលើវេទិកាផ្សេងៗគ្នា ការបង្កើតកូដ ឬការដំណើរការការធ្វើតេស្ត ហើយយើងទាំងអស់គ្នាគួរតែដឹងថា ពួកវាអាចត្រូវបានរំលោភបំពានដោយជនខិលខូច ប្រសិនបើស្គ្រីបព្យាបាទត្រូវបានរួមបញ្ចូលនៅក្នុង tarball ឬប្រសិនបើអ្នកវាយប្រហារអាចធ្វើឱ្យស្គ្រីបព្យាបាទដំណើរការជំនួសឱ្យស្គ្រីបល្អ។

ដោយដឹងរឿងនេះ យើងអាចកំណត់រចនាសម្ព័ន្ធកម្មវិធីគ្រប់គ្រងកញ្ចប់ដើម្បីមិនអើពើស្គ្រីប។ ឧទាហរណ៍ ជាមួយ NPM – មិនអើពើស្គ្រីប ទង់ជាតិ (ឬលក្ខណសម្បត្តិកំណត់រចនាសម្ព័ន្ធនៅក្នុង .npmrc ឯកសារ) រំលងស្គ្រីបកំឡុងពេលដំឡើង។ នេះអាចបង្កើតបញ្ហាមួយចំនួន ពីព្រោះការដំណើរការស្គ្រីបគឺជារឿងធម្មតានៅក្នុងប្រព័ន្ធអេកូឡូស៊ីជាច្រើន៖ កម្មវិធីគ្រប់គ្រងកញ្ចប់មួយចំនួនមិនអនុញ្ញាតឱ្យបិទការប្រតិបត្តិស្គ្រីបទេ (ព័ត៌មានជំនួយ៖ ប្រអប់បញ្ចូល "តើ​កម្មវិធី​គ្រប់គ្រង​កញ្ចប់​ណា​ខ្លះ​ដែល​មិន​អនុញ្ញាត​ឱ្យ​បិទ​ការ​ប្រតិបត្តិ​ស្គ្រីប​ដំឡើង?"នៅក្នុង AI ដែលអ្នកចូលចិត្ត)។ ប៉ុន្តែវាមិនការពារជាទូទៅទេ (យើងត្រូវអនុវត្តថាការកំណត់រចនាសម្ព័ន្ធ skip disable មាននៅគ្រប់ទីកន្លែង)។ 

ហើយនៅពេលដែលឥរិយាបថព្យាបាទមិនស្ថិតនៅក្នុងស្គ្រីបដំឡើងទេ ប៉ុន្តែស្ថិតនៅក្នុងកម្មវិធីដើម្បីប្រតិបត្តិនៅពេលដំណើរការ ជម្រើសនេះតែម្នាក់ឯងមិនអាចការពារយើងបានទេ។ 

ការយល់ច្រឡំ #3: ការខ្ទាស់កំណែការពារសមាសធាតុព្យាបាទពីការដំឡើង

មានការសម្របសម្រួលរវាងការបិទភ្ជាប់ដំបូង និងជាញឹកញាប់ជាមួយ កំណែបើកចំហ (អនុញ្ញាតឱ្យកម្មវិធីគ្រប់គ្រងកញ្ចប់ដំឡើងការអាប់ដេតថ្មីដោយស្វ័យប្រវត្តិនៅពេលដែលមានសម្រាប់ការជួសជុលសុវត្ថិភាព) និង ការ​ខ្ទាស់​កំណែ (មានការពឹងផ្អែកដោយផ្ទាល់ និងអន្តរកាលទាំងអស់សម្រាប់កម្មវិធីនៅក្នុងកំណែថេរ)។ គោលការណ៍សុវត្ថិភាពគឺរឹងរូស និងជួនកាលផ្ទុយគ្នា ដូចដែលកើតឡើងជាមួយ "ការអាប់ដេតមុន ការអាប់ដេតញឹកញាប់" និង «ការធ្វើឱ្យប្រសើរឡើងមិនគួរត្រូវបានមើលស្រាលទេ»។ កម្មវិធីគ្រប់គ្រងកញ្ចប់មួយចំនួនធ្វើការអាប់ដេតដោយស្វ័យប្រវត្តិជាមួយជួរម៉ាស៊ីនមេតាមវិធីដែលបានណែនាំ។ ល្អណាស់ប្រសិនបើអ្នកក៏ចង់ទទួលបានការអាប់ដេតដែលមានគំនិតអាក្រក់ផងដែរ! មែនហើយ សមាសធាតុត្រូវតែធ្វើបច្ចុប្បន្នភាពដើម្បីទទួលបានការជួសជុលសុវត្ថិភាពដែលបិទភាពងាយរងគ្រោះឱ្យបានឆាប់តាមដែលអាចធ្វើទៅបាន ប៉ុន្តែ ... កុំអនុញ្ញាតឱ្យកម្មវិធីគ្រប់គ្រងកញ្ចប់ធ្វើបែបនេះដោយស្វ័យប្រវត្តិ។

ការយល់ច្រឡំទី៤៖ ការប្រើប្រាស់សមាសធាតុដែលអាចទុកចិត្តបានគឺមានសុវត្ថិភាព។ កំណែព្យាបាទណាមួយនឹងត្រូវបានរកឃើញ បង្ហាញ និងដកចេញភ្លាមៗ។

ហេតុអ្វីបានជាសមាសធាតុមួយត្រូវបានគេទុកចិត្ត? អាចដោយសារតែវាមានប្រជាប្រិយភាពខ្ពស់ ដោយមានភ្នែកជាច្រើនកំពុងស្វែងរកចំណុចខ្សោយ មានចំនួនអ្នករួមចំណែកយ៉ាងច្រើនសម្រាប់ការថែទាំ ដោយមានអ្នកថែទាំស្នូលច្រើនដែលពិនិត្យឡើងវិញយ៉ាងយកចិត្តទុកដាក់នូវរាល់... pull requestsការពិតគឺខុសគ្នាទាំងស្រុង។ សមាសធាតុសំខាន់ៗមួយចំនួនត្រូវបានថែរក្សាដោយអ្នកអភិវឌ្ឍន៍តែម្នាក់គត់ដែលមិនទទួលបានប្រាក់កម្រៃ។ ក្របខ័ណ្ឌដែលប្រើប្រាស់យ៉ាងទូលំទូលាយមាន អ្នករួមចំណែកជាប្រចាំមួយចំនួនជាមួយនឹងចំនួនថយចុះយ៉ាងឆាប់រហ័សនៃ commitក្នុងមួយអ្នកថែទាំ (គម្រោងពេញនិយមមានអ្នករួមចំណែកជាច្រើនដែលអនុវត្តការបើកបរដោយប្រើប្រាស់ commit ហើយមិនដែលត្រលប់មកវិញទេ)។ ហើយគម្រោងពេញនិយមដែលមានអ្នកថែទាំតែម្នាក់មានច្រើនក្រៃលែង។

ស្រមៃមើលខ្លួនឯងថានិយាយ «អូ! យើងកំពុងប្រើរូបភាព Spring Boot / Angular / React / PyTorch / មូលដ្ឋានផ្លូវការរបស់ Docker ដូច្នេះហានិភ័យដែលអ្នកកំពុងនិយាយអំពីគឺទាបណាស់»។ ប្រហែលជានោះជាការពិត យើងជាអ្នកលក់សន្តិសុខដែលបំភ័យគ្រប់ពេលវេលា ហើយការជ្រៀតជ្រែកជាមួយក្រុមអភិវឌ្ឍន៍ដើម្បីកាត់បន្ថយហានិភ័យដែលអាចជជែកវែកញែកបានគឺជារឿងមិនសមហេតុផល។ អ្នកប្រហែលជាចង់លោតទៅកថាខណ្ឌទទួលយកហានិភ័យ (នៅក្នុងផ្នែកបន្ទាប់) ហើយរួចរាល់ហើយ។ ជាអកុសល សមាសធាតុដ៏ពេញនិយមបំផុតគឺជាគោលដៅសម្រាប់ជនអាក្រក់ ហើយឧទាហរណ៍ អ្នកប្រើប្រាស់ដ៏ពេញនិយម... បណ្ណាល័យ PyTorch ត្រូវបានវាយប្រហារ ក្នុង​អតីតកាល។

«បានរកឃើញ បង្ហាញ និងដកចេញភ្លាមៗ»។  វាត្រូវចំណាយពេលច្រើនថ្ងៃសម្រាប់សមាសធាតុព្យាបាទថ្មីមួយដែលត្រូវលុបចេញពីបញ្ជីឈ្មោះសាធារណៈ។ បញ្ជីឈ្មោះមានការប្រុងប្រយ័ត្នអំពីការលុបកំណែសមាសធាតុចេញ ដើម្បីផលប្រយោជន៍។ បទពិសោធន៍របស់យើងគឺថា នៅពេលដែលបានរាយការណ៍ពីខាងយើង ពេលវេលាមធ្យមសម្រាប់បញ្ជីឈ្មោះដើម្បីលុបកំណែដែលរងផលប៉ះពាល់គឺ 39 ម៉ោង ច្រើនជាងមួយថ្ងៃកន្លះ។ មានសមាសធាតុព្យាបាទដែលមានរយៈពេលមួយសប្តាហ៍បន្ទាប់ពីការរាយការណ៍ដំបូងរបស់យើងនៅក្នុងបញ្ជីឈ្មោះមុនពេលលុបចេញ។ ហើយក្នុងករណីខ្លះ សមាសធាតុនេះត្រូវបានលុបចេញលុះត្រាតែជនរងគ្រោះ ឬក្រុមហ៊ុនឆ្លើយតបឧប្បត្តិហេតុរាយការណ៍ពីឧប្បត្តិហេតុដែលពាក់ព័ន្ធនឹងសមាសធាតុនោះ។ 

អ្វីដែលមិនដំណើរការប្រឆាំងនឹងសមាសធាតុព្យាបាទ

វិធីសាស្រ្តណាមួយដែលមិនជាក់លាក់នឹងបរាជ័យយ៉ាងវេទនា។ នេះជាការប្រាកដណាស់ អ្នកមិនផ្តល់វិធានការទប់ទល់ប្រកបដោយប្រសិទ្ធភាពសម្រាប់ហានិភ័យដែលទាក់ទងនឹងការគំរាមកំហែងនេះទេ។ 

ជាប្រពៃណី SCA ឧបករណ៍​ប្រាប់អ្នកអំពីមេរោគ​ដែលគេស្គាល់ ប៉ុន្តែមានបង្អួចប៉ះពាល់ធំមួយ។ លុះត្រាតែពួកគេអនុវត្តការរកឃើញមេរោគជាមុនជាមួយនឹងការរារាំងសមាសធាតុព្យាបាទដោយបង្ខំ ពួកគេមិនដំណើរការប្រឆាំងនឹងការគំរាមកំហែងនេះទេ។ 

ការបិទស្គ្រីបដំឡើងអាចជួយបាន ប៉ុន្តែត្រូវការអនុវត្តនៅគ្រប់ទីកន្លែងដែលត្រូវដំឡើងសមាសធាតុ។ ដូចគ្នានឹងការខ្ទាស់កំណែដែរ ព្រោះកំណែមិនអាចត្រូវបានខ្ទាស់ពីស្ថានភាពដំបូងដែលមានសុវត្ថិភាពជារៀងរហូតបានទេ។

ការសន្មត់ថាសមាសធាតុដ៏ពេញនិយមទទួលបានការចាប់អារម្មណ៍គ្រប់គ្រាន់ដែលពួកវាមិនអាចត្រូវបានចាក់បញ្ចូលជាមួយនឹងឥរិយាបថដែលមិនបានគ្រោងទុកនៅក្នុងការវាយប្រហារខ្សែសង្វាក់ផ្គត់ផ្គង់ដោយគ្មានការរកឃើញភ្លាមៗដើម្បីការពារការខូចខាតណាមួយគឺជារឿងឆោតល្ងង់ និងមានហានិភ័យ។ អ្នកមិនចង់រស់នៅលើគែមទេ មែនទេ?

បើឈប់ត្រឹមចំណុចនេះទៀត ការទទួលយកហានិភ័យ គឺជារឿងតែមួយគត់ដែលអ្នកអាចធ្វើបាន៖ នេះគឺជា decisចំណុច​ដែល​ត្រូវ​កត់ត្រា​ទុក​ក្នុង​គំរូ​គំរាមកំហែង/ការវាយតម្លៃហានិភ័យរបស់អ្នក រួមទាំងហេតុផលសម្រាប់ការទទួលយកហានិភ័យ និងផលវិបាកដែលអាចកើតមានរបស់វា។ បង្កើនការយល់ដឹងដោយទំនាក់ទំនងវាទៅកាន់ថ្នាក់គ្រប់គ្រង និងភាគីពាក់ព័ន្ធផ្សេងទៀត។ មួយចំនួន យថាភាព អាចត្រូវបានគ្រោងទុកនៅពេលដែលសមាសធាតុព្យាបាទត្រូវបានដំឡើង ឬរួមបញ្ចូលនៅក្នុងកម្មវិធីរបស់អ្នក ប៉ុន្តែនេះពិបាកណាស់ ពីព្រោះអ្នកវាយប្រហារមានផ្លូវជាច្រើនដែលត្រូវដើរតាម។ ព័ត៌មានលម្អិតនៃការវាយប្រហារខ្សែសង្វាក់ផ្គត់ផ្គង់ដែលផ្អែកលើការប្រើប្រាស់សមាសធាតុព្យាបាទនឹងផ្លាស់ប្តូរការបង្ហាញជាសាធារណៈនៃឧប្បត្តិហេតុនេះយ៉ាងខ្លាំង ដែលទំនងជាចាំបាច់ក្រោមក្របខ័ណ្ឌបទប្បញ្ញត្តិរបស់អង្គការរបស់អ្នក។ អ្នកក៏អាចដោះស្រាយផងដែរ ការគ្រប់គ្រងសំណង or ហានិភ័យនៃការផ្ទេរ ឧទាហរណ៍ជាមួយនឹងការធានារ៉ាប់រង។

ទោះយ៉ាងណាក៏ដោយ មានការគ្រប់គ្រងដែលដោះស្រាយការគំរាមកំហែង ហើយគួរតែត្រូវបានពិចារណា ប្រសិនបើអ្នកមិនពេញចិត្តនឹងការទទួលយកហានិភ័យ។ សូមអានបន្ត។

តើ​អ្វី​ទៅ​ដែល​ដំណើរការ​ប្រឆាំង​នឹង​ការ​វាយប្រហារ​ដោយ​ប្រើ​សមាសធាតុ​ព្យាបាទ?

ការដោះស្រាយកំណែរឹង

ការ​ដាក់​កូដ​កំណែ​ជាមួយ​នឹង​ការ​បង្កើន​ល្បឿន​កំណែ​ដែល​បាន​គ្រប់គ្រង និង​បាន​ផ្តល់​ព័ត៌មាន​គ្រប់គ្រាន់ គឺជា​មធ្យោបាយ​ដែល​ត្រូវ​ធ្វើ ដើម្បី​ធ្វើ​ឲ្យ​មាន​តុល្យភាព​រវាង​តម្រូវការ​ក្នុង​ការ​លុប​ចំណុច​ខ្សោយ​ដោយ​មិន​ទទួល​បាន​មេរោគ។ ប៉ុន្តែ​សូម​ចងចាំ​ការ​យល់​ច្រឡំ​ទី 3៖ ការ​ដាក់​កូដ​កំណែ​តែ​មួយ​មុខ​មិន​គ្រប់គ្រាន់​ដើម្បី​ទប់ស្កាត់​កូដ​ព្យាបាទ​ដែល​មក​ពី​កំណែ​ថ្មី​នោះ​ទេ ព្រោះ​អ្នក​នឹង​ត្រូវ​ការ​នៅ​ពេល​អនាគត​ដើម្បី​ធ្វើ​បច្ចុប្បន្នភាព​កំណែ​ក្នុង​ភាព​អាស្រ័យ​ផ្ទាល់ ឬ​ដោយ​ប្រយោល។ នៅ​ពេល​នោះ អ្នក​ត្រូវ​ការ​ភស្តុតាង​ដែល​រឹងមាំ​គ្រប់គ្រាន់​ថា កំណែ​ដែល​បាន​កែប្រែ​ទាំងអស់​មិន​មាន​មេរោគ​ទេ។

ការព្រមានជាមុន

វិធីសាស្រ្តមួយចំពោះបញ្ហានៃសមាសធាតុព្យាបាទគឺប្រព័ន្ធព្រមានមុន (ដែលមានឈ្មោះនៅទីនេះថា ការព្រមានជាមុនអំពីមេរោគ ឬ MEW) ដែលកំណែថ្មីដែលបានបោះពុម្ពផ្សាយ (សម្រាប់សមាសធាតុថ្មី ឬដែលមានស្រាប់) ត្រូវបានវិភាគដោយម៉ាស៊ីនរកឃើញ ដែលនៅពេលដែលរកឃើញភស្តុតាងគ្រប់គ្រាន់អាចចាត់ថ្នាក់កំណែថ្មីថាមានគ្រោះថ្នាក់។ 

ស្វ័យប្រវត្តិកម្មគឺមានសារៈសំខាន់នៅទីនេះ ព្រោះវាមិនអាចទៅរួចទេក្នុងការពិនិត្យឡើងវិញនូវសមាសធាតុថ្មីទាំងអស់ដោយដៃក្នុងអត្រាបោះពុម្ពផ្សាយបច្ចុប្បន្ន។ ដូច្នេះម៉ាស៊ីនរកឃើញត្រូវបញ្ចូលគ្នានូវបច្ចេកទេសជាច្រើន ប្រហែលជារួមទាំងការវិភាគឋិតិវន្ត ថាមវន្ត និងសមត្ថភាព កេរ្តិ៍ឈ្មោះអ្នកប្រើប្រាស់ និងភស្តុតាងដែលមកពីភាពខុសគ្នារវាងទិន្នន័យមេតាសមាសធាតុ និងខ្លឹមសារ tarball ឬរវាង tarball និងឃ្លាំងប្រភពដែលសមាសធាតុនោះសន្មត់ថាមកពី។

នៅ​ទីនោះ​គឺ​ជា តំបន់ងងឹត រវាងពេលវេលាបោះពុម្ពផ្សាយ និងពេលដែលម៉ាស៊ីនវិភាគមាតិកាសមាសធាតុ ប៉ុន្តែវាមិនគួរលើសពីពីរបីនាទីទេ។ គ្រោងការណ៍អាចត្រូវបានកែប្រែ ឧទាហរណ៍ដោយរង់ចាំសមាសធាតុថ្មីត្រូវបានវិភាគ មុនពេលអនុញ្ញាតឱ្យពួកវាត្រូវបានដំឡើង និងប្រើប្រាស់នៅក្នុងការបង្កើតកម្មវិធី។ pipelineឬវិភាគពួកវាតាមតម្រូវការនៅពេលចាំបាច់។ សមាសភាគនៅក្នុងកំណែដែលបានផ្តល់ឱ្យគឺមិនផ្លាស់ប្តូរទេ។ [3]ដូច្នេះវាត្រូវការវិភាគតែម្តងគត់។

ស្វ័យប្រវត្តិកម្មពេញលេញមិនអាចទៅរួចទេ ហើយការពិនិត្យឡើងវិញនូវសុវត្ថិភាពសម្រាប់សមាសធាតុដែលអាចមានគ្រោះថ្នាក់គឺត្រូវបានទាមទារ។ ប្រយ័ត្នចំពោះអ្នកគាំទ្រឱសថបុរាណឌីជីថលបញ្ញាសិប្បនិម្មិត (AI) និងការរៀនម៉ាស៊ីន (Machine Learning) មិនទាន់ត្រូវបានអភិវឌ្ឍគ្រប់គ្រាន់ដើម្បីទទួលយកពាក្យចុងក្រោយនៅពេលនិយាយអំពីការបញ្ជាក់ថាតើសមាសធាតុដែលសង្ស័យមានមេរោគឬអត់នោះទេ។ ពិតណាស់ ការរៀនម៉ាស៊ីនដើរតួនាទីយ៉ាងសំខាន់នៅក្នុងម៉ាស៊ីនរកឃើញក្នុងការចាត់ថ្នាក់សមាសធាតុបញ្ចូលពីភស្តុតាងឆៅដែលចាប់យកបាន ប៉ុន្តែនៅពេលដែលសមាសធាតុត្រូវបាន "ដាក់ឱ្យនៅដាច់ដោយឡែក" ពាក្យចុងក្រោយគឺស្ថិតនៅលើការពិនិត្យដោយដៃដោយក្រុមសន្តិសុខដែលមានបទពិសោធន៍ក្នុងសមាសធាតុដែលមានមេរោគ។ នេះបញ្ជាក់ពីមេរោគដែលអាចកើតមាន ឬចាត់ថ្នាក់វាឡើងវិញថាមានសុវត្ថិភាព។ ហើយរយៈពេលគឺស្ថិតនៅក្នុងជួរម៉ោង។ 

បញ្ជីឈ្មោះរាយការណ៍អំពីកំណែ/សមាសធាតុព្យាបាទ។ បន្ទាប់មក បញ្ជីឈ្មោះអនុវត្តការពិនិត្យឡើងវិញដើម្បីបញ្ជាក់ និងបន្តការបង្ហាញជាសាធារណៈ និងការដកចេញពីបញ្ជីឈ្មោះ។ បញ្ជីឈ្មោះមួយចំនួនរក្សាកញ្ចប់សុវត្ថិភាព។ ចន្លោះពេលនៅទីនេះគឺជាថ្ងៃ ឬសប្តាហ៍ចាប់តាំងពីការបោះពុម្ពផ្សាយ ដែលជា 'រស់នៅពេលវេលា'ឬ'បង្អួចបង្ហាញ' សម្រាប់​សមាសធាតុ​ព្យាបាទ​ភាគច្រើន។

តើអាចដឹងបានថាតើកំណែសមាសធាតុមួយមានគ្រោះថ្នាក់ដែរឬទេ?

ដូច្នេះសម្រាប់ការព្រមានជាមុន យើងត្រូវផ្តល់ចម្លើយដែលពេញចិត្តចំពោះសំណួរនេះ៖ តើខ្ញុំអាចដឹងដោយរបៀបណាថាបណ្ណាល័យ ឬកញ្ចប់មួយមាន (មិនមែន) ព្យាបាទ? តើធ្វើដូចម្តេចដើម្បីប្រមូលភស្តុតាងគ្រប់គ្រាន់នៃអាកប្បកិរិយាព្យាបាទ? អាចធ្វើទៅបាន ប៉ុន្តែពិបាក ព្រោះសត្រូវប្រើភាពប៉ិនប្រសប់ច្រើនដើម្បីជៀសវាងការរកឃើញ។ មានវិធីសាស្រ្តផ្សេងៗគ្នា ដែលនីមួយៗមានគុណសម្បត្តិ និងគុណវិបត្តិ។

ការវិភាគឋិតិវន្ត អាចពិនិត្យមើលផ្លូវប្រតិបត្តិទាំងអស់ ពិនិត្យមើលបច្ចេកទេសដែលប្រើដោយអ្នកវាយប្រហារដោយមិនចាំបាច់ដំណើរការសមាសភាគ និងអនុវត្តភារកិច្ចដំណើរការជាមុនដូចជាការបំបាត់ការភាន់ច្រឡំ ឬការឌិគ្រីប។ នៅពេលដែលអ្នកវាយប្រហារព្យាយាមលាក់បាំងអំពើអាក្រក់របស់ពួកគេ ការប៉ុនប៉ងបំភាន់ពិតជាភស្តុតាងនៃមេរោគ (ប៉ុន្តែសូមចំណាំថាសមាសភាគស្របច្បាប់បំភាន់កូដសម្រាប់រក្សាកម្មសិទ្ធិបញ្ញា ដែលផ្ទុយពី "ប្រភពបើកចំហ")។ មានតែការវាយប្រហារដ៏ស្មុគស្មាញខ្ពស់មួយចំនួនតូចប៉ុណ្ណោះដែលមានការបិទបាំងខ្លាំងដែលត្រូវការ sandboxing ប៉ុន្តែការបិទបាំងខ្លាំងបែបនេះគឺជាសញ្ញាបង្ហាញពីចេតនាអាក្រក់។ សូមចំណាំថា ធម្មតា SAST ឧបករណ៍ទាំងនេះត្រូវបានរចនាឡើងសម្រាប់ភាពងាយរងគ្រោះដោយអចេតនា មិនមែនសម្រាប់ចេតនាព្យាបាទដូចជា Backdoor នោះទេ។

ការវិភាគថាមវន្ត ដំណើរការសមាសភាគ ហើយពិនិត្យមើលការឆ្លើយតបដោយកំណត់ពេលវេលាដំណើរការ ជាធម្មតាដោយផ្តល់នូវបរិស្ថាន sandboxed។ ឥរិយាបថព្យាបាទដែលបង្កឡើងក្រោមលក្ខខណ្ឌជាក់លាក់អាចឆ្លងកាត់ដោយមិនត្រូវបានរកឃើញ៖ សូមចំណាំថាមេរោគអាចប្រើបច្ចេកទេសគេចវេសដូចជា Virtualization/Sandbox Evasion ដើម្បីធ្វើឱ្យសកម្មតែនៅពេលដែលមិនស្ថិតនៅក្រោមការត្រួតពិនិត្យ ហើយវាក៏ជាសញ្ញានៃសកម្មភាពព្យាបាទសម្រាប់ម៉ាស៊ីនវិភាគឋិតិវន្តណាមួយផងដែរ។

ការវិភាគសមត្ថភាព ពិចារណាពីអ្វីដែលសមាសភាគធ្វើ៖ កន្លែងដែលវាភ្ជាប់ទៅ ឯកសារណាដែលវាចូលប្រើ ពាក្យបញ្ជា ឬកម្មវិធីណាដែលត្រូវបានដំណើរការ ស្ថានីយ ឬឧបករណ៍ I/O ដែលបានអនុវត្ត ឬការហៅប្រព័ន្ធណាដែលត្រូវបានហៅ។ ការសម្គាល់ឥរិយាបថនេះអាចត្រូវបានប្រៀបធៀប (សម្រាប់សមាសភាគដែលមានស្រាប់) នៅទូទាំងកំណែ ដូច្នេះនៅពេលដែលឥរិយាបថដែលមិននឹកស្មានដល់ត្រូវបានរកឃើញ ភស្តុតាងនោះអាចបង្កើនការសង្ស័យអំពីសកម្មភាពព្យាបាទដែលអាចកើតមានដែលបានចាក់បញ្ចូលទៅក្នុងកំណែថ្មី។ វិធីសាស្រ្តនេះធ្វើតាមជំហានបែងចែកដែលអ្នកវិភាគសុវត្ថិភាពធ្វើតាមនៅពេលប្រឈមមុខនឹងមេរោគដែលអាចកើតមាន៖ ការត្រួតពិនិត្យដោយប្រើ ខ្សែអក្សរ ឬឧបករណ៍ស្រដៀងគ្នា។ វិធីសាស្រ្តនេះរកឃើញឥរិយាបថព្យាបាទដោយមិនគិតពីលក្ខខណ្ឌបង្ក ហើយដំណើរការនៅពេលដែលគ្មានកូដប្រភព។

ការវិភាគបរិបទ ប្រមូលព័ត៌មានអំពីរបៀបដែលសមាសធាតុត្រូវបានបោះពុម្ពផ្សាយ និងដោយអ្នកណា។ យុទ្ធនាការរបស់ជនអាក្រក់ច្រើនតែប្រើគណនីអ្នកប្រើប្រាស់ថ្មីដែលមិនស្ថិតនៅក្រោមដំណើរការត្រួតពិនិត្យយ៉ាងតឹងរ៉ឹងណាមួយ។ ការតាមដានសកម្មភាពពីមុនអាចផ្តល់នូវការយល់ដឹងអំពីអ្នកប្រើប្រាស់មូលដ្ឋាន ភាគច្រើនសម្រាប់ភាពមិនប្រក្រតីដែលអាចបង្ហាញពីការសម្របសម្រួលដែលអាចកើតមាន។ កេរ្តិ៍ឈ្មោះពិបាករកបានណាស់ ហើយងាយនឹងបាត់បង់ណាស់! អ្នកប្រើប្រាស់ដែលគ្មានសកម្មភាពពីមុនគឺអព្យាក្រឹត ប៉ុន្តែកម្មផលដេញតាមជនអាក្រក់។ ពួក Hacktivists ឬអ្នកប្រើប្រាស់ធម្មតាដែលមានព័ត៌មានសម្ងាត់បោះពុម្ពផ្សាយរបស់ពួកគេត្រូវបានគេលួចគួរតែត្រូវបានតាមដានដោយប្រុងប្រយ័ត្ន។

ព័ត៌មានបរិបទមួយទៀតគឺភាពខុសគ្នាណាមួយរវាងឃ្លាំងប្រភពដែលត្រូវបានគេសន្មត់ថាត្រូវបានប្រើដើម្បីបង្កើតសមាសធាតុ tarball និងខ្លឹមសារនៃ tarball ខ្លួនឯង។ ហើយក៏ត្រូវអនុវត្តតាមការអនុវត្តល្អផងដែរ ដូចជាការបង្កើតស្លាក ឬការចេញផ្សាយនៅក្នុងឃ្លាំងប្រភពដែលត្រូវគ្នានឹងកំណែនៃសមាសធាតុដែលបានបោះពុម្ពផ្សាយនៅក្នុងបញ្ជីឈ្មោះសាធារណៈ។ នៅពេលដែលឃ្លាំងប្រភពនៅជាក់លាក់មួយ commit ត្រូវបានដាក់ស្លាកជាមួយនឹងការចេញផ្សាយ ហើយបន្ទាប់មកភ្លាមៗនោះកំណែមួយមិនដំណើរការតាមវាទេ នោះគឺជាភស្តុតាងដ៏រឹងមាំមួយដែលបង្ហាញថាសមាសធាតុអាចត្រូវបានបំពុល៖ ជនល្មើសអាចនឹងបានធ្វើឱ្យខូចគណនីដែលប្រើសម្រាប់បោះពុម្ពផ្សាយសមាសធាតុ ប៉ុន្តែមិនមានសិទ្ធិសរសេរនៅក្នុងឃ្លាំងកូដប្រភពទេ)។ ការវាយប្រហារជាច្រើនត្រូវបានរកឃើញជាប្រចាំដោយប្រើច្បាប់ទាំងនេះ៖ ឧទាហរណ៍ ការវាយប្រហារលើសៀវភៅបញ្ជី អាចត្រូវបានរកឃើញយ៉ាងងាយស្រួលតាមបណ្តោយបន្ទាត់ទាំងនេះ។ ដូច្នេះ ការវិភាគបរិបទ កំណត់ពីភាពមិនប្រក្រតីបែបនេះនៅក្នុងដំណើរការបោះពុម្ពផ្សាយ។

ជញ្ជាំងភ្លើងពឹងផ្អែក

វិធីសាស្រ្តផ្សេងមួយទៀតគឺត្រូវមានបញ្ជីសដ៏ទូលំទូលាយនៃសមាសធាតុសម្រាប់ក្រាហ្វភាពអាស្រ័យទាំងអស់ដែលប្រើក្នុងកម្មវិធីរបស់អ្នក ដូច្នេះនៅក្នុងការបង្កើតណាមួយ pipeline ដំណើរការនៅក្នុងអង្គការរបស់អ្នក មានតែកំណែសមាសភាគដែលត្រូវបានអនុម័តប៉ុណ្ណោះដែលអាចដំឡើង និងប្រើប្រាស់បាន។ជញ្ជាំងភ្លើង” ត្រូវបានអនុវត្តដោយប្រើបញ្ជីឈ្មោះផ្ទៃក្នុង ដែល tarballs សម្រាប់កំណែសមាសភាគដែលត្រូវបានអនុញ្ញាតត្រូវបានបម្រើ (រក្សាទុកក្នុងឃ្លាំងសម្ងាត់ ឬប្រូកស៊ី)។ សូមចំណាំថា បញ្ជីសណាមួយនឹងមិនដំណើរការទេ លុះត្រាតែអ្នកមានបច្ចេកវិទ្យាសម្រាប់ចាត់ថ្នាក់កំណែថ្មីណាមួយថាមានសុវត្ថិភាពសមរម្យ ដូច្នេះវាអាចត្រូវបានបន្ថែមទៅក្នុងបញ្ជីស។ 

សូមចំណាំថា ការព្រមានដំបូង (ការរកឃើញរហ័សឱ្យបានឆាប់តាមដែលអាចធ្វើទៅបានបន្ទាប់ពីការបោះពុម្ពផ្សាយកំណែថ្មី) ត្រូវតែផ្សំជាមួយនឹងវិធីមួយចំនួនដើម្បីប្រើប្រាស់ព័ត៌មាននោះដោយសកម្ម ដើម្បីរារាំងសមាសធាតុដែលប៉ះពាល់ដល់ការបង្កើត។ pipelineឬម៉ាស៊ីនរបស់អ្នកអភិវឌ្ឍន៍ [4]យើងហៅវាថា "ជញ្ជាំងភ្លើងអាស្រ័យ”: យន្តការដាក់ឱ្យនៅដាច់ដោយឡែកសម្រាប់ការពារការបង្កើតដោយស្វ័យប្រវត្តិពីកញ្ចប់ព្យាបាទ។ កញ្ចប់ខាងក្នុង និងការចុះឈ្មោះរូបភាពគឺល្អដើម្បីការពារអង្គការពីអំពើអាក្រក់ខាងក្រៅ ប៉ុន្តែភស្តុតាងដែលរឹងមាំគ្រប់គ្រាន់គឺចាំបាច់ដើម្បីធ្វើឱ្យការដាក់ឱ្យនៅដាច់ដោយឡែកមានប្រសិទ្ធភាព។ 

ការ Sandboxing ពេលដំណើរការ

វិធីសាស្រ្តជំនួសមួយសម្រាប់ការរកឃើញនៅពេលបោះពុម្ពផ្សាយគឺការវិភាគឥរិយាបថនៅពេលដំណើរការ។ គំនិតនេះគឺដើម្បីចាប់យកឥរិយាបថដែលរំពឹងទុកពីកម្មវិធី ហើយរកឃើញ (ឬរារាំង) ភាពមិនប្រក្រតីណាមួយដែលត្រូវបានរកឃើញ។ សកម្មភាពនេះមានបញ្ហានៃការត្រូវរៀបចំឧបករណ៍នៅពេលដំណើរការសម្រាប់ការត្រួតពិនិត្យ ឬការរារាំង ហើយវាគឺជាគំនិតដ៏ជោគជ័យមួយដែលនឹងត្រូវបានបន្ថែមទៅក្នុងឃ្លាំងអាវុធនៃយន្តការការពារប្រឆាំងនឹងសត្វល្អិតដែលមានគ្រោះថ្នាក់។

ការកំណត់យុទ្ធសាស្ត្រដ៏ទូលំទូលាយមួយ

យុទ្ធសាស្ត្រដែលបានណែនាំត្រូវបញ្ចូលគ្នានូវបច្ចេកទេសផ្សេងៗគ្នានៅក្នុងដំណើរការអភិវឌ្ឍន៍កម្មវិធី ដោយគ្រប់គ្រងការអាប់ដេតកំណែដើម្បីរារាំងសមាសធាតុព្យាបាទដែលចូលមក។ យើងត្រូវតែសម្របសម្រួលការខ្ទាស់កំណែដើម្បីជៀសវាងការឆ្លងមេរោគដោយស្វ័យប្រវត្តិជាមួយនឹងការអាប់ដេតកំណែដើម្បីទទួលបានការជួសជុលសម្រាប់ភាពងាយរងគ្រោះដែលសំខាន់។ ការវាយតម្លៃរហ័ស និងមានប្រសិទ្ធភាពនៃការពឹងផ្អែកដោយផ្ទាល់ និងដោយប្រយោលក្នុងអំឡុងពេលអាប់ដេតកំណែដើម្បីមានភស្តុតាងគ្រប់គ្រាន់ថាពួកវាមិនមានមេរោគទេ។ ការបង្កើតកម្មវិធីដែលពឹងផ្អែកលើសមាសធាតុព្យាបាទដែលគេស្គាល់ត្រូវតែត្រូវបានរារាំង។ ហើយទាំងអស់ត្រូវតែអនុវត្ត។

ប្រើ​ការ​ភ្ជាប់​កំណែ នៅពេល​ដែល​អាច​ធ្វើ​ទៅ​បាន ព្រោះវាធ្វើឱ្យ​ការបង្កើត​ឡើងវិញ​បាន​កាន់តែ​ងាយស្រួល។ ការ​ខ្ទាស់​កំណែ​ជាមួយ​នឹង​ការ​ប៉ះ​កំណែ​ដែល​បាន​គ្រប់គ្រង និង​អនុម័ត​ដោយ​ដៃនិង ដោយមានជំនួយពីបច្ចេកវិទ្យាជំនួយគួរតែវាយតម្លៃថាតើការអាប់ដេតនាំមកនូវមេរោគ ឬធ្វើឱ្យខូចកម្មវិធី ហើយផ្សះផ្សាការអាប់ដេតសម្រាប់ជួសជុលភាពងាយរងគ្រោះជាមួយនឹងការជៀសវាងការឆ្លងមេរោគមេរោគ។ ឧបករណ៍អាចជួយនៅទីនេះ ដោយ (1) ការកំណត់អាទិភាពលើភាពងាយរងគ្រោះណាដែលពិតជាសំខាន់ (អាចទៅដល់ និងអាចកេងប្រវ័ញ្ចបាន ជាមួយនឹងហានិភ័យខ្ពស់នៃការត្រូវបានកំណត់គោលដៅដោយអ្នកវាយប្រហារ) (2) ការជ្រើសរើសកំណែគោលដៅដែលឆបគ្នាជាមួយនឹងការប្រើប្រាស់សមាសភាគបច្ចុប្បន្ន និងមិនធ្វើឱ្យខូចកម្មវិធី (3) ការជ្រើសរើសកំណែគោលដៅដែលមិនមានឥរិយាបថព្យាបាទ និង (4) ធ្វើឱ្យការអាប់ដេតកំណែសម្រាប់ការពឹងផ្អែកដោយផ្ទាល់ និងដោយប្រយោលមានភាពងាយស្រួល ដោយស្នើការផ្លាស់ប្តូរនៅក្នុងឯកសារ manifest ដែលអាចត្រូវបានអនុម័តយ៉ាងឆាប់រហ័ស។ ជំហាន (3) ត្រូវការព័ត៌មានជាក់លាក់អំពីសមាសភាគព្យាបាទឱ្យជិតនឹងពេលវេលាបោះពុម្ពផ្សាយរបស់ពួកគេតាមដែលអាចធ្វើទៅបាន។

ដំណើរការនៃការធ្វើបច្ចុប្បន្នភាពភាពអាស្រ័យនេះត្រូវតែមាន អនុវត្ត និង បានផ្ទៀងផ្ទាត់ នៅគ្រប់ទីកន្លែង។ ដំណើរការនេះត្រូវតែត្រូវបានកត់ត្រាទុក ហើយគ្រប់ភាគីពាក់ព័ន្ធទាំងអស់គួរតែត្រូវបានបណ្តុះបណ្តាល ព្រោះជាញឹកញាប់ការអភិវឌ្ឍ និងការបង្កើត/ការដាក់ពង្រាយកម្មវិធីត្រូវបានបញ្ជូនទៅខាងក្រៅ។ CI/CD pipelines គួរតែត្រូវបានកែប្រែតាមនោះ ដូច្នេះស្វ័យប្រវត្តិកម្មមិនអនុញ្ញាតឱ្យមានការពឹងផ្អែកដោយប្រយោលដែលមានគំនិតអាក្រក់រអិលចូលទៅក្នុងការបង្កើតនោះទេ៖ guardrails ការទប់ស្កាត់ការបង្កើត ប្រសិនបើមានភស្តុតាងគ្រប់គ្រាន់នៃមេរោគដែលអាចកើតមាននៅក្នុងការពឹងផ្អែក គឺជាវិធីដែលបានណែនាំ។ 

ប្រសិនបើអង្គការរបស់អ្នកមានបញ្ជីឈ្មោះផ្ទៃក្នុងដែលដើរតួជាប្រូកស៊ីសុវត្ថិភាពសម្រាប់រក្សាទុកកំណែសមាសភាគដែលត្រូវបានអនុញ្ញាត អ្នកត្រូវតែទទួលបានព័ត៌មានអំពីសមាសភាគដែលមានគំនិតអាក្រក់ (ក្រៅពីលក្ខណៈវិនិច្ឆ័យផ្សេងទៀត) សម្រាប់ការត្រួតពិនិត្យសមាសភាគដែលបានស្នើសុំ មុនពេលបន្ថែមវាទៅក្នុងបញ្ជីអនុញ្ញាត។ 

ការប្រើប្រាស់កម្មវិធីប្រភពបើកចំហដោយសុវត្ថិភាពមិនមែនជារឿងងាយស្រួលនោះទេ ហើយកត្តាមេរោគត្រូវតែយកមកពិចារណាយ៉ាងពេញលេញ ជាមួយនឹងការខិតខំប្រឹងប្រែងស្រដៀងគ្នានេះដែរក្នុងការដោះស្រាយភាពងាយរងគ្រោះ។

កំណត់ត្រាចុងក្រោយ៖ ប្រភពដើមក្នុងទម្រង់ជាការបញ្ជាក់ផ្នែកទន់ ដែលបង្កើតឡើងនៅពេលបង្កើតសមាសភាគ គឺជាផ្នែកសំខាន់មួយទៀតនៅក្នុងកិច្ចខិតខំប្រឹងប្រែងដើម្បីតាមដានវត្ថុបុរាណ (សមាសធាតុ tarball) ជាមួយនឹងប្រភព និងដំណើរការបង្កើតដែលបានបង្កើតវា។ ចំណាំថា តំណភ្ជាប់រវាងរូបថតប្រភព + បរិស្ថានបង្កើត និងវត្ថុបុរាណកម្មវិធីដែលពាក់ព័ន្ធ (ចុះហត្ថលេខាដោយប្រព័ន្ធបង្កើតដែលទុកចិត្ត) មិនរារាំងខ្លួនឯងថាសមាសភាគមិនមានឥរិយាបថព្យាបាទនោះទេ ប៉ុន្តែធ្វើឱ្យវាកាន់តែពិបាកសម្រាប់មនុស្សអាក្រក់ក្នុងការចាក់មេរោគ។ ហើយការធ្វើឱ្យការផ្ទៀងផ្ទាត់ប្រភពដើមជាតម្រូវការទូទៅសម្រាប់ការប្រើប្រាស់សមាសភាគប្រភពបើកចំហនឹងចំណាយពេលយូរ ហើយមានតែ... បានបន្ថែមថ្មីៗនេះទៅក្នុង NPMការធ្វើឱ្យប្រព័ន្ធសាងសង់ និងដាក់ពង្រាយដែលគួរឱ្យទុកចិត្តទាំងនោះមានភាពធន់នឹងការជ្រៀតជ្រែក ឬការអនុញ្ញាតឱ្យមានការរកឃើញការជ្រៀតជ្រែកណាមួយនៅក្នុងការសាងសង់គឺជារឿងមួយផ្សេងទៀត ដែលនៅក្រៅវិសាលភាពនៃការបង្ហោះនេះ។ 

អានបន្ថែម

វគ្គបន្ទាប់ កញ្ចប់ព្យាបាទប្រភពបើកចំហ៖ វិធីសាស្រ្ត Xygeni នឹងបង្ហាញយុទ្ធសាស្ត្រដែលយើងអនុវត្តតាមនៅ Xygeni សម្រាប់យើង ការព្រមានជាមុនអំពីមេរោគ (MEW)។ កំណែកញ្ចប់ថ្មីនៅក្នុងកញ្ចប់សាធារណៈ និងការចុះឈ្មោះរូបភាពត្រូវបានស្កេន ហើយភស្តុតាងត្រូវបានទទួលដោយប្រើការរួមបញ្ចូលគ្នានៃការវិភាគឋិតិវន្ត ថាមវន្ត សមត្ថភាព និងបរិបទ។ ភស្តុតាង រួមផ្សំជាមួយនឹងកេរ្តិ៍ឈ្មោះអ្នកប្រើប្រាស់ និងប្រវត្តិនៃការផ្លាស់ប្តូរនៅក្នុងឃ្លាំងកូដប្រភព អនុញ្ញាតឱ្យមានការចាត់ថ្នាក់ដោយស្វ័យប្រវត្តិទាំងអស់នៃសមាសធាតុទៅជាប្រភេទដែលមានហានិភ័យខ្ពស់ និងទំនងជាព្យាបាទ។ ប្រព័ន្ធនេះរៀនពីភស្តុតាងពីមុនដែលប្រមូលបានពីកញ្ចប់ ដើម្បីកាត់បន្ថយភាពវិជ្ជមានមិនពិតឱ្យនៅកម្រិតអប្បបរមា។ 

អង្គការដែលបានជាវទទួលបានការជូនដំណឹងព្រមានសម្រាប់សមាសធាតុដែលពួកគេកំពុងប្រើប្រាស់ ដោយផ្ទាល់ ឬដោយប្រយោល នៅពេលដែលកំណែព្យាបាទត្រូវបានចាត់ថ្នាក់។ បន្ទាប់មក ការវិភាគដោយដៃត្រូវបានធ្វើឡើងដោយអ្នកវិភាគរបស់យើង ដែលបញ្ជាក់ ឬបដិសេធការចាត់ថ្នាក់។ ចំពោះមេរោគដែលបានបញ្ជាក់ បញ្ជីឈ្មោះសាធារណៈត្រូវបានជូនដំណឹង ដើម្បីឱ្យវាអាចអនុវត្តការវិភាគផ្ទាល់ខ្លួន និងជាធម្មតាលុបកំណែព្យាបាទ ឬចាត់វិធានការបន្ថែម ដូចជាការរារាំង ឬលុបគណនីអ្នកប្រើប្រាស់ដែលមានបញ្ហា។

យើងនឹងពន្យល់ពីរបៀបដែលយើងកំពុងជួយ NPM, PyPI, GitHub និងហេដ្ឋារចនាសម្ព័ន្ធសំខាន់ៗផ្សេងទៀតនៅក្នុងប្រព័ន្ធអេកូឡូស៊ីប្រភពបើកចំហ ដើម្បីកាត់បន្ថយពេលវេលាស្នាក់នៅ ដែលសមាសធាតុព្យាបាទថ្មីដែលបានបោះពុម្ពផ្សាយនៅតែសកម្មរហូតដល់វាត្រូវបានបញ្ជាក់ថាជាមេរោគ និងត្រូវបានដកចេញពីបញ្ជីឈ្មោះ។ និងរបៀបដែលអង្គការអាចទទួលបានអត្ថប្រយោជន៍ពីប្រព័ន្ធ MEW ដើម្បីមានការការពារកាន់តែប្រសើរឡើងប្រឆាំងនឹងការវាយប្រហារខ្សែសង្វាក់ផ្គត់ផ្គង់កម្មវិធីដែលពាក់ព័ន្ធនឹងសមាសធាតុប្រភពបើកចំហ។

  • [1] យ៉ាងណាក៏ដោយ អ្នកប្រើប្រាស់សមាសភាគត្រូវពិនិត្យមើលថាតើ tarball សមាសភាគត្រូវបានរក្សាទុកក្នុងឃ្លាំងសម្ងាត់ ឬចុះឈ្មោះនៅកន្លែងណាមួយដែរឬទេ ឧទាហរណ៍នៅក្នុងបញ្ជីឈ្មោះខាងក្នុង ដូច្នេះជំងឺនេះនឹងត្រូវបានលុបបំបាត់ចោល។
  • [2] សមាសភាគដែលបានវេចខ្ចប់រួមមានបញ្ជីឯកសារដែលប្រកាសខ្លឹមសារ និងទិន្នន័យមេតារបស់វា កូដប្រភព ឬកូដដែលបានចងក្រង ស្គ្រីបដំឡើង និងធាតុបន្ថែមដូចជាឈុតសាកល្បង យោងទៅតាមទម្រង់វេចខ្ចប់ និងជាធម្មតាក្នុងទម្រង់ដែលបានបង្ហាប់។ នេះត្រូវបានគេហៅថា "component tarball"។
  • [3] ទោះបីជាជនល្មើសដែលមានគំនិតអាក្រក់អាចកែប្រែសមាសធាតុដែលបានបោះពុម្ពផ្សាយដោយសារតែការរំលោភបំពាននៅក្នុងបញ្ជីឈ្មោះខ្លួនឯងក៏ដោយ ការសង្ខេបគ្រីបតូក្រាហ្វិចធម្មតាអាចរកឃើញការផ្លាស់ប្តូរណាមួយនៅក្នុង tarball បន្ទាប់ពីការវិភាគត្រូវបានបញ្ចប់។
  • [4] សូមចងចាំថា សមាសធាតុព្យាបាទមួយចំនួនដំណើរការនៅពេលដំឡើង ដូច្នេះវាអាចប៉ះពាល់ដល់ណូតអ្នកអភិវឌ្ឍន៍ដែលដំណើរការ "npm install X" ដោយអចេតនាជាមួយ X ជាសមាសធាតុព្យាបាទ។  

កញ្ចប់ព្យាបាទប្រភពបើកចំហ៖ បញ្ហា

កាយវិភាគសាស្ត្រនៃកញ្ចប់ព្យាបាទ៖ តើនិន្នាការអ្វីខ្លះ?

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

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

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