XserieX.GitHub.io

Penetration Testing

What is penetration testing?

การทดสอบการเจาะหรือที่เรียกว่า Pentest เป็นการจำลองการโจมตีทางไซเบอร์ต่อระบบคอมพิวเตอร์ของคุณเพื่อตรวจหาช่องโหว่ที่ถูกใช้ประโยชน์ได้ ในบริบทของการรักษาความปลอดภัยเว็บแอปพลิเคชันมักใช้การทดสอบการเจาะเพื่อเพิ่มไฟร์วอลล์เว็บแอปพลิเคชัน (WAF) การ Pentest อาจเกี่ยวข้องกับการพยายามละเมิดระบบแอปพลิเคชันจำนวนเท่าใดก็ได้ (เช่นอินเทอร์เฟซโปรโตคอลแอปพลิเคชัน (API) เซิร์ฟเวอร์ส่วนหน้า / แบ็กเอนด์) เพื่อค้นหาช่องโหว่เช่นอินพุตที่ไม่ได้รับการดูแลซึ่งเสี่ยงต่อการโจมตีด้วยการแทรกโค้ด ข้อมูลเชิงลึกที่ได้รับจากการทดสอบการเจาะสามารถใช้เพื่อปรับแต่งนโยบายความปลอดภัย WAF ของคุณและแก้ไขช่องโหว่ที่ตรวจพบ

Penetration testing stages

กระบวนการ Pentest สามารถแบ่งออกเป็น 5 ขั้นตอน

  1. Planning and reconnaissance

ขั้นตอนแรกเกี่ยวข้องกับ:

  1. Scanning

ขั้นตอนต่อไปคือการทำความเข้าใจว่าแอปพลิเคชันเป้าหมายจะตอบสนองต่อความพยายามในการบุกรุกต่างๆอย่างไร โดยทั่วไปจะทำได้โดยใช้:

  1. Gaining Access

ขั้นตอนนี้ใช้การโจมตีเว็บแอปพลิเคชันเช่นการเขียนสคริปต์ข้ามไซต์การแทรก SQL และแบ็คดอร์เพื่อเปิดเผยช่องโหว่ของเป้าหมาย จากนั้นผู้ทดสอบพยายามใช้ประโยชน์จากช่องโหว่เหล่านี้โดยทั่วไปโดยการเพิ่มสิทธิ์การขโมยข้อมูลการดักฟังการรับส่งข้อมูล ฯลฯ เพื่อทำความเข้าใจถึงความเสียหายที่อาจเกิดขึ้นได้

  1. Maintaining access

เป้าหมายของขั้นตอนนี้คือการดูว่าช่องโหว่นี้สามารถใช้เพื่อให้เกิดการปรากฏตัวถาวรในระบบที่ถูกใช้ประโยชน์ได้หรือไม่ - นานพอที่นักแสดงที่ไม่ดีจะได้รับการเข้าถึงในเชิงลึก แนวคิดคือการเลียนแบบภัยคุกคามต่อเนื่องขั้นสูงซึ่งมักจะอยู่ในระบบเป็นเวลาหลายเดือนเพื่อขโมยข้อมูลที่ละเอียดอ่อนที่สุดขององค์กร

  1. Analysis

จากนั้นผลการทดสอบการเจาะจะถูกรวบรวมเป็นรายละเอียดรายงาน:

Penetration testing methods

External testing

การทดสอบการเจาะภายนอกกำหนดเป้าหมายไปที่ทรัพย์สินของ บริษัท ที่มองเห็นได้บนอินเทอร์เน็ตเช่นเว็บแอปพลิเคชันเว็บไซต์ของ บริษัท อีเมลและเซิร์ฟเวอร์ชื่อโดเมน (DNS) เป้าหมายคือการเข้าถึงและดึงข้อมูลที่มีค่า

Internal testing

ในการทดสอบภายในผู้ทดสอบที่มีสิทธิ์เข้าถึงแอปพลิเคชันที่อยู่เบื้องหลังไฟร์วอลล์จะจำลองการโจมตีโดยบุคคลภายในที่เป็นอันตราย สิ่งนี้ไม่จำเป็นต้องเป็นการจำลองพนักงานที่โกงเสมอไป สถานการณ์เริ่มต้นทั่วไปอาจเป็นพนักงานที่ข้อมูลประจำตัวถูกขโมยไปเนื่องจากการโจมตีแบบฟิชชิง

Blind testing

ในการทดสอบแบบ Blind testing ผู้ทดสอบจะได้รับเฉพาะชื่อขององค์กรที่เป็นเป้าหมายเท่านั้น สิ่งนี้ช่วยให้เจ้าหน้าที่รักษาความปลอดภัยสามารถดูได้แบบเรียลไทม์ว่ามีการโจมตีแอปพลิเคชันจริงอย่างไร

Double-blind testing

ในการทดสอบแบบ double blind testing เจ้าหน้าที่รักษาความปลอดภัยไม่มีความรู้มาก่อนเกี่ยวกับการโจมตีจำลอง เช่นเดียวกับในโลกแห่งความเป็นจริงพวกเขาจะไม่มีเวลาตั้งแนวป้องกันก่อนที่จะพยายามฝ่าฝืน

Targeted testing

ในสถานการณ์นี้ทั้งผู้ทดสอบและเจ้าหน้าที่รักษาความปลอดภัยจะทำงานร่วมกันและคอยประเมินการเคลื่อนไหวของแต่ละฝ่าย นี่คือแบบฝึกหัดที่มีคุณค่าซึ่งช่วยให้ทีมรักษาความปลอดภัยได้รับความคิดเห็นแบบเรียลไทม์จากมุมมองของแฮ็กเกอร์

Penetration testing and web application firewalls

การทดสอบการเจาะและ WAF เป็นมาตรการรักษาความปลอดภัยที่เป็นประโยชน์ร่วมกัน สำหรับการ Pentest หลายประเภท (ยกเว้นการทดสอบแบบ Blind และแบบ Double blind) ผู้ทดสอบมีแนวโน้มที่จะใช้ข้อมูล WAF เช่นบันทึกเพื่อค้นหาและใช้ประโยชน์จากจุดอ่อนของแอปพลิเคชัน

ในทางกลับกันผู้ดูแลระบบ WAF จะได้รับประโยชน์จากข้อมูลการ Pentest หลังจากการทดสอบเสร็จสิ้นสามารถอัปเดตการกำหนดค่า WAF เพื่อป้องกันจุดอ่อนที่พบในการทดสอบ

สุดท้ายการ Pentest เป็นไปตามข้อกำหนดบางประการสำหรับขั้นตอนการตรวจสอบความปลอดภัยซึ่งรวมถึง PCI DSS และ SOC 2 มาตรฐานบางอย่างเช่น PCI-DSS 6.6 สามารถทำได้โดยใช้ WAF ที่ได้รับการรับรองเท่านั้น อย่างไรก็ตามการทำเช่นนั้นไม่ได้ทำให้การ Pentest มีประโยชน์น้อยลงเนื่องจากประโยชน์ดังกล่าวข้างต้นและความสามารถในการปรับปรุงการกำหนดค่า WAF

References: