ReDoS

ការពន្យល់អំពី ReDoS៖ តើ Regular Expression DoS ជាអ្វី និងវិធីការពារវា

កន្សោមធម្មតា DoS (ReDoS) គឺជាហានិភ័យដែលកំពុងកើនឡើងនៅក្នុង សុវត្ថិភាពកម្មវិធីទំនើបដោយសារតែក្រុមកាន់តែច្រើនពឹងផ្អែកលើការផ្ទៀងផ្ទាត់ការបញ្ចូល និងការផ្គូផ្គងលំនាំ regex ដែលរចនាមិនបានល្អអាចបង្កើតភាពងាយរងគ្រោះនៃដំណើរការ ដែលអ្នកវាយប្រហារអាចកេងប្រវ័ញ្ចដើម្បីធ្វើឱ្យសេវាកម្មយឺត ឬបណ្តាលឱ្យមានការដាច់ចរន្តអគ្គិសនី។ តាមពិតទៅ OWASP ។ ពិពណ៌នាអំពី ReDoS ថាជាការវាយប្រហារបដិសេធសេវាកម្ម ដែលកេងចំណេញពីការពិតដែលថាការអនុវត្ត regex ជាច្រើនអាចក្លាយទៅជាយឺតខ្លាំង ជួនកាលជាមួយនឹងពេលវេលាដំណើរការដែលកើនឡើងជាលំដាប់ជាមួយនឹងទំហំបញ្ចូល។

ក្នុងពេលជាមួយគ្នានេះ ការវាយប្រហារ ReDoS មានគ្រោះថ្នាក់ជាពិសេសនៅក្នុង cloud-native និង CI/CDបរិស្ថានដែលជំរុញដោយ - ដែល regex ងាយរងគ្រោះតែមួយនៅក្នុង API ច្រកផ្លូវ ឬលំហូរផ្ទៀងផ្ទាត់អាចប៉ះពាល់ដល់ភាពអាចរកបានក្នុងទ្រង់ទ្រាយធំ។ សម្រាប់ហេតុផលនេះ ក្រុមគួរតែចាត់ទុក ReDoS ជាហានិភ័យនៃភាពអាចរកបានពិតប្រាកដ មិនមែនគ្រាន់តែជាករណីគែមពិសេសនោះទេ។

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

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

តើ ReDoS (កន្សោមធម្មតា DoS) ជាអ្វី?

ReDoS (Regular Expression Denial of Service) គឺជាចំណុចខ្សោយមួយដែលកើតឡើងនៅពេលដែលលំនាំ regex បណ្តាលឱ្យមានការ backtrack ច្រើនពេក ដែលនាំឱ្យមានពេលវេលាប្រតិបត្តិអិចស្ប៉ូណង់ស្យែល។

និយាយឱ្យសាមញ្ញទៅ ការបញ្ចូលដែលមានគំនិតអាក្រក់អាចបង្ខំឱ្យកម្មវិធីរបស់អ្នកចំណាយពេលច្រើនក្នុងការវាយតម្លៃ regex រារាំងប្រព័ន្ធ និងធ្វើឱ្យខូចដំណើរការ។

ឧទាហរណ៍ លំនាំដែលមានឧបករណ៍វាស់បរិមាណដែលដាក់ចូលគ្នាដូចជា៖

				
					(a+)+
				
			

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

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

របៀបដែលការវាយប្រហារ ReDoS ដំណើរការ

ការវាយប្រហារ ReDoS មិនត្រូវការការកេងប្រវ័ញ្ចកម្រិតខ្ពស់ទេ។ ផ្ទុយទៅវិញ វារំលោភលើឥរិយាបថម៉ាស៊ីន regex ដែលអាចព្យាករណ៍បាន។

ការថយក្រោយដ៏មហន្តរាយ

អ្នកវាយប្រហារកំណត់គោលដៅលើ regex ដែលអាចយកផ្លូវដែលត្រូវគ្នាច្រើន។ បន្ទាប់មកពួកគេផ្តល់ធាតុចូលដែលបង្ខំឱ្យម៉ាស៊ីនរុករកផ្លូវភាគច្រើន ឬទាំងអស់។

ការបញ្ចូលដែលបង្កើតឡើងដោយអ្នកវាយប្រហារ

អ្នកវាយប្រហារជាធម្មតាផ្ញើ៖

  • ខ្សែអក្សរវែងៗដែលមានតួអក្សរដដែលៗ។
  • ការបញ្ចូលដែលស្ទើរតែត្រូវគ្នា បន្ទាប់មកបរាជ័យនៅទីបញ្ចប់។
  • បន្ទុកដែលផ្តោតលើផ្នែកមិនច្បាស់លាស់បំផុតនៃគំរូ។

ការថយចុះការសម្តែង

ដោយសារតែសំណើនីមួយៗអាចដុត CPU បាន ប្រសិទ្ធភាពនឹងកើនឡើងយ៉ាងឆាប់រហ័ស៖

  • ភាពយឺតយ៉ាវខ្ពស់ជាងនៅទូទាំងចំណុចបញ្ចប់។
  • ការអស់កម្លាំងនៃអាងខ្សែស្រឡាយ។
  • រង្វិលជុំព្រឹត្តិការណ៍ជាប់គាំងនៅក្នុងពេលដំណើរការខ្សែតែមួយ។

ការវាយប្រហារទាំងនេះមិនតម្រូវឱ្យមានការវាយប្រហារស្មុគស្មាញទេ។ ផ្ទុយទៅវិញ ពួកវាទាញយកអត្ថប្រយោជន៍ពីការផ្គូផ្គងលំនាំដែលគ្មានប្រសិទ្ធភាព ដែលធ្វើឱ្យពួកវាពិបាកកត់សម្គាល់ ប្រសិនបើឧបករណ៍របស់អ្នកគ្រាន់តែពិនិត្យមើលវាក្យសម្ព័ន្ធ ឬ CVE ដែលគេស្គាល់។

ធ្វើឡើងវិញ

ផលប៉ះពាល់ជាក់ស្តែងនៃភាពងាយរងគ្រោះរបស់ ReDoS

ReDoS ស្ថិតនៅលើចំណុចសំខាន់បីរបស់ CIA៖ ភាពអាចរកបាន។ វាអាចមើលទៅដូចជាបញ្ហាស្ថេរភាព មិនមែនជាឧប្បត្តិហេតុសុវត្ថិភាពទេ រហូតដល់អ្នកភ្ជាប់ចំណុចទាំងនោះ។

ការថយចុះល្បឿន API

ចំណុចបញ្ចប់តែមួយដែលប្រើ regex ដែលងាយរងគ្រោះអាចបង្កើន CPU អំឡុងពេលផ្ទៀងផ្ទាត់ការបញ្ចូល ការបញ្ជូនសំណើ ឬការត្រួតពិនិត្យការអនុញ្ញាត។

ការដាច់សេវាកម្ម

នៅក្រោមបន្ទុក ចំណុចក្តៅ ReDoS អាចធ្វើឱ្យ pods ចាប់ផ្តើមឡើងវិញ ធ្វើឱ្យខូចការធ្វើមាត្រដ្ឋានដោយស្វ័យប្រវត្តិ និងបង្កឱ្យមានការបរាជ័យជាបន្តបន្ទាប់។

ការអស់កម្លាំងធនធាន

ReDoS អាចប្រើប្រាស់៖

  • ស៊ីភីយូនៅលើណូតកម្មវិធី។
  • ការចងចាំដោយសារតែស្ថានភាពថយក្រោយ។
  • ខ្សែស្រឡាយកម្មករដែលរារាំងសំណើផ្សេងទៀត។

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

ការបំបែកការផ្លាស់ប្តូរគឺជាបញ្ហាទំនុកចិត្តពិតប្រាកដ

នៅពេលដែលអ្នកអភិវឌ្ឍន៍និយាយថាពួកគេមិនទុកចិត្តលើ autofix ទេ ពួកគេច្រើនតែចង់មានន័យរឿងជាក់លាក់មួយ៖ ពួកគេមិនទុកចិត្តថាវាមិនធ្វើឱ្យខូចអ្វីមួយនោះទេ។

បញ្ហា​ទំនុកចិត្ត​នោះ​អាច​មើលឃើញ​ច្បាស់​បំផុត​នៅក្នុង​ការដោះស្រាយ​ភាពអាស្រ័យ។

កញ្ចប់ដែលងាយរងគ្រោះអាចមានកំណែដែលបានបំណះដែលអាចប្រើបាន ប៉ុន្តែនោះមិនមានន័យថាការធ្វើឱ្យប្រសើរឡើងមានសុវត្ថិភាពនោះទេ។ ការចេញផ្សាយដែលបានបំណះអាចលុបវិធីសាស្ត្រដែលកម្មវិធីរបស់អ្នកប្រើ។ វាអាចប្តូរឈ្មោះ API ។ វាអាចរឹតបន្តឹងកិច្ចសន្យាប្រភេទ។ វាអាចកែប្រែឥរិយាបថតាមរបៀបដែលឆ្លងកាត់ការធ្វើតេស្តឯកតា ប៉ុន្តែបណ្តាលឱ្យមានការថយចុះផលិតកម្ម។ នៅក្នុងក្រុមជាច្រើន ថ្លៃដើមជាក់ស្តែងនៃការស្តារឡើងវិញមិនមែនជាការអនុវត្តបំណះនោះទេ។ វាកំពុងស៊ើបអង្កេតកាំផ្ទុះ។

សូមពិចារណាឧទាហរណ៍សាមញ្ញមួយនៅក្នុង Java។ មូលដ្ឋានកូដអាស្រ័យលើបណ្ណាល័យដែលមានវិធីសាស្ត្រទូទៅនៅក្នុងកំណែ 1.x ប៉ុន្តែត្រូវបានដកចេញនៅក្នុងកំណែ 2.x។

ការវាយប្រហារ ReDoS និងឧប្បត្តិហេតុសន្តិសុខក្នុងពិភពពិត

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

ខាងក្រោមនេះជាឧទាហរណ៍គួរឱ្យកត់សម្គាល់មួយចំនួនដែលបង្ហាញពីផលប៉ះពាល់នៃគំរូ regex ដែលគ្មានប្រសិទ្ធភាព៖

ភាពងាយរងគ្រោះរបស់ Moment.js ReDoS

ចំណុចខ្សោយ ReDoS មួយក្នុងចំណោមចំណុចខ្សោយដែលល្បីបំផុតត្រូវបានរងផលប៉ះពាល់ Moment.jsដែលជាបណ្ណាល័យកាលបរិច្ឆេទ JavaScript ដែលប្រើប្រាស់យ៉ាងទូលំទូលាយ។

  • លំនាំ regex ដែលរចនាមិនបានល្អបណ្តាលឱ្យមានការថយក្រោយច្រើនហួសហេតុ
  • អ្នកវាយប្រហារអាចបង្កឱ្យមានការប្រើប្រាស់ CPU ខ្ពស់ជាមួយនឹងការបញ្ចូលដែលបានបង្កើត
  • កម្មវិធីដែលប្រើ Moment.js ងាយរងគ្រោះដោយសារលក្ខខណ្ឌ denial-of-service

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

បណ្ណាល័យ​កម្មវិធី​ផ្ទៀងផ្ទាត់ Node.js (validator.js)

ឧទាហរណ៍មួយទៀតដែលពាក់ព័ន្ធ សុពលភាពដែលត្រូវបានគេប្រើជាទូទៅសម្រាប់ការផ្ទៀងផ្ទាត់ការបញ្ចូល។

  • មុខងារផ្ទៀងផ្ទាត់មួយចំនួនពឹងផ្អែកលើ regex ដែលគ្មានប្រសិទ្ធភាព
  • ការបញ្ចូលមេរោគអាចពន្យារពេលការអនុវត្តយ៉ាងខ្លាំង
  • នេះបានប៉ះពាល់ដល់ API និងសេវាកម្ម backend ដែលពឹងផ្អែកលើការផ្ទៀងផ្ទាត់ការបញ្ចូលរបស់អ្នកប្រើប្រាស់

ដោយសារតែ validator.js ត្រូវបានប្រើប្រាស់យ៉ាងទូលំទូលាយ ផលប៉ះពាល់បានពង្រីកពាសពេញកម្មវិធី និងសេវាកម្មជាច្រើន។

ការដាច់ចរន្តអគ្គិសនីរបស់ Cloudflare (ការបរាជ័យផ្អែកលើ Regex)

ហេតុការណ៍​ដ៏​លេចធ្លោ​មួយ​បាន​កើតឡើង Cloudflareដែលលំនាំ regex ដែលមានបញ្ហាបានបណ្តាលឱ្យមានការដាច់ចរន្តអគ្គិសនីយ៉ាងខ្លាំង។

  • regex ដែលបានដាក់ពង្រាយនៅក្នុងផលិតកម្មបានបង្កឱ្យមានការប្រើប្រាស់ CPU ច្រើនហួសប្រមាណ
  • ប្រព័ន្ធនានាបានក្លាយទៅជាគ្មានការឆ្លើយតបទូទាំងពិភពលោក
  • ផ្នែកធំនៃអ៊ីនធឺណិតត្រូវបានរងផលប៉ះពាល់ជាបណ្ដោះអាសន្ន

ទោះបីជាមិនមែនជាការវាយប្រហារដែលមានគំនិតអាក្រក់ក៏ដោយ ឧប្បត្តិហេតុនេះបង្ហាញយ៉ាងច្បាស់ពីរបៀបដែលភាពគ្មានប្រសិទ្ធភាពរបស់ regex អាចមានផលវិបាកក្នុងពិភពពិតក្នុងទ្រង់ទ្រាយធំ។

ហេតុអ្វីបានជាឧបករណ៍សុវត្ថិភាពបែបប្រពៃណីខកខាន ReDoS

នេះ​ជា​ផ្នែក​បម្លែង​ពី​ព្រោះ​វា​ពន្យល់​ពី​គម្លាត​ដែល​ក្រុម​ភាគច្រើន​មាន​អារម្មណ៍៖ ម៉ាស៊ីន​ស្កេន​ដំណើរការ dashboards បំពេញ ហើយ ReDoS នៅតែរអិលចេញ។

ឧបករណ៍ឋិតិវន្តផ្តោតលើវាក្យសម្ព័ន្ធ

ម៉ាស៊ីនស្កេនជាច្រើនអាចដាក់សញ្ញាសម្គាល់ "លំនាំ regex ដ៏គ្រោះថ្នាក់" ប៉ុន្តែជារឿយៗពួកគេខ្វះទំនុកចិត្តអំពីថាតើលំនាំនោះអាចកេងប្រវ័ញ្ចបានពិតប្រាកដនៅក្នុងបរិបទរបស់អ្នកឬអត់។

គ្មានបរិបទប្រតិបត្តិទេ

ReDoS គឺនិយាយអំពីឥរិយាបថពេលដំណើរការ។ OWASP កត់សម្គាល់ថាការអនុវត្ត regex ជាច្រើនអាចឈានដល់ស្ថានភាពធ្ងន់ធ្ងរ និងដំណើរការយឺតណាស់ ជួនកាលទាក់ទងនឹងទំហំបញ្ចូលអិចស្ប៉ូណង់ស្យែល។
ប្រសិនបើឧបករណ៍មួយមិនដែលវែកញែកអំពីរូបរាងបញ្ចូល លក្ខខណ្ឌបរាជ័យនៃការផ្គូផ្គង ឬផ្លូវប្រតិបត្តិទេ វានឹងខកខានហានិភ័យ ឬធ្វើឱ្យអ្នកលង់ទឹកដោយលទ្ធផលវិជ្ជមានមិនពិត។

គ្មានការវិភាគអំពីភាពអាចកេងប្រវ័ញ្ច

regex អាចមាន "ហានិភ័យតាមទ្រឹស្តី" ប៉ុន្តែមិនអាចទៅដល់ក្នុងការអនុវត្តបានទេ។ ផ្ទុយទៅវិញ កម្មវិធីផ្ទៀងផ្ទាត់ "តូច" នៅក្នុងចំណុចបញ្ចប់សាធារណៈអាចជាឧប្បត្តិហេតុពិតប្រាកដមួយ។ បើគ្មានបរិបទទេ ក្រុមនានាអាចមិនអើពើនឹងការជូនដំណឹង ឬជួសជុលលើសកម្រិត។

ម៉ាស៊ីនស្កេនបែបប្រពៃណីច្រើនតែបរាជ័យក្នុងការរកឃើញ ReDoS ពីព្រោះពួកគេមិនវាយតម្លៃពីរបៀបដែល regex មានឥរិយាបទនៅពេលដំណើរការ ឬក្រោមលក្ខខណ្ឌបញ្ចូលដែលមានគំនិតអាក្រក់។ នេះជាកន្លែងដែលវេទិកាដូចជា Xygeni បង្កើតភាពខុសគ្នាដោយការរួមបញ្ចូលគ្នានូវការវិភាគជាមួយ ការវាយតម្លៃហានិភ័យបរិបទជួយក្រុមឱ្យយល់ថាតើចំណុចខ្សោយមួយពិតជាអាចសម្រេចបាន និងមានឥទ្ធិពលឬអត់។

របៀបរកឃើញចំណុចខ្សោយរបស់ ReDoS

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

ការរចនា regex ប្រកបដោយសុវត្ថិភាព

ចាប់ផ្តើមជាមួយលំនាំដែលកាត់បន្ថយភាពមិនច្បាស់លាស់។ ជៀសវាងឧបករណ៍វាស់បរិមាណដែលដាក់គ្នា និងជម្រើសដែលត្រួតស៊ីគ្នា។

ការបំភាយ និងការធ្វើតេស្ត

សាកល្បងលំនាំ regex ជាមួយ៖

  • ការបញ្ចូលវែងណាស់។
  • ការបញ្ចូល​ស្ទើរតែ​ខកខាន​ដែល​បរាជ័យ​នៅ​ពេល​ក្រោយ។
  • ថូខឹនដដែលៗដែលត្រូវបានរចនាឡើងដើម្បីបង្កឱ្យមានការតាមដានថយក្រោយ។

ការវិភាគឋិតិវន្ត

ប្រើប្រាស់ការវិភាគដែលដាក់ទង់ជាតិលើសំណង់ និងលំនាំដែលមានហានិភ័យដែលគេស្គាល់ ដែលស្របនឹង CWE-1333.

ការផ្ទៀងផ្ទាត់ពេលដំណើរការ

អនុវត្តដែនកំណត់ប្រវែងបញ្ចូល និងការអស់ពេលជុំវិញការវាយតម្លៃ regex នៅពេលដែលអាចធ្វើទៅបាន។ ការណែនាំអំពីការផ្ទៀងផ្ទាត់ការបញ្ចូលរបស់ OWASPe ព្រមានយ៉ាងច្បាស់អំពី ReDoS និងគូសបញ្ជាក់ពីសារៈសំខាន់នៃការកំណត់ប្រវែងបញ្ចូលអប្បបរមា និងអតិបរមា។

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

របៀបការពារការវាយប្រហារ ReDoS

ការបង្ការគឺជាការរួមបញ្ចូលគ្នានៃគំរូដែលមានសុវត្ថិភាពជាងមុន ការបញ្ចូលដែលមានសុវត្ថិភាពជាងមុន និងជម្រើសពេលដំណើរការដែលមានសុវត្ថិភាពជាងមុន។

ជៀសវាង​ឧបករណ៍​វាស់​បរិមាណ​ដែល​ដាក់​គ្នា

ការធ្វើម្តងទៀតដែលដាក់ចូលគ្នាច្រើនតែបង្កើតការផ្ទុះថយក្រោយដ៏អាក្រក់បំផុត។

កំណត់ទំហំបញ្ចូល

នេះគឺជាការកាត់បន្ថយដ៏សាមញ្ញបំផុត និងគួរឱ្យទុកចិត្តបំផុត។ កំណត់ដែនកំណត់ប្រវែងអតិបរមាសម្រាប់ធាតុចូលដែលឆ្លងកាត់ការផ្ទៀងផ្ទាត់ regex។ OWASP គូសបញ្ជាក់ពីដែនកំណត់ប្រវែងជាផ្នែកសំខាន់នៃការផ្ទៀងផ្ទាត់ការបញ្ចូលដោយសុវត្ថិភាព។

ប្រើម៉ាស៊ីន regex ដែលមានសុវត្ថិភាពតាមដែលអាចធ្វើទៅបាន

នៅពេលដែលអ្នកអាចជ្រើសរើសម៉ាស៊ីនបាន សូមជ្រើសរើសម៉ាស៊ីនដែលត្រូវបានរចនាឡើងដើម្បីជៀសវាងការថយក្រោយដ៏មហន្តរាយ។ RE2 របស់ Google ត្រូវបានដាក់ជាជម្រើសដែលមានសុវត្ថិភាពជំនួសឱ្យម៉ាស៊ីន regex ដែលតាមដានថយក្រោយ។

ផ្ទៀងផ្ទាត់​ការបញ្ចូល​ជាមួយ​ការត្រួតពិនិត្យ​ជាស្រទាប់ៗ

កុំពឹងផ្អែកលើ regex តែមួយសម្រាប់ការផ្ទៀងផ្ទាត់ទាំងអស់។ ផ្សំ៖

  • បញ្ជីអនុញ្ញាតតួអក្សរ
  • ការត្រួតពិនិត្យប្រវែងយ៉ាងតឹងរ៉ឹង
  • និងលំនាំសាមញ្ញជាងក្នុងមួយវាល។

ការទប់ស្កាត់ ReDoS តម្រូវឱ្យមានការអនុវត្តការសរសេរកូដដែលមានសុវត្ថិភាព និង ការផ្ទៀងផ្ទាត់ជាបន្តបន្ទាប់ពេញមួយវដ្តជីវិតអភិវឌ្ឍន៍ជាពិសេសនៅពេលដែលកម្មវិធីមានមាត្រដ្ឋាន និងការពឹងផ្អែកកើនឡើង។

របៀបដែល Xygeni ជួយរកឃើញ និងការពារ ReDoS

Xygeni ជួយក្រុម DevSecOps រកឃើញ និងការពារភាពងាយរងគ្រោះរបស់ ReDoS ដោយការរួមបញ្ចូលគ្នានូវស្រទាប់វិភាគច្រើន។

សមត្ថភាពសំខាន់ៗរួមមាន:

  • ការរកឃើញលំនាំ regex ដែលងាយរងគ្រោះអំឡុងពេលអភិវឌ្ឍន៍
  • ការវិភាគលំហូរទិន្នន័យ និងផ្លូវប្រតិបត្តិ
  • ការកំណត់អត្តសញ្ញាណចំណុចខ្សោយដែលអាចកេងប្រវ័ញ្ចបាន មិនមែនគ្រាន់តែជាចំណុចខ្សោយទ្រឹស្តីនោះទេ
  • ការរួមបញ្ចូលទៅក្នុង CI/CD pipelines សម្រាប់ការស្កេនជាបន្តបន្ទាប់
  • ការណែនាំអំពីការដោះស្រាយដែលអាចអនុវត្តបានសម្រាប់អ្នកអភិវឌ្ឍន៍

ជំនួសឱ្យការធ្វើឱ្យក្រុមមានការជូនដំណឹងច្រើនពេក Xygeni ផ្តល់អាទិភាពដល់ ចំណុចខ្សោយដែលអាចទៅដល់បាន និងមានឥទ្ធិពល។

នេះអនុញ្ញាតឱ្យក្រុមជួសជុលបញ្ហាពិតប្រាកដបានលឿនជាងមុន ដោយមិនធ្វើឱ្យការអភិវឌ្ឍន៍ថយចុះ។

ការអនុវត្តល្អបំផុតសម្រាប់ក្រុម DevSecOps

សន្ដិសុខប្តូរវេនឆ្វេង

ធ្វើឱ្យការត្រួតពិនិត្យ ReDoS ជាផ្នែកមួយនៃទម្លាប់ដូចគ្នានឹងការពិនិត្យកូដ និងការធ្វើតេស្តឯកតា។

ស្កេនដោយស្វ័យប្រវត្តិ

អនុវត្តការត្រួតពិនិត្យលើរាល់ pull request ដូច្នេះហានិភ័យ regex មិនរង់ចាំការពិនិត្យឡើងវិញតាមកាលកំណត់ទេ។

ការពឹងផ្អែកត្រួតពិនិត្យ

ចំណុចខ្សោយរបស់ Regex ក៏លេចឡើងនៅក្នុងបណ្ណាល័យ dependencies និង input parsing libraries ដែរ ដូច្នេះត្រូវរក្សាអនាម័យ dependency ឲ្យបានតឹងរ៉ឹង។

ផ្ទៀងផ្ទាត់​ការបញ្ចូល​ជាបន្តបន្ទាប់

អនុវត្តដែនកំណត់ប្រវែង និងច្បាប់បញ្ចូលនៅគែម បន្ទាប់មកផ្ទៀងផ្ទាត់ម្តងទៀតនៅខាងក្នុងសេវាកម្មសំខាន់ៗ។

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

ការបង្ការ ReDoS ចាប់ផ្តើមជាមួយនឹងភាពមើលឃើញដោយគ្មានស្រមោល

ReDoS ត្រូវបានគេមើលរំលងជាញឹកញាប់ ប៉ុន្តែវាអាចមានឥទ្ធិពលយ៉ាងសំខាន់ទៅលើដំណើរការ និងភាពអាចរកបាននៃកម្មវិធី។ OWASP កំណត់ ReDoS ជាហានិភ័យនៃការបដិសេធសេវាកម្មដែលមានឫសគល់នៅក្នុងឥរិយាបថ regex runtime ខ្លាំង។
នោះមានន័យថាអ្នកត្រូវការច្រើនជាងការស្កេនជាមូលដ្ឋាន។ អ្នកត្រូវការបរិបទ ការកំណត់អាទិភាព និងស្វ័យប្រវត្តិកម្ម។

ប្រសិនបើអ្នកចាត់ទុក regex ដូចជាកូដដែលអាចបរាជ័យក្រោមការបញ្ចូលដែលគ្រប់គ្រងដោយអ្នកវាយប្រហារ អ្នកនឹងចាប់បាន ReDoS លឿនជាងមុន និងបញ្ជូនប្រព័ន្ធដែលមានសុវត្ថិភាពជាងមុន។ ជាមួយ Xygeni ក្រុមអាចកាត់បន្ថយសំឡេងរំខាន ផ្តល់អាទិភាពដល់ហានិភ័យពិតប្រាកដ និងពង្រឹងការគ្រប់គ្រង AppSec នៅខាងក្នុង។ CI/CD លំហូរការងារ។

សន្និដ្ឋាន

ចំណុចខ្សោយរបស់ ReDoS ងាយស្រួលណែនាំ និងពិបាករកឃើញដោយគ្មានបរិបទត្រឹមត្រូវ។

ខណៈពេលដែលឧបករណ៍ប្រពៃណីផ្តោតលើការកំណត់អត្តសញ្ញាណបញ្ហា AppSec ទំនើបទាមទារការយល់ដឹងថាតើចំណុចខ្សោយណាខ្លះដែលពិតជាសំខាន់។

ដូច្នេះ ដើម្បី​នៅ​នាំមុខគេ ក្រុមនានាត្រូវការភាពមើលឃើញ ការកំណត់អាទិភាព និងស្វ័យប្រវត្តិកម្មដែលធ្វើការជាមួយគ្នាពេញមួយវដ្តជីវិតនៃការអភិវឌ្ឍន៍។

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

នៅទីបំផុត ការបង្កើតកម្មវិធីដែលមានសុវត្ថិភាពនាពេលបច្ចុប្បន្ននេះមានន័យថា លើសពីការស្កេន និងការអនុម័តវិធីសាស្រ្តសុវត្ថិភាពតាមបរិបទ និងពេលវេលាជាក់ស្តែង។

ចាប់ផ្តើមបង្កើតកម្មវិធីដែលមានសុវត្ថិភាព និងធន់ជាមួយ ការរកឃើញជាក់ស្តែង និងសុវត្ថិភាពបរិបទ។

សំនួរចំលើយ (FAQ)

តើការវាយប្រហារ ReDoS ជាអ្វី?

ការវាយប្រហារ ReDoS (Regular Expression Denial of Service) គឺជាប្រភេទនៃភាពងាយរងគ្រោះដែលលំនាំ regex ដែលគ្មានប្រសិទ្ធភាពអាចត្រូវបានកេងប្រវ័ញ្ចដើម្បីបណ្តាលឱ្យមានពេលវេលាដំណើរការហួសប្រមាណ ដែលនាំឱ្យមានការថយចុះដំណើរការ ឬការគាំងកម្មវិធី។

ហេតុអ្វីបានជា ReDoS មានគ្រោះថ្នាក់នៅក្នុងកម្មវិធីទំនើបៗ?

ការវាយប្រហារ ReDoS អាចប៉ះពាល់ដល់ភាពអាចរកបាននៃកម្មវិធីដោយការប្រើប្រាស់ធនធាន CPU និងធ្វើឱ្យសេវាកម្មយឺត។ នៅក្នុងបរិស្ថានដើមលើពពក នេះអាចកើនឡើងយ៉ាងឆាប់រហ័សទៅជាបញ្ហាដំណើរការទូទាំងប្រព័ន្ធ។

តើអ្នកអភិវឌ្ឍន៍អាចការពារភាពងាយរងគ្រោះរបស់ ReDoS យ៉ាងដូចម្តេច?

អ្នកអភិវឌ្ឍន៍អាចការពារ ReDoS ដោយជៀសវាងលំនាំ regex ស្មុគស្មាញ កំណត់ទំហំបញ្ចូល ប្រើប្រាស់ម៉ាស៊ីន regex ដែលមានសុវត្ថិភាព និងបញ្ចូលការត្រួតពិនិត្យសុវត្ថិភាពទៅក្នុង... CI/CD pipelines.

តើឧបករណ៍សុវត្ថិភាពបែបប្រពៃណីអាចរកឃើញ ReDoS បានទេ?

ឧបករណ៍ប្រពៃណីភាគច្រើនពិបាករកឃើញ ReDoS ពីព្រោះពួកវាមិនវិភាគឥរិយាបថពេលដំណើរការ ឬភាពអាចកេងប្រវ័ញ្ចបាន។ ដំណោះស្រាយ AppSec កម្រិតខ្ពស់ផ្តល់នូវការរកឃើញកាន់តែប្រសើរឡើងដោយការវាយតម្លៃពីរបៀបដែលកូដដំណើរការក្នុងសេណារីយ៉ូពិត។

តើ Xygeni ជួយការពារការវាយប្រហារ ReDoS យ៉ាងដូចម្តេច?

Xygeni រកឃើញលំនាំ regex ដែលងាយរងគ្រោះ វិភាគផ្លូវប្រតិបត្តិ និងផ្តល់អាទិភាពដល់ហានិភ័យដែលអាចកេងប្រវ័ញ្ចបាន។ វារួមបញ្ចូលទៅក្នុង CI/CD pipelineនិងផ្តល់ការណែនាំអំពីការដោះស្រាយដែលអាចអនុវត្តបានដល់អ្នកអភិវឌ្ឍន៍។

អំពី​អ្នកនិពន្ធ

សហស្ថាបនិក និង CTO

Fatima Said មានជំនាញខាងខ្លឹមសារដែលផ្តោតលើអ្នកអភិវឌ្ឍន៍ជាចម្បងសម្រាប់ AppSec, DevSecOps និង software supply chain securityនាងប្រែក្លាយសញ្ញាសុវត្ថិភាពស្មុគស្មាញទៅជាការណែនាំច្បាស់លាស់ និងអាចអនុវត្តបាន ដែលជួយក្រុមនានាឱ្យកំណត់អាទិភាពបានលឿនជាងមុន កាត់បន្ថយសំឡេងរំខាន និងបញ្ជូនលេខកូដដែលមានសុវត្ថិភាពជាងមុន។

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

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

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