តើ Fuzzing គឺជាអ្វី?

អ្វីដែលស្រពិចស្រពិល

សេចក្តីណែនាំ៖ អ្វីទៅជា Fuzzing?

ក្នុងឆ្នាំ 2014 ពួក Hacker ជនជាតិចិន លួចចូលទៅក្នុងប្រព័ន្ធសុខភាពសហគមន៍ដែលជាខ្សែសង្វាក់មន្ទីរពេទ្យអាមេរិករកប្រាក់ចំណេញ ហើយបានលួចទិន្នន័យអ្នកជំងឺ 4.5 លាននាក់។ ពួក Hacker បានទាញយកកំហុសមួយឈ្មោះថា Heartbleed ដែលត្រូវបានរកឃើញនៅក្នុងបណ្ណាល័យ OpenSSL cryptography ប៉ុន្មានខែមុនការ hack ។

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

នេះគឺជាកន្លែងដែល 'fuzzing' ចូលមក។

តើការវាយប្រហារ Fuzzing គឺជាអ្វី?

Fuzzing, fuzz testing, or a fuzzing attack គឺជាបច្ចេកទេសសាកល្បងកម្មវិធីដោយស្វ័យប្រវត្តិដែលប្រើដើម្បីផ្តល់ទិន្នន័យចៃដន្យ មិនបានរំពឹងទុក ឬមិនត្រឹមត្រូវ (ហៅថា fuzz) ទៅក្នុងកម្មវិធី។ កម្មវិធីនេះត្រូវបានត្រួតពិនិត្យសម្រាប់អាកប្បកិរិយាមិនធម្មតា ឬមិននឹកស្មានដល់ដូចជា ការផ្ទុកលើសចំណុះ ការគាំង ការលេចធ្លាយអង្គចងចាំ ការព្យួរខ្សែស្រឡាយ និងការបំពានសិទ្ធិចូលអាន/សរសេរ។ ឧបករណ៍ fuzzing ឬ fuzzer ត្រូវបានប្រើដើម្បីស្វែងរកមូលហេតុនៃអាកប្បកិរិយាមិនធម្មតា។

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

Fuzzers ត្រូវ​បាន​ប្រើ​នៅ​លើ​កម្មវិធី​ដែល​ទទួល​បាន​ការ​បញ្ចូល​រចនាសម្ព័ន្ធ​ឬ​មាន​ប្រភេទ​នៃ​ព្រំដែន​ការ​ទុក​ចិត្ត​មួយ​ចំនួន។ ឧទាហរណ៍ កម្មវិធីដែលទទួលយកឯកសារ PDF នឹងមានសុពលភាពមួយចំនួន ដើម្បីធានាថាឯកសារមានផ្នែកបន្ថែម .pdf និងញែកដើម្បីដំណើរការឯកសារ PDF ។

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

Fuzzers រកឃើញវ៉ិចទ័រវាយប្រហារស្រដៀងនឹង និងរួមទាំងការចូលចិត្ត SQL injection, cross-site scripting, buffer overflow និង denial-of-service attacks។ ការវាយប្រហារទាំងអស់នេះគឺជាលទ្ធផលនៃការផ្តល់ទិន្នន័យដែលមិនរំពឹងទុក មិនត្រឹមត្រូវ ឬចៃដន្យទៅក្នុងប្រព័ន្ធមួយ។ 

 

ប្រភេទនៃ Fuzzers

Fuzzers អាចត្រូវបានចាត់ថ្នាក់ដោយផ្អែកលើលក្ខណៈមួយចំនួន:

  1. វាយប្រហារគោលដៅ
  2. វិធីសាស្រ្តបង្កើត Fuzz
  3. ការយល់ដឹងអំពីរចនាសម្ព័ន្ធបញ្ចូល
  4. ការយល់ដឹងអំពីរចនាសម្ព័ន្ធកម្មវិធី

1. គោលដៅវាយប្រហារ

ការចាត់ថ្នាក់នេះគឺផ្អែកលើប្រភេទនៃវេទិកាដែល fuzzer កំពុងត្រូវបានប្រើប្រាស់ដើម្បីសាកល្បង។ Fuzzers ត្រូវបានប្រើជាទូទៅជាមួយពិធីការបណ្តាញ និងកម្មវិធីកម្មវិធី។ វេទិកានីមួយៗមានប្រភេទជាក់លាក់នៃការបញ្ចូលដែលវាទទួលបាន ហើយដូច្នេះទាមទារប្រភេទផ្សេងគ្នានៃ fuzzers ។

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

Fuzzers ដោះស្រាយជាមួយពិធីការទំនាក់ទំនងត្រូវតែដោះស្រាយជាមួយកញ្ចប់ព័ត៌មាន។ Fuzzers កំណត់គោលដៅលើវេទិកានេះអាចបង្កើតកញ្ចប់ព័ត៌មានក្លែងក្លាយ ឬសូម្បីតែដើរតួជាប្រូកស៊ីដើម្បីកែប្រែកញ្ចប់ព័ត៌មានដែលស្ទាក់ចាប់ និងចាក់សារឡើងវិញ។

2. វិធីសាស្រ្តបង្កើត Fuzz

Fuzzers ក៏អាចត្រូវបានចាត់ថ្នាក់ដោយផ្អែកលើរបៀបដែលពួកគេបង្កើតទិន្នន័យដើម្បី fuzz ជាមួយ។ ជាប្រវត្តិសាស្ត្រ ហ្វឺហ្សឺរបានបង្កើត fuzz ដោយបង្កើតទិន្នន័យចៃដន្យពីទទេ។ នេះជារបៀបដែលសាស្រ្តាចារ្យ Barton Miller ដែលជាអ្នកផ្តួចផ្តើមបច្ចេកទេសនេះ បានធ្វើដំបូង។ ប្រភេទនៃ fuzzer នេះត្រូវបានគេហៅថា a fuzzer ផ្អែកលើជំនាន់.

ទោះជាយ៉ាងណាក៏ដោយ ខណៈពេលដែលមនុស្សម្នាក់អាចបង្កើតទិន្នន័យតាមទ្រឹស្តីដែលនឹងឆ្លងកាត់ព្រំដែនដែលគួរឱ្យទុកចិត្ត វានឹងត្រូវការពេលវេលា និងធនធានយ៉ាងច្រើនដើម្បីធ្វើដូច្នេះ។ ដូច្នេះ វិធីសាស្រ្តនេះជាធម្មតាត្រូវបានប្រើសម្រាប់ប្រព័ន្ធដែលមានរចនាសម្ព័ន្ធបញ្ចូលសាមញ្ញ។

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

វិធីសាស្រ្តនេះគឺឆ្លាតជាងវិធីមុន ហើយកាត់បន្ថយការផ្លាស់ប្តូរដែលអាចកើតមាន។ Fuzzers ដែលប្រើវិធីនេះត្រូវបានគេហៅថា fuzzers ផ្អែកលើការផ្លាស់ប្តូរ

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

សំណុំទិន្នន័យដែលដំណើរការអាក្រក់បំផុតត្រូវបានដកចេញពីបណ្តុំទិន្នន័យ ខណៈពេលដែលល្អបំផុតត្រូវបានផ្លាស់ប្តូរ និង/ឬរួមបញ្ចូលគ្នា។ បន្ទាប់មក ទិន្នន័យជំនាន់ថ្មីត្រូវបានប្រើប្រាស់ដើម្បីសាកល្បង fuzz ម្តងទៀត។ fuzzers ទាំងនេះត្រូវបានគេហៅថា fuzzers ផ្អែកលើការផ្លាស់ប្តូរការវិវត្តន៍។

3. ការយល់ដឹងអំពីរចនាសម្ព័ន្ធបញ្ចូល

ការចាត់ថ្នាក់នេះគឺផ្អែកលើថាតើ fuzzer ដឹង និងប្រើប្រាស់យ៉ាងសកម្មនូវរចនាសម្ព័ន្ធបញ្ចូលរបស់កម្មវិធីក្នុងការបង្កើតទិន្នន័យ fuzz ដែរឬទេ។ ក fuzzer ល្ងង់ (fuzzer ដែលមិនដឹងពីរចនាសម្ព័ន្ធបញ្ចូលរបស់កម្មវិធី) បង្កើត fuzz ក្នុងទម្រង់ចៃដន្យ។ នេះអាចរួមបញ្ចូលទាំង fuzzers ជំនាន់ និងការផ្លាស់ប្តូរដោយផ្អែកលើការបំប្លែង។ 


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

4. ការយល់ដឹងអំពីរចនាសម្ព័ន្ធកម្មវិធី

Fuzzers ក៏អាចត្រូវបានចាត់ថ្នាក់ដោយផ្អែកលើថាតើពួកគេដឹងអំពីការងារផ្ទៃក្នុងរបស់កម្មវិធីដែលពួកគេកំពុងធ្វើឱ្យមានភាពស្រពិចស្រពិល និងប្រើការយល់ដឹងនោះដើម្បីជួយដល់ការបង្កើតទិន្នន័យ fuzz ។ នៅពេលដែល fuzzers ត្រូវបានប្រើដើម្បីសាកល្បងកម្មវិធីដោយមិនយល់ពីរចនាសម្ព័ន្ធខាងក្នុងរបស់វា វាត្រូវបានគេហៅថា black-box testing។ 

ទិន្នន័យ Fuzz ដែលត្រូវបានបង្កើតកំឡុងពេលធ្វើតេស្តប្រអប់ខ្មៅជាធម្មតាចៃដន្យ លុះត្រាតែ fuzzer គឺជា fuzzer ផ្អែកលើការផ្លាស់ប្តូរការវិវត្តន៍ ដែលវា 'រៀន' ដោយតាមដានឥទ្ធិពលនៃ fuzzer របស់វា និងប្រើប្រាស់វា ដើម្បីកែលម្អសំណុំទិន្នន័យ fuzz របស់វា។

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

ឧបករណ៍ Fuzzing ដ៏ពេញនិយម

មានភាពច្របូកច្របល់ជាច្រើន។ ឧបករណ៍​ដែល​មាន នៅទីនោះដែលប្រើដោយអ្នកសាកល្បងប៊ិច។ មួយចំនួននៃការពេញនិយមបំផុតគឺ:

ដែនកំណត់នៃការបំភាន់

ខណៈពេលដែល Fuzzing គឺជាបច្ចេកទេសសាកល្បងប៊ិចដ៏មានប្រយោជន៍មួយ វាមិនមែនដោយគ្មានកំហុសរបស់វានោះទេ។ ទាំងនេះខ្លះគឺ៖

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

 

យ៉ាង​ណា​ក៏​ដោយ វា​ជា​ឧបករណ៍​ដែល​មាន​ប្រយោជន៍ និង​ចាំបាច់​សម្រាប់​អ្នក​ណា​ដែល​ចង់​រក​ឃើញ​កំហុស​មុន​មនុស្ស​អាក្រក់។

សន្និដ្ឋាន

Fuzzing គឺជាបច្ចេកទេសសាកល្បងប៊ិចដ៏មានអានុភាពដែលអាចត្រូវបានប្រើដើម្បីបង្ហាញភាពងាយរងគ្រោះនៅក្នុងកម្មវិធី។ មានប្រភេទ fuzzers ជាច្រើនប្រភេទ ហើយ fuzzers ថ្មីកំពុងត្រូវបានបង្កើតឡើងគ្រប់ពេលវេលា។ ខណៈពេលដែល fuzzing គឺជាឧបករណ៍មានប្រយោជន៍មិនគួរឱ្យជឿ វាមានដែនកំណត់របស់វា។ ជាឧទាហរណ៍ Fuzzers អាចរកឃើញតែភាពងាយរងគ្រោះជាច្រើនប៉ុណ្ណោះ ហើយពួកវាអាចជាធនធានដែលពឹងផ្អែកខ្លាំង។ ទោះជាយ៉ាងណាក៏ដោយប្រសិនបើអ្នកចង់សាកល្បងបច្ចេកទេសដ៏អស្ចារ្យនេះដោយខ្លួនឯងយើងមាន ឥតគិតថ្លៃ DNS Fuzzer API ដែលអ្នកអាចប្រើនៅលើវេទិការបស់យើង។ 

ដូច្នេះតើអ្នកកំពុងរង់ចាំអ្វី? 

ចាប់​ផ្ដើម​ស្រពិចស្រពិល​ថ្ងៃ​នេះ!

រំលង TOR Censorship

ឆ្លងកាត់ការត្រួតពិនិត្យអ៊ីនធឺណិតជាមួយ TOR

ការឆ្លងកាត់ការត្រួតពិនិត្យអ៊ីនធឺណិតជាមួយនឹងការណែនាំ TOR នៅក្នុងពិភពលោកដែលការចូលប្រើព័ត៌មានត្រូវបានគ្រប់គ្រងកាន់តែខ្លាំង ឧបករណ៍ដូចជាបណ្តាញ Tor បានក្លាយជាកត្តាសំខាន់សម្រាប់

អាន​បន្ថែម "
អក្សរ Kobold៖ ការវាយប្រហារតាមអ៊ីមែលដែលមានមូលដ្ឋានលើ HTML

អក្សរ Kobold៖ ការវាយប្រហារតាមអ៊ីមែលដែលមានមូលដ្ឋានលើ HTML

Kobold Letters៖ ការវាយប្រហារតាមអ៊ីមែលដែលមានមូលដ្ឋានលើ HTML នៅថ្ងៃទី 31 ខែមីនា ឆ្នាំ 2024 ក្រុមហ៊ុន Luta Security បានចេញផ្សាយអត្ថបទមួយដែលបង្ហាញពន្លឺលើវ៉ិចទ័របន្លំដ៏ទំនើបថ្មីមួយគឺ អក្សរ Kobold ។

អាន​បន្ថែម "