บทช่วยสอนการทดสอบการเจาะ: PenTest คืออะไร
⚡ สรุปอย่างชาญฉลาด
การทดสอบเจาะระบบจำลองการโจมตีจริงต่อแอปพลิเคชัน เครือข่าย หรือระบบ เพื่อให้ทีมรักษาความปลอดภัยสามารถค้นหาจุดอ่อนที่สามารถใช้ประโยชน์ได้ วัดผลกระทบต่อธุรกิจ และอุดช่องโหว่เหล่านั้นก่อนที่ผู้โจมตีจากภายนอกจะค้นพบช่องโหว่เดียวกัน
การทดสอบการเจาะคืออะไร?
Penetration Testing หรือ Pen Testing นั้นเป็นประเภทหนึ่ง การทดสอบความปลอดภัย การทดสอบเจาะระบบ (Penetration Testing) ใช้เพื่อค้นหาช่องโหว่ ภัยคุกคาม และความเสี่ยงที่ผู้โจมตีอาจใช้ประโยชน์ในแอปพลิเคชันซอฟต์แวร์ เครือข่าย หรือแอปพลิเคชันเว็บ จุดประสงค์ของการทดสอบเจาะระบบคือการระบุและทดสอบช่องโหว่ด้านความปลอดภัยที่เป็นไปได้ทั้งหมดที่มีอยู่ในแอปพลิเคชันซอฟต์แวร์ การทดสอบเจาะระบบเรียกอีกอย่างว่า Pen Test
แผนภาพด้านล่างแสดงให้เห็นว่าจุดอ่อนที่ไม่ได้แก้ไขในแอปพลิเคชันนั้นกลายเป็นช่องทางให้ผู้โจมตีเข้ามาได้อย่างไร
ช่องโหว่คือความเสี่ยงที่ผู้โจมตีสามารถก่อกวนหรือเข้าถึงระบบหรือข้อมูลใดๆ ในระบบโดยไม่ได้รับอนุญาต ช่องโหว่มักเกิดขึ้นโดยไม่ได้ตั้งใจในระหว่างขั้นตอนการพัฒนาและใช้งานซอฟต์แวร์ ช่องโหว่ที่พบบ่อย ได้แก่ ข้อผิดพลาดในการออกแบบ ข้อผิดพลาดในการกำหนดค่า และบั๊กในซอฟต์แวร์ การวิเคราะห์การเจาะระบบขึ้นอยู่กับกลไกสองอย่าง ได้แก่ การประเมินช่องโหว่และการทดสอบการเจาะระบบ (VAPT)
สองส่วนหลักของ VAPT มักถูกเข้าใจผิดกัน การประเมินช่องโหว่ (Vulnerability Assessment) คือการระบุจุดอ่อนที่ทราบแล้วในวงกว้างและหยุดอยู่แค่นั้น ในขณะที่การทดสอบการเจาะระบบ (Penetration Test) คือการใช้ประโยชน์จากจุดอ่อนที่เลือกมาอย่างปลอดภัยเพื่อพิสูจน์ผลกระทบในโลกแห่งความเป็นจริง เมื่อนำมาใช้ร่วมกัน จะช่วยแยกผลการค้นพบทางทฤษฎีออกจากผลการค้นพบที่ทำให้ข้อมูลตกอยู่ในความเสี่ยงอย่างแท้จริง
ทำไมต้องทดสอบการเจาะ?
การทดสอบการเจาะระบบมีความสำคัญอย่างยิ่งในองค์กร เนื่องจาก:
- ภาคการเงิน เช่น ธนาคาร บริษัทวาณิชธนกิจ และตลาดหลักทรัพย์ ต่างต้องการให้ข้อมูลของตนปลอดภัย และการทดสอบการเจาะระบบจึงเป็นสิ่งสำคัญในการรับรองความปลอดภัย
- หากระบบซอฟต์แวร์ถูกแฮ็กไปแล้ว องค์กรต้องการตรวจสอบว่ายังมีภัยคุกคามใดหลงเหลืออยู่ในระบบหรือไม่ เพื่อป้องกันการแฮ็กในอนาคต
- การทดสอบเจาะระบบเชิงรุกเป็นวิธีป้องกันแฮกเกอร์ที่ดีที่สุด
- กรอบการปฏิบัติตามกฎระเบียบคาดหวังไว้เช่นนั้น ตัวอย่างเช่น ข้อกำหนด PCI DSS ข้อ 11.4 กำหนดให้มีการทดสอบการเจาะระบบทั้งภายในและภายนอกอย่างน้อยปีละครั้ง และหลังจากมีการเปลี่ยนแปลงที่สำคัญใดๆ
ประเภทของการทดสอบการเจาะ
ประเภทของการทดสอบเจาะระบบที่เลือกใช้มักขึ้นอยู่กับขอบเขตและว่าองค์กรต้องการจำลองการโจมตีโดยพนักงานหรือผู้ดูแลระบบเครือข่าย (แหล่งภายใน) หรือโดยแหล่งภายนอก การทดสอบเจาะระบบมีสามประเภท ได้แก่
ในการทดสอบเจาะระบบแบบกล่องดำ ผู้ทดสอบจะไม่มีความรู้เกี่ยวกับระบบที่จะทดสอบ ผู้ทดสอบมีหน้าที่รวบรวมข้อมูลเกี่ยวกับเครือข่ายหรือระบบเป้าหมาย
ในการทดสอบเจาะระบบแบบไวท์บ็อกซ์ ผู้ทดสอบมักจะได้รับข้อมูลครบถ้วนเกี่ยวกับเครือข่ายหรือระบบที่จะทดสอบ รวมถึงโครงสร้างที่อยู่ IP รหัสต้นฉบับ และรายละเอียดของระบบปฏิบัติการ ซึ่งถือเป็นการจำลองการโจมตีจากแหล่งภายในใดๆ เช่น พนักงานขององค์กร
ในการทดสอบเจาะระบบแบบกล่องเทา (grey-box penetration testing) ผู้ทดสอบจะได้รับความรู้เกี่ยวกับระบบเพียงบางส่วนเท่านั้น อาจมองได้ว่าเป็นการโจมตีจากแฮกเกอร์ภายนอกที่เข้าถึงโครงสร้างพื้นฐานเครือข่ายและเอกสารขององค์กรโดยไม่ได้รับอนุญาต
ตารางด้านล่างแสดงข้อมูลทั้งสามประเภทไว้เคียงข้างกัน เพื่อให้คุณสามารถจับคู่ประเภทการมีส่วนร่วมกับภัยคุกคามที่คุณต้องการจำลองได้อย่างแท้จริง
| แง่มุม | กล่องดำ (Black Box) | กล่องสีขาว | สีเทา Box |
| ข้อมูลที่มอบให้แก่ผู้ทดสอบ | ไม่มี | รายละเอียดครบถ้วน: ซอร์สโค้ด, โครงสร้าง IP, รายละเอียดระบบปฏิบัติการ | บางส่วน: มีคุณสมบัติหรือเอกสารไม่ครบถ้วน |
| ผู้โจมตีถูกจำลองขึ้น | คนนอกที่ไม่มีสิทธิ์เข้าถึง | คนวงในหรือนักพัฒนา | คนนอกที่ได้เข้ามาตั้งหลักแล้ว |
| เวลาที่ใช้ในการลาดตระเวน | จุดสูง | ต่ำ | ปานกลาง |
| โดยทั่วไปจะครอบคลุมถึงโค้ดเบสทั้งหมด | เฉพาะสิ่งที่สามารถเข้าถึงได้จากภายนอกเท่านั้น | ลึกที่สุด เพราะมองเห็นส่วนประกอบภายในได้ | มุ่งเน้นไปที่เส้นทางการโจมตีที่เปิดเผย |
วิธีการทดสอบการเจาะ
เพื่อทำการทดสอบเจาะระบบ จำเป็นต้องดำเนินการตามขั้นตอนต่อไปนี้ ภาพด้านล่างสรุปขั้นตอนทั้งสี่ก่อนที่จะอธิบายแต่ละขั้นตอนโดยละเอียด
ขั้นตอนที่ 1) ขั้นตอนการวางแผน
- กำหนดขอบเขตและกลยุทธ์ของงานที่ได้รับมอบหมาย
- นโยบายและมาตรฐานด้านความปลอดภัยที่มีอยู่จะถูกนำมาใช้ในการกำหนดขอบเขต
ขั้นตอนที่ 2) ระยะการค้นพบ
- รวบรวมข้อมูลเกี่ยวกับระบบให้ได้มากที่สุดเท่าที่จะเป็นไปได้ รวมถึงข้อมูลในระบบ ชื่อผู้ใช้ และแม้แต่รหัสผ่าน กระบวนการนี้เรียกว่า การสร้างลายนิ้วมือ (fingerprinting)
- สแกนและตรวจสอบพอร์ตต่างๆ
- ตรวจสอบช่องโหว่ของระบบ
ขั้นตอนที่ 3) ระยะการโจมตี
- ค้นหาช่องโหว่ต่างๆ คุณจำเป็นต้องมีสิทธิ์การรักษาความปลอดภัยที่จำเป็นเพื่อเจาะระบบ
ขั้นตอนที่ 4) ระยะการรายงาน
- รายงานจะต้องมีการค้นพบโดยละเอียด
- ความเสี่ยงจากช่องโหว่ที่พบและผลกระทบต่อธุรกิจ
- คำแนะนำและแนวทางแก้ไข (ถ้ามี)
ภารกิจหลักในการทดสอบเจาะระบบคือการรวบรวมข้อมูลระบบ ซึ่งมีสองวิธีในการรวบรวมข้อมูล:
- รูปแบบ 'หนึ่งต่อหนึ่ง' หรือ 'หนึ่งต่อหลาย' ในส่วนที่เกี่ยวกับโฮสต์: ผู้ทดสอบจะทำการทดสอบในลักษณะเชิงเส้นกับโฮสต์เป้าหมายหนึ่งตัวหรือกลุ่มตรรกะping ของโฮสต์เป้าหมาย (เช่น ซับเน็ต)
- รูปแบบ 'หลายต่อหนึ่ง' หรือ 'หลายต่อหลาย': ผู้ทดสอบใช้โฮสต์หลายตัวในการดำเนินการเทคนิคการรวบรวมข้อมูลในลักษณะสุ่ม จำกัดอัตรา และไม่เป็นเชิงเส้น
ตัวอย่างเครื่องมือทดสอบการเจาะ
มีเครื่องมือหลากหลายประเภทที่ใช้ในการทดสอบการเจาะระบบ และ เครื่องมือ Pentest ที่สำคัญ คือ:
1) Teramind
Teramind มอบชุดโปรแกรมที่ครอบคลุมสำหรับการป้องกันภัยคุกคามภายในและการติดตามพนักงาน ช่วยเพิ่มความปลอดภัยผ่านการวิเคราะห์พฤติกรรมและการป้องกันข้อมูลสูญหาย รับรองการปฏิบัติตามข้อกำหนดและเพิ่มประสิทธิภาพกระบวนการทางธุรกิจ แพลตฟอร์มที่ปรับแต่งได้นั้นเหมาะสมกับความต้องการที่หลากหลายขององค์กร โดยให้ข้อมูลเชิงลึกที่นำไปใช้ได้จริงซึ่งมุ่งเน้นที่การเพิ่มผลผลิตและการปกป้องความสมบูรณ์ของข้อมูล
สิ่งอำนวยความสะดวก:
- การป้องกันภัยคุกคามจากบุคคลภายใน: ตรวจจับและป้องกันการกระทำของผู้ใช้ที่อาจบ่งชี้ถึงภัยคุกคามจากบุคคลภายในต่อข้อมูล
- การเพิ่มประสิทธิภาพกระบวนการทางธุรกิจ: ใช้การวิเคราะห์พฤติกรรมที่ขับเคลื่อนด้วยข้อมูลเพื่อกำหนดกระบวนการปฏิบัติงานใหม่
- ประสิทธิภาพการทำงานของบุคลากร: ตรวจสอบประสิทธิภาพการทำงาน ความปลอดภัย และการปฏิบัติตามกฎระเบียบของบุคลากร
- การจัดการการปฏิบัติตามกฎระเบียบ: ช่วยจัดการการปฏิบัติตามกฎระเบียบด้วยโซลูชันเดียวที่ปรับขนาดได้ เหมาะสำหรับธุรกิจขนาดเล็ก องค์กรขนาดใหญ่ และหน่วยงานภาครัฐ
- การวิเคราะห์เหตุการณ์: รวบรวมหลักฐานเพื่อเสริมประสิทธิภาพในการตอบสนองต่อเหตุการณ์ การสืบสวน และการวิเคราะห์ภัยคุกคาม
- ระบบป้องกันการสูญเสียข้อมูล: ตรวจสอบและปกป้องข้อมูลสำคัญจากการสูญเสียที่อาจเกิดขึ้น
- การตรวจสอบพนักงาน: มีฟังก์ชันในการตรวจสอบประสิทธิภาพและกิจกรรมของพนักงาน
- การวิเคราะห์พฤติกรรม: วิเคราะห์ข้อมูลพฤติกรรมการใช้งานแอปของลูกค้าอย่างละเอียดเพื่อหาข้อมูลเชิงลึก
- การตั้งค่าการตรวจสอบที่ปรับแต่งได้: ช่วยให้สามารถปรับแต่งการตั้งค่าการตรวจสอบให้เหมาะสมกับกรณีการใช้งานเฉพาะ หรือเพื่อใช้กฎที่กำหนดไว้ล่วงหน้า
- แดชบอร์ดข้อมูลเชิงลึก: มอบความโปร่งใสและข้อมูลเชิงลึกที่นำไปปฏิบัติได้จริงเกี่ยวกับกิจกรรมของบุคลากรผ่านแดชบอร์ดที่ครอบคลุม
- nmap – เครื่องมือนี้ใช้สำหรับสแกนพอร์ตและระบุระบบปฏิบัติการ tracตรวจสอบเส้นทางและช่องโหว่
- Nessus – นี่คือเครื่องมือตรวจสอบช่องโหว่แบบเครือข่ายดั้งเดิม
- Pass-The-Hash – เครื่องมือนี้ใช้เป็นหลักในการถอดรหัสรหัสผ่าน
บทบาทและความรับผิดชอบของผู้ทดสอบการเจาะ
หน้าที่ของผู้ทดสอบการเจาะระบบคือ:
- รวบรวมข้อมูลที่จำเป็นจากองค์กรเพื่อเปิดใช้งานการทดสอบการเจาะระบบ
- ค้นหาข้อบกพร่องที่อาจทำให้แฮกเกอร์สามารถโจมตีเครื่องเป้าหมายได้
- คิดและลงมือทำเหมือนแฮกเกอร์ตัวจริง แต่ต้องอยู่ในกรอบจริยธรรมด้วย
- ทำให้งานนั้นสามารถทำซ้ำได้ เพื่อให้นักพัฒนาสามารถแก้ไขปัญหาได้ง่าย
- ตกลงวันเริ่มต้นและวันสิ้นสุดของการดำเนินการทดสอบล่วงหน้า
- รับผิดชอบต่อความเสียหายใดๆ ที่เกิดขึ้นกับระบบหรือข้อมูลในระหว่างนั้น การทดสอบซอฟต์แวร์
- รักษาข้อมูลและสารสนเทศให้เป็นความลับ
การทดสอบเจาะระบบด้วยตนเองเทียบกับการทดสอบเจาะระบบอัตโนมัติ
ในสถานการณ์จริงส่วนใหญ่ มักผสมผสานทั้งสองแนวทางเข้าด้วยกัน การเปรียบเทียบด้านล่างแสดงให้เห็นว่าแต่ละแนวทางเหมาะสมกับสถานการณ์ใดบ้าง
| การทดสอบการเจาะด้วยตนเอง | การทดสอบการเจาะอัตโนมัติ |
| การทดสอบด้วยตนเอง ต้องใช้ผู้เชี่ยวชาญผู้เชี่ยวชาญเพื่อทำการทดสอบ | เครื่องมือทดสอบอัตโนมัติให้รายงานที่ชัดเจนโดยผู้เชี่ยวชาญที่มีประสบการณ์น้อย |
| การทดสอบด้วยตนเองจำเป็นต้องใช้ Excel และเครื่องมืออื่นๆ tracเคอิท | การทดสอบระบบอัตโนมัติ มีเครื่องมือแบบรวมศูนย์และได้มาตรฐาน |
| ในการทดสอบด้วยตนเอง ผลลัพธ์ตัวอย่างจะแตกต่างกันไปในแต่ละการทดสอบ | ในกรณีของการทดสอบอัตโนมัติ ผลลัพธ์จะไม่แตกต่างกันไปในแต่ละการทดสอบ |
| ผู้ใช้ควรจำไว้ว่าต้องล้างหน่วยความจำ | การทดสอบอัตโนมัติจะมีการล้างข้อมูลที่ครอบคลุม |
ข้อเสียของการทดสอบการเจาะ
การทดสอบเจาะระบบไม่สามารถค้นหาช่องโหว่ทั้งหมดในระบบได้ เนื่องจากมีข้อจำกัดด้านเวลา งบประมาณ ขอบเขต และทักษะของผู้ทดสอบเจาะระบบ
ต่อไปนี้คือผลข้างเคียงที่อาจเกิดขึ้นเมื่อเราทำการทดสอบเจาะระบบ:
- การสูญหายของข้อมูลและการทุจริต
- ลงเวลา
- เพิ่มต้นทุน
ภาพอินโฟกราฟิกด้านล่างนี้รวบรวมข้อดีข้อเสียต่างๆ พร้อมทั้งเหตุผลที่องค์กรยังคงทำการทดสอบอยู่ดี
ข้อจำกัดเหล่านี้เป็นเหตุผลว่าทำไมการทดสอบเจาะระบบจึงได้ผลดีที่สุดเมื่อใช้ร่วมกับนโยบายความปลอดภัยที่วางไว้อย่างดี มากกว่าที่จะใช้แทนที่นโยบายความปลอดภัย ผู้ทดสอบควรทำตัวเหมือนแฮกเกอร์ตัวจริง ตรวจสอบว่าโค้ดเขียนอย่างปลอดภัยหรือไม่ และทำการทดสอบซ้ำตามตารางเวลาที่บันทึกไว้





