តើអ្វីទៅជាការប្រកួត CTF (Capture The Flag)
តើអ្វីទៅជាការប្រកួត CTF (Capture The Flag)
ប្រែសម្រួលដោយ លោក គឺម អាន ប្រធានការិយាល័យ CamCERT
អត្ថបទមួយនេះត្រូវបានរៀបចំឡើងសម្រាប់អ្នកដែលមិនទាន់ស្គាល់ថាអ្វីទៅជា CTF ខ្ញុំនឹងពន្យល់អំពីមូលដ្ឋានគ្រឹះ នៃ CTF ដើម្បីផ្តល់ឱ្យអ្នកយល់ដឹងព័ត៌មានលម្អិត និងយល់ដឹងកាន់តែច្បាស់ អត្ថបទនេះផងដែរក៏ជាព័ត៌មានមួយសម្រាប់លើកទឹកចិត្តអ្នកឱ្យចូលរួមការប្រកួត CTF និងដើម្បីយល់ថាតើការចូលប្រកួតនេះផ្តល់អត្ថប្រយោជន៍អ្វីខ្លះ។ CTFs គឺជាព្រឹត្តិការណ៍ប្រកួតប្រជែងដែលត្រូវបានរៀបចំជាញឹកញាប់នៅតាមសន្និសីទសន្តិសុខបច្ចេកវិទ្យាគមនាគមន៍ និងព័ត៌មាន (Cybersecurity Conferences) ដោយបច្ចុប្បន្ននេះព្រឹត្តិការណ៍បែបនេះត្រូវបានគេរៀបចំកាន់តែច្រើនឡើងៗ ដែលអ្នកអាចធ្វើការចុះឈ្មោះ ប្រកួតអនឡាញតាមបណ្តាវេបសាយមួយចំនួនដូចជា ctftime, picoctf, BSides San Francisco CTF ជាដើម។
CTFs អាចត្រូវបានគេបែងចែកជាពីរប្រភេទគឺ Jeopardy Style និង Attack and Defend Style ពេលនេះខ្ញុំសូមលើកយកតែប្រភេទ Jeopardy Style ដែលវាមានភាពងាយស្រួលជាងយល់ជាងនៅពេលអ្នកចាប់ផ្តើមស្វែងយល់ដំបូងអំពី CTF។ ការប្រកួតប្រភេទនេះគឺមាននូវសំណួរ (Challenges) ជាច្រើនចាប់ពីកម្រិតស្រាលរហូតដល់ពិបាក ដែលតម្រូវឱ្យអ្នកចូលរួមប្រកួតត្រូវមានចំណេះដឹងច្រើនមុខដើម្បីអាចដោះស្រាយសំណួរបាន អ្នកប្រកួត CTF ត្រូវដោះស្រាយនូវសំណួរដើម្បីទទួលបាននូវ ចំលើយ ឬហៅថា “Flag” ដើម្បីទទួលបានពិន្ទុ។ ការចូលរួមប្រកួត CTF អាចចុះឈ្មោះលេងម្នាក់ឯង ឬលេងជាក្រុមដើម្បីដោះស្រាយសំណួរងាយស្រួលមួយចំនួនដោយខ្លួនឯង ឬសហការណ៍គ្នាជាក្រុមដើម្បីដោះស្រាយសំណួរដែលមានកម្រិតពិបាក (ដែលមានពិន្ទុច្រើន)។
ការប្រកួត CTF ជាទូទៅត្រូវបានកំណត់ពេលវេលា ហើយពិន្ទុត្រូវបានសរុបពេលចប់ការប្រកួត អ្នកប្រកួត ឬក្រុមដែលឈ្នះ គឺជាអ្នកដែលបានដោះស្រាយនូវសំណួរបានពិន្ទុច្រើន ដើម្បីការពារពិន្ទុរបស់គេអោយស្ថិតនៅលេខមួយក្នុងតារាងលទ្ធផល។
ខាងក្រោមនេះគឺឧទាហរណ៍ នៃតារាងពិន្ទុការប្រកួត Cyber Sea Game 2015 លើកទី១ នៅកម្ពុជា
CTF ជាញឹកញាប់ត្រូវបានគេបង្កើតសំណួរដោយផ្អែកលើឧប្បត្តិហេតុ ឬភាពងាយរងគ្រោះកំពុងតែកើតមានពិតប្រាកដ ដែលផ្តល់ឱ្យអ្នកនូវឱកាសមួយជាបទពិសោធន៍ អំពីរបៀបដែលអ្នកគួរអនុវត្តន៍ និងរៀបចំខ្លួនការពារប្រព័ន្ធរបស់អ្នកពីប្រភេទនៃការវាយប្រហារទាំងនេះ ដូច្នេះការប្រកួត CTF មិនមែនត្រឹមតែសប្បាយប៉ុណ្ណោះទេ តែអ្នកក៏អាចទទួលបានការចំណេះដឹង បទពិសោធន៍ និងជំនាញផងដែរ។
ការរៀបចំខ្លួនដើម្បីប្រកួត CTF
ប្រសិនបើអ្នកមិនធ្លាប់មានបទពិសោធន៍ ឬមិនធ្លាប់ឆ្លងកាត់ការប្រកួត CTF ពីមុនមកនោះទេសូមកុំទាន់បារម្ភ និងមានគំនិតបោះបង់ចោលការប្រកួត CTF អី ពីព្រោះគន្លឹះនៅក្នុងការវាយប្រហារ (Hacking) គឺត្រូវការភាពអត់ធ្មត់ ទោះជាពេលខ្លះ វាពិតជាពិបាកដែលអ្នកមិនសូវបានយល់អំពីការប្រកួតនេះ ប៉ុន្តែមានវិធីសាស្ត្រដែលអ្នកអាចសិក្សា និងរៀនលេងបានគឺ អ្នកត្រូវបន្តព្យាយាម និងអនុវត្តផ្ទាល់ដោយខ្លួនឯង ដើម្បីទទួលបាននូវចំណេះដឹងថ្មី (សូមតាមដានជាមួយខ្ញុំថាតើអ្នកអាចរៀនអនុវត្តបានដោយរបៀបណា?) ថាមិនត្រូវបន្តិចទៀតអ្នកអាចរកបានពិន្ទុខ្ពស់បំផុតក្នុងការជាប់លេខ១ ក៏ថាបាន ការរៀនលេង CTF អ្នកគួរចាប់ផ្តើមស្វែងរកក្រុម ឬអ្នកដែលមានចំណេះដឹង និងបទពិសោធន៍ ដើម្បីបង្ហាញពីទឹកចិត្តរបស់អ្នកក្នុងការចូលរួមប្រកួត និងសុំចែករំលែកបទពិសោធន៍របស់គេ។
ជាបទពិសោធន៍ផ្ទាល់របស់ខ្ញុំ សមាជិកនៃសហគមន៍ InfoSec តែងតែមានឆន្ទៈក្នុងការចែករំលែកចំណេះដឹងរបស់ពួកគេជាមួយអ្នកដែលចាប់អារម្មណ៍ក្នុងការព្យាយាមរៀនសូត្រ និងរីកចម្រើននៅក្នុងវិស័យនេះ ទន្ទឹមនឹងនេះ ទោះជាយ៉ាងណាក៏ដោយ មុននឹងអ្នកចង់ចង់ឱ្យគេជួយ អ្នកគួរតែជួយខ្លួនឯងជាមុនសិន ដូចជាចំណេះដឹងមូលដ្ឋាន និងស្រាវជ្រាវប្រធានបទ រួមទាំការព្យាយាមអនុវត្តន៍ដោយផ្ទាល់ខ្លួន ព្រោះថាអ្នកដែលមានជំនាញ និងបទពិសោធន៍ ដែលបានដើលើវិថី CTF នេះ គឺពួកគេបានចំណាយពេលវេលាផ្ទាល់ខ្លួនជាច្រើន ក្នុងការស្រាវជ្រាវ ហ្វឹកហាត់និងអនុវត្តន៍ផ្ទាល់ដើម្បីដោះស្រាយនូវសំណួរក្នុងព្រឹត្តិការណ៍ CTF។
ជាចុងក្រោយនេះខ្ញុំសូមណែនាំថានៅពេលដែលអ្នកត្រៀមខ្លួនចូលទៅកាន់ព្រឹត្តិការណ៍ CTF កុំភ្លេចយកកុំព្យូទ័រយួរដៃ ឬកុំព្យូទ័រផ្សេងទៀតដែលមានប្រព័ន្ធប្រតិបត្តិការ (OS) ជាមួយកម្មវិធីជាច្រើន ដែលអាចជួយអ្នកក្នុងការប្រកួត។
ប្រភេទសំណួរដែលមានក្នុង CTF ប្រភេទ Jeopardy Style
Programming
សំណួរប្រភេទនេះជាទូទៅត្រូវការចំណេះដឹងផ្នែកភាសា Programming សម្រាប់ដោះស្រាយសំណួរដើម្បីផ្តល់ឱ្យអ្នកនូវចំលើយ ដែលពេលខ្លះវារួមបញ្ចូលទាំ Programming និង ចំណេះដឹង Reverse Engineering ក្នុងការដោះស្រាយ។
Crypto
សំណួរប្រភេទនេះគឺវាពាក់ព័ន្ធទៅនឹងការធ្វើកូដនីយកម្ម (encryption) ដែលពេលខ្លះសំណួរមាននូវឯកសារមួយដែលបានធ្វើកូដនីយកម្ម ហើយអ្នកត្រូវដោះស្រាយកូដនីយកម្មនោះដើម្បីអាចមើលអក្សរដែលជាចំលើយក្នុងឯកសារនោះ មិនត្រឹមតែប៉ុណ្ណឹងទេជួនកាលជារឿយៗសំណួរអាចត្រូវបានគេបញ្ចូលប្រភេទនៃមេរោគចាប់ជំរិត (Ransomware) ដែលកំពុងតែកើតឡើងថ្មី។
Web
សំណួរប្រភេទនេះគឺជួនកាលអ្នកត្រូវស្វែងរក និងវាយប្រហារលើភាពងាយរងគ្រោះក្នុងបច្ចេកវិទ្យា web ឧទាហរណ៍ អ្នកអាចបញ្ចូល SQL ដើម្បីអាននូវចំលើយ ឬហៅថា “flag.txt” ពីតារាងក្នុង database ឬក៏វិធីសាស្ត្រ directory traversal ដើម្បីរកចំលើយ (“flag.txt”) ក្នុងវេបសាយ នៅមានវិធីជាច្រើនទៀតដូចជា cross-site scripting និង JavaScript ជាដើម។
Digital Forensics
សំណួរប្រភេទនេះ គឺវាមានភាពទូលំទូលាយ ដូចជាការបូកបញ្ជូលគ្នារវាង Forensics និង Crypto, Network Forensic, Hardware/Software Forensic… ដូចនេះ Forensics មានន័យថាជាការធ្វើកោសលវិច័យ ដើម្បីរកភស្តុតាង ឧទាហរណ៍ សំណួរអាចផ្តល់អោយអ្នកឯកសារ .txt មួយដើម្បីអោយអ្នករកភស្តុតាង (ចំលើយ) ពីក្នុងឯកសារនោះ ឬសំណួរផ្តល់អោយអ្នកនូវឯកសារ (.pacp) ដែលជាទិន្នន័យចរាចរណ៍របស់បណ្តាញ ដើម្បីឱ្យអ្នកវិភាគរកនូវឈ្មោះគណនី ពាក្សសំងាត់ ឬឯកសំខាន់ដែលបានបាត់បង់។
Binary Reversing
សំណួរប្រភេទនេះគឺពាក់ព័ន្ធទៅនឹងការធ្វើ reverse-engineering ទៅលើកម្មវិធី ប៉ុន្តែមិនមែនជាកូដដើម (source code) នោះទេ អ្នកត្រូវធ្វើការបំបែកនូវកម្មវិធីនោះ ហើយមើលទៅលើ assembly code (ត្រូវមានចំណេះដឹងភាសា assembly) ដើម្បីស្វែងយល់ថាវាដំណើរការយ៉ាងដូចម្តេច ដែលកម្មវិធីទាំងនោះអាចជាកម្មវិធីដំណើរការនៅលើ Windows ឬ Linux, កម្មវិធី Java និងកម្មវិធីផ្សេង ៗទៀត។ Binary Reversing អាចបែងចែកជាពីរគឺ ទី១ pawning: គឺជាការបំបែកនូវចំនុចខ្សោយនៃកម្មវិធីដើម្បីទទួលបានចំលើយ និងទី២ Crackme: គឺជាស្វែងរកនូវចំលើយនូវក្នុងកម្មវធី ដែលជារឿយៗកម្មវិធីនោះត្រូវមាននូវពាក្យសំងាត់ដើម្បីអាចចូលទៅបាន ដូចនេះអ្នកត្រូវការចំណេះដឹង reverse-engineering ដើម្បីស្វែងរកចំលើយដែលអាចមាននៅក្នុងប្លុក memory ជាដើម។
សរុបសេចក្ដីមក CTF គឺជាឱកាសដ៏ល្អមួយដើម្បីរៀន ជួបជុំ និងចងមិត្តភាពរវាងអ្នកដែលស្រលាញ់ចូលចិត្តផ្នែកសន្តិសុខ បច្ចេកវិទ្យាគមនាគមន៍ និងព័ត៌មាន មិនត្រឹមតែប៉ុណ្ណោះអ្នកប្រសិនបើអ្នកឈ្នះ អ្នកនឹងមានឱកាសច្រើនក្នុងការ ដែលក្រុមហ៊ុនធំៗសំលឹងឃើញពីជំនាញរបស់អ្នកហើយចង់បណ្តុះបណ្តាលអ្នកបន្ថែមក្នុងវីថីសន្តិសុខនេះ។
ខ្ញុំសង្ឃឹមថាតាមរយៈអត្ថបទមួយនេះអ្នកអាចយល់កាន់តែច្បាស់ថាអ្វីទៅជា CTF និងអត្ថប្រយោជន៍របស់វា ដូច្នេះប្រសិនបើអ្នកមិនធ្លាប់ចូលរួមព្រឹត្តិការណ៍ CTF ខ្ញុំសូមលើកទឹកចិត្តអ្នកឱ្យចូលរួម និងធ្វើការចុះឈ្មោះឱ្យបានឆាប់ដើម្បីចំណេះដឹងថ្មីៗ និងមិត្តភ័ក្រដែលស្រលាញ់ និងចូលចិត្តនូវវិស័យនេះ ? ៕
វេបសាយពាក់ព័ន្ធ:
https://www.alienvault.com/blogs/security-essentials/capture-the-flag-ctf-what-is-it-for-a-newbie
ប្រភព៖camcert.gov.kh