คงไม่มีใครรอให้ระบบถูกแฮกก่อน
แล้วค่อยย้อนกลับมาหาช่องโหว่ในภายหลัง
เมื่อเราถูกแฮกความเสียหายที่ตามมาไม่ใช่เเค่ชื่อเสียงที่เสียหาย หรือข้อมูลที่รั่วไหล เเต่เรายังอาจต้องเสียทรัยพากรสำคัญ ไม่ว่าจะเป็น เงิน คน หรือเวลา เพื่อหาสาเหตุและแก้ไขปัญหา
แม้ว่าเราสามารถปิดช่องโหว่ที่แฮกเกอร์ใช้ในการแฮกได้สำเร็จในภายหลัง แต่เราจะมั่นใจได้ยังไงว่าช่องโหว่ที่เราปิดไปนั้นคือ ช่องโหว่เดียวที่มีอยู่?
การทำ Pentest ช่วยให้เรารู้ว่า ถ้าแฮกเกอร์พยายามแฮกระบบของเรา “ตอนนี้” เขาจะเจออะไร สร้างความเสียหายได้เเค่ไหน สิ่งที่ได้จากการทดสอบไม่ใช่แค่การค้นหาช่องโหว่เท่านั้น แต่ยังรวมถึงประเด็นความเสี่ยงอื่น ๆ ที่อาจกลายเป็นช่องทางให้แฮกเกอร์ใช้ในแฮกระบบได้ในอนาคต

- Penetration Testing คืออะไร?
- Pentester คือใคร?
- ประเภทการทำ Penetration Testing
- ขั้นตอนการทำ Penetration Testing
- Penetration Testing vs. Vulnerability Assessment
- ทำ Pentest เกิดอะไรขึ้นบ้าง?
- สรุป
Penetration Testing คืออะไร?
Pentest ถูกย่อมาจากคำว่า “Penetration Testing”
Penetration Testing คือการจำลองการโจมตีระบบคอมพิวเตอร์เพื่อค้นหาช่องโหว่ โดยได้รับการอนุญาต
Pentester คือใคร?
Pentester ถูกย่อมาจากคำว่า “Penetration Tester”
Pentester คือผู้ทดสอบระบบความปลอดภัยด้วยการจำลองการโจมตี โดยใช้เทคนิคเดียวกับที่แฮกเกอร์มักใช้จริง แต่จะดำเนินการอย่างมีขั้นตอน และอยู่ภายใต้มาตรฐานสากล เช่น OWASP Top 10 หรือ OWASP Testing Guide สำหรับการทดสอบเว็บแอปพลิเคชัน
สิ่งสำคัญคือ Pentester จะทำการทดสอบ เฉพาะในขอบเขต (Target/Scope) ที่ได้รับอนุญาตจากเจ้าของระบบเท่านั้น และต้องระมัดระวังไม่ให้การทดสอบก่อให้เกิดความเสียหาย เช่น
- การส่งคำขอ (Request) มากเกินไปจนระบบล่ม
- การเปลี่ยนรหัสผ่านผู้ใช้ทั้งระบบ
- การพยายามเข้าสู่ระบบจนทำให้ User ถูก Lock ทั้งระบบ
ประเภทการทำ Penetration Testing
Black Box Testing
- ผู้ทดสอบไม่มีข้อมูลอะไรเลยเกี่ยวกับระบบ จำลองเป็นแฮกเกอร์ภายนอกที่เริ่มต้นจาก 0
- เหมาะกับระบบที่เข้าถึงได้ผ่านอินเทอร์เน็ต (Internet Facing)
White Box Testing
- ผู้ทดสอบมีข้อมูลทั้งหมด เช่น source code, credential และ infrastructure เป็นต้น
- เหมาะกับระบบสำคัญขององค์กร
Gray Box Testing
- ผู้ทดสอบมีข้อมูลบางส่วน เช่น Credential ที่ใช้เข้าสู่ระบบ, คู่มือการใช้งานระบบ ข้อมูลสิทธิ์ต่างๆในระบบ
- เหมาะกับระบบทั้งภายในและภายนอกที่มีการกำหนดให้สิทธิ์กับ User ใน Role ต่างๆ
ขั้นตอนการทำ Penetration Testing
Penetration Testing Execution Standard (PTES) มีการวางขั้นตอนการทดสอบไว้ทั้งหมด 7 ขั้นตอน ดังนี้
- Pre-engagement Interactions
- พูดคุยตกลงรายละเอียดก่อนเริ่มการทดสอบ เช่น
- การทำข้อตกลง (NDA, Contract, Rules of Engagement)
- กำหนดประเภทของระบบ เช่น Web, Network หรือ Mobile Application เป็นต้น
- กำหนดขอบเขตของระบบที่ต้องทดสอบ เช่น IP Address/URL, Network range เป็นต้น
- กำหนดวันเวลาเริ่มและสิ้นสุดการทดสอบ
- กำหนดรูปแบบการทดสอบ เช่น Black Box, Grey Box และ White Box
- แจ้งข้อควรระวัง เช่น ห้ามทำให้ระบบล่ม, ห้ามใช้ Automated Tools และห้ามลบหรือแก้ไขข้อมูลในระบบ เป็นต้น
- แจ้งจุดที่ต้องการให้ทดสอบเป็นพิเศษ เช่น ฟังก์ชันโอนเงิน-ถอนเงิน, ฟังก์ชันแลกของรางวัล หรือฟังก์ชันที่เก็บข้อมูลสำคัญ เป็นต้น
- พูดคุยตกลงรายละเอียดก่อนเริ่มการทดสอบ เช่น
- Intelligence Gathering
- เก็บรวบรวมข้อมูล (Reconnaissance) ของระบบเป้าหมาย ทั้งแบบ Passive และ Active
- Passive Reconnaissance คือการรวบรวมข้อมูลโดยไม่โต้ตอบโดยตรงกับระบบเป้าหมาย เช่น WHOIS, DNS และ Google Dorking
- Active Reconnaissance คือการรวบรวมข้อมูลโดยโต้ตอบโดยตรงกับระบบเป้าหมาย เช่น Port Scanning, Banner Grabbing และ Service Enumeration
- เก็บรวบรวมข้อมูล (Reconnaissance) ของระบบเป้าหมาย ทั้งแบบ Passive และ Active
- Threat Modeling
- วิเคราะห์ระบบเป้าหมายเพื่อหาความเสี่ยงและจุดอ่อนที่อาจถูกโจมตี โดยพิจารณาว่า
- อะไรคือสิ่งที่ต้องปกป้อง (assets)
- ใครคือผู้โจมตี (threat actors)
- ช่องทางในการโจมตี (attack vectors)
- วิธีป้องกัน (mitigations)
- วิเคราะห์ระบบเป้าหมายเพื่อหาความเสี่ยงและจุดอ่อนที่อาจถูกโจมตี โดยพิจารณาว่า
- Vulnerability Analysis
- หาช่องโหว่ด้วยวิธี Manual และใช้ Automated Tools
- Exploitation
- ใช้ช่องโหว่ที่พบเพื่อเข้าถึงระบบ และประเมินความเสี่ยง
- Post-Exploitation
- สำรวจและขยายผลการโจมตี ตัวอย่างเช่น
- การยกระดับสิทธิ์
- ใช้เครื่องที่ยึดได้ไปโจมตีเครื่องอื่นในเครือข่าย
- การขโมยข้อมูลออกจากระบบ เป็นต้น
- สำรวจและขยายผลการโจมตี ตัวอย่างเช่น
- Reporting
- จัดทำรายงานที่สรุปช่องโหว่ที่พบ พร้อมแนวทางการแก้ไข
Penetration Testing vs. Vulnerability Assessment
VA (Vulnerability Assessment)
คือการค้นหาช่องโหว่โดยใช้ Automated Tools ตรวจสอบช่องโหว่ที่สามารถระบุได้โดยไม่ต้องจำลองการโจมตีจริง เช่น ตรวจสอบว่า Web Server ที่ใช้งานอยู่เป็นเวอร์ชันที่มีช่องโหว่หรือไม่
Pentest (Penetration Testing)
คือการทดสอบเชิงลึกโดยการ จำลองการโจมตีจริง เพื่อดูว่าช่องโหว่ที่พบสามารถถูกโจมตีได้จริงหรือไม่ และผลกระทบจะรุนแรงแค่ไหน

โดยสรุปเเล้ว
VA เปรียบเสมือน การตรวจสุขภาพประจำปี
→ ตรวจหาสัญญาณความผิดปกติทั่วร่างกาย
Pentest เปรียบเสมือน การวินิจฉัยเชิงลึกโดยแพทย์เฉพาะทาง
→ วิเคราะห์ว่าป่วยเป็นโรคอะไร และรุนแรงแค่ไหน
ทำ Pentest เกิดอะไรขึ้นบ้าง?
ตัวอย่างสิ่งที่ผู้ทดสอบทำเบื้องต้น
(Penetration Testing Scenario)
- ตรวจสอบพอร์ตและบริการที่เปิดใช้งาน (เช่น HTTP, HTTPS, SSH)
- ตรวจสอบการเปิดเผยเวอร์ชันของระบบหรือบริการ (เช่น ประเภทและเวอร์ชันของ Web Server)
- ค้นหาโฟลเดอร์หรือไฟล์ที่ซ่อนอยู่ผ่านการทำ Fuzzing
- ตรวจสอบเทคโนโลยีที่ใช้งานในระบบ (เช่น CMS, ไลบรารี JavaScript, Framework ฝั่ง Backend)
- ทดสอบระบบยืนยันตัวตนและการจัดการ Session ว่ามีจุดอ่อนหรือไม่
- ประเมินการควบคุมสิทธิ์ในการเข้าถึง (เช่น การข้าม Role, IDOR, การยกระดับสิทธิ์)
- ตรวจสอบช่องโหว่ด้าน Input Validation และ Injection (เช่น SQL Injection, XSS)
- ทดสอบการอัปโหลดไฟล์ และช่องโหว่ Path Traversal
- ตรวจหาการรั่วไหลของข้อมูลสำคัญ (เช่น Token, Credentials, ข้อความ Error ที่เปิดเผยมากเกินไป)
- ตรวจสอบการตั้งค่าความปลอดภัยที่ผิดพลาด (เช่น HTTP Headers, Debug Mode, รหัสผ่านเริ่มต้น)
สรุป
- การทำ Pentest ช่วยให้เราสามารถ ค้นพบช่องโหว่และแก้ไขได้ก่อน ที่แฮกเกอร์จะใช้โจมตี
- ควรทำ Penetration Testing กับระบบที่สำคัญ เป็นประจำทุกปี และทุกครั้งที่มีการ อัปเดตระบบครั้งใหญ่ เช่น การเพิ่มฟีเจอร์, เปลี่ยนโครงสร้าง, ย้ายโฮสต์ ฯลฯ
Leave a comment