កម្មវិធីស្កេនគុណភាពកូដ-appsec

គុណភាពកូដ និង Code Security បានរស់នៅក្នុងឧបករណ៍ពីរផ្សេងគ្នា។ ពួកគេមិនចាំបាច់ធ្វើដូច្នោះទេ។

ក្រុមវិស្វកម្មភាគច្រើនដំណើរការការសន្ទនាពីរដាច់ដោយឡែកពីគ្នាអំពីមូលដ្ឋានកូដដូចគ្នា។ មួយគឺអំពីសុវត្ថិភាព៖ តើមានហានិភ័យនៃការចាក់ SQL ដែរឬទេ អាថ៌កំបាំងដែលបានអ៊ិនកូដរឹង និងការពឹងផ្អែកដែលអាចកេងប្រវ័ញ្ចបាន។ មួយទៀតគឺអំពីភាពអាចថែទាំបាន៖ តើមុខងារនេះស្មុគស្មាញពេកដែរឬទេ តើកូដនេះត្រូវបានចម្លងបីដងដែរឬទេ តើមានកូដដែលងាប់ដែលគ្មានអ្នកណាហ៊ានលុបដែរឬទេ។

ការសន្ទនាទាំងនេះជាធម្មតាកើតឡើងនៅក្នុងឧបករណ៍ផ្សេងៗគ្នា ដែលដំណើរការដោយក្រុមផ្សេងៗគ្នា ក្នុងកាលវិភាគផ្សេងៗគ្នា។ ម៉ាស៊ីនស្កេនសុវត្ថិភាពបង្ហាញពីអ្វីដែលអាចកេងប្រវ័ញ្ចបាន។ ឧបករណ៍ដែលមានគុណភាពដាច់ដោយឡែកមួយ ដែលជារឿយៗត្រូវបានទិញ និងគ្រប់គ្រងដោយឯករាជ្យ បង្ហាញពីអ្វីដែលថ្លៃក្នុងការថែទាំ។ អាជ្ញាប័ណ្ណពីរ ពីរ dashboards, កម្មវិធីវិភាគពីរដែលដើរលើមែកធាងវាក្យសម្ព័ន្ធអរូបីដូចគ្នា ដើម្បីឆ្លើយសំណួរពីរផ្សេងគ្នា។

ការបំបែកនោះមានតម្លៃ។ កំហុសឆ្គងនៃភាពជឿជាក់ (ប្រភេទដែលបណ្តាលឱ្យមានការបរាជ័យក្នុងពេលដំណើរការ មិនមែនការបំពានទេ) មិនទទួលបានវិន័យក្នុងការបែងចែកដូចគ្នានឹងការរកឃើញសុវត្ថិភាពទេ ពីព្រោះវារស់នៅខាងក្រៅក្រុមសន្តិសុខ។ dashboardហើយនៅពេលដែលក្រុមមួយមានម៉ាស៊ីនវិភាគឋិតិវន្តរួចហើយដែលវិភាគឯកសារនីមួយៗសម្រាប់គោលបំណងសុវត្ថិភាព ការបង្កើតម៉ាស៊ីនទីពីរដែលមិនទាក់ទងគ្នាដើម្បីពិនិត្យមើលគុណភាពកូដគឺជាការងារដែលលែងត្រូវការដោយគ្មានអត្ថប្រយោជន៍រួម។

ហេតុអ្វីបានជាគុណភាពកូដមានសារៈសំខាន់ (និងរបៀបដែលវាខុសគ្នាពី Code Security)

គុណភាពកូដ និង code security ឆ្លើយសំណួរពីរផ្សេងគ្នា។ Code security សួរថា: តើកូដនេះអាចត្រូវបានគេកេងប្រវ័ញ្ចបានទេ? គុណភាពកូដសួរថា: តើកូដនេះអាចត្រូវបានរក្សាបានទេ? មុខងារមួយអាចមានសុវត្ថិភាពល្អឥតខ្ចោះ ហើយនៅតែជាភាពស្មុគស្មាញប្រាំរយបន្ទាត់ដែលគ្មាននរណាម្នាក់ចង់ប៉ះពាល់ ហើយម៉ូឌុលដែលរៀបចំបានល្អ និងងាយស្រួលអាននៅតែអាចភ្ជាប់មកជាមួយនឹងកំហុសចាក់ដ៏សំខាន់។ គ្មានវិន័យណាមួយអាចជំនួសវិន័យផ្សេងទៀតបានទេ។

តម្លៃនៃការមិនអើពើនឹងគុណភាពកូដមិនបង្ហាញថាជាការបំពាននោះទេ។ វាបង្ហាញយឺតជាង៖ អ្នកជួលថ្មីចំណាយពេលពីរសប្តាហ៍ជំនួសឱ្យពីរថ្ងៃដើម្បីធ្វើការផ្លាស់ប្តូរដែលមានសុវត្ថិភាព មុខងារធម្មតាត្រូវការការរត់ប្រណាំងបីដង ព្រោះគ្មាននរណាម្នាក់អាចទស្សន៍ទាយបានថាប្លុកចម្លងនឹងខូចអ្វីនៅកន្លែងផ្សេងទៀតទេ វិស្វករដែលហៅទូរស័ព្ទចំណាយពេលមួយម៉ោងដើម្បីតាមដានកំហុសតាមរយៈកូដដែលងាប់ ដែលគួរតែត្រូវបានដកចេញកាលពីមួយឆ្នាំមុន។ គ្មានអ្វីដែលធ្វើឲ្យការជូនដំណឹងសុវត្ថិភាពដំណើរការទេ។ ទាំងអស់នេះបង្ហាញក្នុងល្បឿន ហើយនៅពេលដែលវាអាចមើលឃើញនៅក្នុង sprint retro វាមានតម្លៃថ្លៃរួចទៅហើយក្នុងការជួសជុល។

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

វិធីល្អជាង៖ ម៉ាស៊ីនមួយ កាតាឡុកច្បាប់ពីរ

កម្មវិធីស្កេនគុណភាពកូដរបស់ Xygeni វិភាគកូដប្រភពសម្រាប់ពិការភាពនៃការថែទាំ និងភាពជឿជាក់៖ ក្លិនកូដ ការរំលោភលើភាពស្មុគស្មាញ កូដងាប់ និងការចម្លង - គំរូដែលមិនបណ្តាលឱ្យមានការរំលោភបំពាន ប៉ុន្តែបណ្តាលឱ្យមានការដាច់ចរន្តអគ្គិសនី ការតំរែតំរង់ និងក្រុមដែលមានចលនាយឺត។

ជម្រើស​នៃ​ការ​រចនា​ដ៏​លេចធ្លោ​គឺ​ផ្នែក​ស្ថាបត្យកម្ម មិនមែន​ផ្នែក​សោភ័ណភាព​ទេ។ Code Quality ចែករំលែក​ម៉ាស៊ីន​វិភាគ​ឋិតិវន្ត​របស់​វា​ជាមួយ ស៊ីហ្គេនី SAST ម៉ាស៊ីនស្កេន: កម្មវិធីវិភាគដូចគ្នា សំណង់ AST ដូចគ្នា ការរកឃើញឯកសារដូចគ្នា។ អ្វីដែលវាមិនចែករំលែកគឺកាតាឡុកច្បាប់។ ច្បាប់គុណភាពត្រូវបានកំណត់វិសាលភាពទៅលើគុណភាព មិនមែនសុវត្ថិភាពទេ ហើយការរកឃើញត្រូវបានបង្ហាញនៅក្នុងផ្នែកគុណភាពដែលឧទ្ទិសដល់វេទិកា Xygeni ដែលត្រូវបានរក្សាទុកដាច់ដោយឡែកពី SAST និងតារាងហានិភ័យសន្តិសុខផ្សេងទៀតដែលនៅសល់។

លទ្ធផល៖ ក្រុមទទួលបានទិដ្ឋភាពថែទាំ និងទិដ្ឋភាពសុវត្ថិភាពពីការឆ្លងកាត់ការវិភាគមូលដ្ឋានដូចគ្នា ដោយមិនចាំបាច់បញ្ចូលកង្វល់ពីរផ្សេងគ្នាទៅជាបញ្ហារំខានតែមួយនោះទេ។ dashboard.

វិធីពីរយ៉ាងដើម្បីទទួលបានសញ្ញាគុណភាពនៅក្នុងរបស់អ្នក Pipeline

មិនមែនគ្រប់មុខងារ "គុណភាពកូដ" ទាំងអស់សុទ្ធតែដំណើរការដូចគ្នានោះទេ។ មុខងារជាច្រើន CI/CD-ឧបករណ៍ដែលមានគុណភាពដើមគឺជាស្រទាប់ប្រមូលផ្តុំ៖ ពួកគេមិនវិភាគកូដរបស់អ្នកដោយខ្លួនឯងទេ; ពួកវានាំចូលលទ្ធផលពី linter ណាមួយដែលអ្នកដំណើរការរួចហើយ (linter JavaScript, linter Python, ឧបករណ៍ចាប់សញ្ញាចម្លង) ដែលនីមួយៗត្រូវបានធ្វើទ្រង់ទ្រាយឡើងវិញទៅជាគ្រោងការណ៍ JSON ដែលបានចែករំលែក ដែលនីមួយៗត្រូវបានភ្ជាប់ជារបស់វាផ្ទាល់។ pipeline ជំហាន។ នោះអាចបត់បែនបាន ប៉ុន្តែវាមានន័យថាសញ្ញាគុណភាពរបស់អ្នកមានភាពស៊ីសង្វាក់គ្នាដូចឧបករណ៍ ទម្រង់ និងអ្នកថែទាំដាច់ដោយឡែកជាច្រើនដែលអ្នកបានភ្ជាប់គ្នា មួយសម្រាប់មួយភាសា។

កម្មវិធីស្កេនគុណភាពកូដរបស់ Xygeni ដើរតាមផ្លូវផ្សេង៖ ម៉ាស៊ីនដើមមួយ កំពុងដំណើរការរួចហើយសម្រាប់សុវត្ថិភាព បានពង្រីកជាមួយកាតាឡុកច្បាប់គុណភាព។ មិនមាន linter ក្នុងមួយភាសាដើម្បីដំឡើង គ្មានទម្រង់របាយការណ៍ដើម្បីធ្វើទ្រង់ទ្រាយឡើងវិញ គ្មានការងារដាច់ដោយឡែកដើម្បីថែទាំឧបករណ៍នីមួយៗទេ។ អ្នកទទួលបានពាក្យបញ្ជាមួយ គំរូភាពធ្ងន់ធ្ងរដែលស៊ីសង្វាក់គ្នាមួយ និងមួយ... dashboard ផ្នែកនេះ ពីព្រោះការវិភាគមិនដែលត្រូវបានបែងចែកតាមឧបករណ៍តាំងពីដំបូងមកម្ល៉េះ។

របៀបដែលវាធ្វើការ?

គុណភាពកូដដំណើរការជាពាក្យបញ្ជា CLI ផ្ទាល់ខ្លួនរបស់វា៖

គុណភាពស៊ីជីនី -d [ជម្រើស] (គុណភាពកូដ xygeni ដំណើរការជាឈ្មោះក្លែងក្លាយ។)

វាចែករំលែកម៉ូដែលជម្រើសរបស់វាជាមួយ ស៊ីជីនី sastដូច្នេះអ្នកណាដែលកំពុងដំណើរការម៉ាស៊ីនស្កេនសុវត្ថិភាពរបស់ Xygeni នឹងស្គាល់ចំណុចប្រទាក់ភ្លាមៗ៖

ជម្រើសអ្វីដែលវាធ្វើ
-d, --dirបញ្ជីឈ្មោះដែលត្រូវវិភាគ
--detectorsដំណើរការលេខសម្គាល់ឧបករណ៍ចាប់សញ្ញាជាក់លាក់ ឬភាពធ្ងន់ធ្ងរ និងអ្វីៗគ្រប់យ៉ាងដែលលើសពីវា
--fail-onចេញពីកម្រិតមិនសូន្យនៅកម្រិតធ្ងន់ធ្ងរដែលបានផ្តល់ឱ្យ សម្រាប់ CI/CD ច្រកទ្វារ
--baselineប្រៀបធៀបទៅនឹងមូលដ្ឋាន ហើយបង្ហាញតែការរកឃើញថ្មីប៉ុណ្ណោះ
--uploadផ្ញើលទ្ធផលទៅវេទិកា Xygeni

ការបង្កើតរបាយការណ៍គុណភាពកូដ

ការស្កេនបង្កើតរបាយការណ៍គុណភាពកូដដែលអ្នកអាចផ្ញើទៅវេទិកា នាំចេញជា JSON សម្រាប់វត្ថុបុរាណ CI ឬប្រគល់ទៅឱ្យប្រធានក្រុមដោយមិនចាំបាច់ផ្តល់ឱ្យពួកគេ dashboard ចូលប្រើ។ ទាំងពីរគឺជាពាក្យបញ្ជាមួយបន្ទាត់៖

# ស្កេន និងផ្ទុកឡើងដោយផ្ទាល់ទៅកាន់វេទិកា Xygeni

គុណភាព xygeni -n MyProject –upload

# នាំចេញរបាយការណ៍គុណភាពកូដជា JSON ការរកឃើញសំខាន់ៗតែប៉ុណ្ណោះ

គុណភាពស៊ីជីនី -d –ឧបករណ៍ចាប់សញ្ញាសំខាន់ៗ –ទម្រង់ json –គុណភាពទិន្នផល.json

នៅពេល​ដែល​បាន​ផ្ទុក​ឡើង​ហើយ របាយការណ៍​គុណភាព​កូដ​ដូចគ្នា​នោះ​នឹង​បង្ហាញ​នៅ​ក្នុង​ផ្នែក​គុណភាព​នៃ dashboard: អាចច្រោះបាន ជាមួយនឹងព័ត៌មានលម្អិតដែលអាចរុញចេញបានក្នុងមួយការរកឃើញ បន្ទាត់គោល និងក្រុមឥរិយាបថរាយការណ៍ដូចគ្នាដែលប្រើរួចហើយសម្រាប់ SAST.

គុណភាពដំណើរការរួមជាមួយនឹងការស្កេនសុវត្ថិភាព

សម្រាប់ក្រុមដែលចង់បានសញ្ញាទាំងពីរពីការបញ្ជូនបាល់តែមួយ SAST ម៉ាស៊ីនស្កេនទទួលយក –រួមបញ្ចូលគុណភាព ទង់ជាតិ:

ស៊ីជីនី sast -d –រួមបញ្ចូលគុណភាព

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

ការស្កេនដោយគ្មានការតភ្ជាប់

សម្រាប់បរិស្ថានដែលមានចន្លោះប្រហោងខ្យល់ ឬកម្មវិធីដំណើរការ CI ដែលគ្មានការចេញទៅវេទិកា Xygeni ការស្កេនគុណភាពអាចដំណើរការក្នុងមូលដ្ឋាន ហើយត្រូវបានផ្ទុកឡើងនៅពេលក្រោយ៖

គុណភាពស៊ីជីនី -d -n គម្រោងរបស់ខ្ញុំ

# …ក្រោយមក ពីម៉ាស៊ីនមេដែលមានការតភ្ជាប់៖

xygeni report-upload -n MyProject -r depsdoctor-quality.json

ការរកឃើញស្ថិតនៅក្នុងផ្នែកគុណភាព ដូចដែលពួកវានឹងឃើញពីការស្កេនផ្ទាល់៖ ការជ្រើសរើសដូចគ្នា គោលការណ៍ដូចគ្នា ឥរិយាបថមូលដ្ឋានដូចគ្នា។

ហេតុអ្វីបានជាការរក្សាគុណភាពឱ្យដាច់ដោយឡែកពីសុវត្ថិភាពមានសារៈសំខាន់

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

សាកល្បងវា៖ គុណភាពកូដអាចរកបាននៅថ្ងៃនេះតាមរយៈ Xygeni CLI។ ក្រុមដែលកំពុងដំណើរការរួចហើយ ស៊ីជីនី sast អាចបន្ថែម –រួមបញ្ចូលគុណភាព ដែលមានស្រាប់របស់ពួកគេ។ pipeline ក្នុងជួរតែមួយ គ្មានឧបករណ៍ថ្មីដើម្បីដាក់ឱ្យដំណើរការ គ្មានឧបករណ៍ទីពីរ dashboard ត្រួតពិនិត្យ។

សំណួរដែលត្រូវបានសួរជាញឹកញាប់

តើគុណភាពកូដ Xygeni ជាអ្វី?

Xygeni Code Quality គឺជាម៉ាស៊ីនស្កេនវិភាគឋិតិវន្តដែលរកឃើញពិការភាពនៃការថែរក្សា និងភាពជឿជាក់ រួមទាំងក្លិនកូដ ការរំលោភលើភាពស្មុគស្មាញ កូដងាប់ និងការចម្លង។ វាដំណើរការជាពាក្យបញ្ជាផ្ទាល់ខ្លួន (គុណភាពអុកស៊ីហ្សែន) និងរាយការណ៍ទៅក្នុងផ្នែកគុណភាពដែលឧទ្ទិសដល់វេទិកា Xygeni ដែលដាច់ដោយឡែកពីការរកឃើញសុវត្ថិភាព។

តើគុណភាពកូដដូចគ្នាទេ? SAST?

លេខកូដលេខ គុណភាព និង SAST ចែករំលែកម៉ាស៊ីនវិភាគមូលដ្ឋានដូចគ្នា ប៉ុន្តែប្រើកាតាឡុកច្បាប់ឯករាជ្យ និងបង្កើតរបាយការណ៍ឯករាជ្យ។ SAST រកមើលចំណុចខ្សោយផ្នែកសុវត្ថិភាព; គុណភាពកូដរកមើលចំណុចខ្វះខាតនៃការថែទាំ និងភាពជឿជាក់។

តើខ្ញុំអាចដំណើរការការស្កេនដែលមានគុណភាព និងការស្កេនសុវត្ថិភាពក្នុងពេលតែមួយបានទេ?

បាទ/ចាស៎។ កំពុងរត់ ស៊ីជីនី sast -d –រួមបញ្ចូលគុណភាព ប្រតិបត្តិសំណុំច្បាប់ទាំងពីរក្នុងការបញ្ជូនតែមួយ ដែលមានប្រសិទ្ធភាពជាងការដំណើរការម៉ាស៊ីនស្កេនទាំងពីរដោយឡែកពីគ្នា ព្រោះវាចែករំលែកដំណាក់កាលវិភាគ។ លទ្ធផលនៅតែបង្កើតរបាយការណ៍ពីរដាច់ដោយឡែកពីគ្នា ហើយបង្ហាញជាពីរដាច់ដោយឡែកពីគ្នា។ dashboard ផ្នែក។

តើខ្ញុំត្រូវការអាជ្ញាប័ណ្ណដាច់ដោយឡែកសម្រាប់គុណភាពកូដដែរឬទេ?

ការផ្ទុកឡើង និងការមើលលទ្ធផលគុណភាពតម្រូវឱ្យមានសិទ្ធិគុណភាពកូដ ដែលជាសិទ្ធិដូចគ្នាដែលត្រូវការដើម្បីដំណើរការការស្កេន។

តើ Code Quality អាចដំណើរការបានដោយមិនចាំបាច់មានអ៊ីនធឺណិតទេ?

បាទ/ចាស៎។ ការស្កេនអាចដំណើរការក្នុងមូលដ្ឋានដោយមិនចាំបាច់ –ផ្ទុកឡើង ទង់ជាតិ ហើយរបាយការណ៍លទ្ធផលអាចត្រូវបានផ្ទុកឡើងនៅពេលក្រោយពីម៉ាស៊ីនដែលបានភ្ជាប់ដោយប្រើ ផ្ទុកឡើងរបាយការណ៍ xygeni។

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

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

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