Penetration Testing คืออะไร จริง ๆ แล้ว
การแจกแจงแบบปฏิบัติของ penetration testing: มันคืออะไร, engagement ทำงานอย่างไร, และอะไรที่ทำให้มันแตกต่างจาก vulnerability scan
Penetration testing คือการฝึกจำลองการโจมตีแท้จริงกับระบบ เครือข่าย หรืออ้อมแอปพลิเคชันภายใต้สัญญาอนุญาต โดยมีเป้าหมายในการค้นหาจุดอ่อนที่สามารถใช้ประโยชน์ได้ก่อนที่ใครๆ ที่ไม่ได้รับอนุญาตจะทำ มันเป็นการฝึกแบบควบคุม มีเวลากำหนด ที่สิ้นสุดด้วยรายงาน ไม่ใช่การแฮกแบบไม่มีการจำกัด
ความแตกต่างระหว่าง pentesting และ vulnerability scanning
Vulnerability scanner เช่น Nessus หรือ OpenVAS ตรวจสอบเป้าหมายกับฐานข้อมูลของลายเซ็นที่รู้จัก และให้รายการปัญหาที่อาจเกิดขึ้น ซึ่งส่วนใหญ่ต้องยืนยันด้วยตนเอง Pentest ไปต่อกว่านั้น: tester พยายามใช้ประโยชน์จากผลการค้นหาจริง ๆ, เชื่อมโยงพวกมันเข้าด้วยกัน และแสดงผลกระทบที่แท้จริง Scanning บอกว่าพอร์ตเปิดอยู่และเวอร์ชันของบริการดูเหมือนล้าสมัย Pentesting บอกว่าบริการที่ล้าสมัยนั้นสามารถใช้เพื่อรับ shell ได้ และจากนั้น shell นั้นคุณสามารถเลื่อนไปยังตัวควบคุมโดเมนได้
ความแตกต่างนั้นสำคัญสำหรับการรายงานเช่นกัน รายงานการสแกนเป็นรายการ รายงาน pentest เป็นเรื่องราวที่มีหลักฐาน: ภาพหน้าจอ เอาต์พุตคำสั่ง และบทอธิบายของเส้นทางการโจมตีจากจุดเริ่มต้นไปถึงวัตถุประสงค์ที่ตกลงไว้ (การเข้าถึงข้อมูล โดเมน admin ฯลฯ)
วิธีการกำหนดขอบเขต engagement
ก่อนเริ่มการทดสอบใด ๆ ไคลเอนต์และ tester ตกลงกันเกี่ยวกับกฎเกณฑ์: สิ่งที่อยู่ในขอบเขต (ช่วง IP เฉพาะ โดเมน แอปพลิเคชัน) สิ่งที่ห้าม (ฐานข้อมูล production ระบบของบุคคลที่สาม ที่ไคลเอนต์ไม่เป็นเจ้าของ) หน้าต่างการทดสอบ และติดต่อสำรองในกรณีที่มีบางอย่างเสีย นี่ถูกบันทึกไว้ในจดหมายอนุญาตหรือสัญญาที่ลงนาม หากไม่มีอนุญาตนั้น งานทางเทคนิคที่เหมือนกันทุกประการถือเป็นอาชญากรรมตามกฎหมายเช่น US Computer Fraud and Abuse Act หรือ UK Computer Misuse Act
Engagement มักจะจัดประเภทตามจำนวนข้อมูลที่ tester เริ่มต้นด้วย:
- Black box — tester ได้เป้าหมายและไม่มีอะไรอื่น จำลองผู้โจมตีจากภายนอกที่มีความรู้เดิมเป็นศูนย์
- Gray box — tester ได้รับข้อมูลบางส่วน เช่น บัญชีผู้ใช้หรือแผนผังเครือข่าย คล้ายกับสถานการณ์ผู้ใช้ที่มีเจตนาร้ายหรือข้อมูลประจำตัวที่ถูกบุกรุก
- White box — tester มีการเข้าถึงแบบเต็มรูปแบบกับซอร์สโค้ด เอกสารสถาปัตยกรรม และข้อมูลประจำตัว มีประโยชน์สำหรับการทดสอบระดับแอปพลิเคชันเชิงลึก
วิธีการทั่วไปดูเหมือนอย่างไร
ส่วนใหญ่ pentest ปฏิบัติตามโครงสร้างที่ใกล้เคียงกับ PTES (Penetration Testing Execution Standard) หรือขั้นตอนใน NIST SP 800-115:
- Reconnaissance — การรวบรวมข้อมูลแบบ passive และ active โดยใช้เครื่องมือเช่น
theHarvester,amassหรือ Google dorking ธรรมชาติสำหรับ subdomain ที่ถูกเปิดเผยและอีเมลพนักงาน - Scanning and enumeration —
nmap -sC -sVกับช่วงเป้าหมาย directory brute-forcing ด้วยgobusterหรือffufบนเว็บแอป SMB enumeration ด้วยenum4linuxบนเครือข่ายภายใน - Exploitation — ใช้ CVE ที่รู้จัก การกำหนดค่าที่ผิด ข้อมูลประจำตัวที่อ่อนแอ หรือ payload ที่กำหนดเองเพื่อได้รับการเข้าถึงครั้งแรก อาจหมายถึง Metasploit module payload SQL injection ที่ออกแบบมาเป็นพิเศษ หรืออีเมล phishing ที่มี malicious macro
- Post-exploitation — เมื่อคุณมีจุดเริ่มต้น งานจริงเริ่มต้น: privilege escalation lateral movement credential harvesting ด้วยเครื่องมือเช่น Mimikatz หรือ
secretsdump.pyและหาว่าการเข้าถึงจริง ๆ ขยายไปไกลแค่ไหน - Reporting — การเขียนรายการ findings ด้วย CVSS scores ขั้นตอนการจำลอง หลักฐาน และคำแนะนำการแก้ไขที่ทีม engineering ของไคลเอนต์สามารถทำได้
ประเภท pentest ที่คุณจะเจอ
Network pentest เป้าหมายโครงสร้างพื้นฐานภายในหรือภายนอก — เซิร์ฟเวอร์ firewall router Web application pentest มุ่งเน้นไปที่สิ่งต่าง ๆ ใน OWASP Top 10: injection flaws broken authentication insecure deserialization Mobile app pentest ขุดเจาะลึก APK/IPA files API endpoints และ local storage Wireless pentest ทดสอบความปลอดภัย Wi-Fi (WPA2/3 handshake capture rogue access points) Physical และ social engineering pentest ทดสอบว่าใครสามารถเดินเข้าอาคารได้หรือโน้มน้าวพนักงานให้มอบข้อมูลประจำตัว ไม่จำเป็นต้องมีโค้ด
เหตุใดบริษัทจึงจ่ายเงินสำหรับสิ่งนี้จริง ๆ
นอกจากการค้นหาบัก pentest ตอบสนองต่อความต้องการการปฏิบัติตามกฎหมาย PCI DSS ต้องการการทดสอบ penetration ประจำปีสำหรับใครก็ตามที่จัดการข้อมูลบัตร SOC 2 และ ISO 27001 audits มักคาดหวังหลักฐานของการทดสอบปกติ แต่เหตุผลที่ซื่อสัตย์ที่ทีมความปลอดภัยที่ดีมอบหมาย pentest ไม่ได้แค่เครื่องหมายถูก — นั่นคือ automated scanner พลาดข้อบกพร่องของตรรมชาติทางธุรกิจ ปัญหาที่มีความรุนแรงต่ำหลายประการ และการใช้ประโยชน์แบบสร้างสรรค์ที่มนุษย์ที่มีทักษะพบ Scanner จะไม่สังเกตว่าการเปลี่ยน order ID ในตัวระบุตำแหน่งทำให้คุณสามารถดูใบแจ้งหนี้ของคนอื่น ได้ Tester จะ
เข้าสู่สาขานี้
หากคุณมุ่งหมายที่ pentesting เป็นอาชีพ การฝึกปฏิบัติจริงมีความสำคัญมากกว่าใบรับรองเพียงอย่างเดียว แพลตฟอร์มเช่น HackTheBox และ TryHackMe สร้างความทรงจำกล้ามเนื้อ ใบรับรองเช่น OSCP ตรวจสอบสิ่งนั้น เรียนรู้วิธีการอ่านซอร์สโค้ด เข้าใจวิธีการทำงานของ HTTP ในระดับไบต์จริง ๆ และสบายใจกับเทอร์มินัล Linux ก่อนกังวลเกี่ยวกับเครื่องมือที่ฉูดฉาด
หากข้อมูลสรุปนี้มีประโยชน์ Korra Studio มีส่วน Offensive track ที่ครอบคลุมเทคนิคการใช้ประโยชน์เฉพาะ คำแนะนำเครื่องมือ และการฝึกอบรมตามห้องปฏิบัติการที่คุณสามารถติดตามได้
เขียนด้วยความช่วยเหลือของ AI ตรวจสอบและเผยแพร่โดย Michal Pilch (CISSP), Korra Studio
นี่คือบันทึกหนึ่งจากฐานความรู้ของ Korra Studio — แพลตฟอร์มจับคู่หัวข้อแต่ละหัวข้อกับการฝึกสอนแบบ 1-to-1
เริ่มใช้งานฟรีarrow_forward