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







