
ปลดล็อกประตูหลังบ้าน: ค้นหาช่องโหว่ Authorization ที่ลึกซึ้งกว่าแค่ IDOR
ในโลกดิจิทัล การรักษาความปลอดภัยของข้อมูลเป็นสิ่งสำคัญ Authorization หรือการตรวจสอบสิทธิ์การเข้าถึง แตกต่างจาก Authentication ที่ยืนยันตัวตน บทความนี้จะพาคุณเจาะลึกช่องโหว่ Authorization ที่ซับซ้อนกว่าแค่การเปลี่ยนรหัสตัวเลขง่ายๆ อย่าง IDOR และแนะนำวิธีค้นหาเพื่อปกป้องระบบให้แข็งแกร่งยิ่งขึ้น
ความเข้าใจพื้นฐาน: แยกแยะ Authentication และ Authorization
การเข้าใจความแตกต่างระหว่างสองคำนี้เป็นพื้นฐานสำคัญ
Authentication คือกระบวนการที่ระบบยืนยันว่า คุณคือใคร เช่น การเข้าสู่ระบบด้วยชื่อผู้ใช้และรหัสผ่าน
ส่วน Authorization คือกระบวนการที่ระบบตรวจสอบว่า คุณได้รับอนุญาตให้ทำอะไรได้บ้าง หลังจากยืนยันตัวตนสำเร็จ เช่น ผู้ใช้ทั่วไปดูข้อมูลตัวเองได้ แต่ลบข้อมูลผู้อื่นไม่ได้
IDOR ที่หลายคนคุ้นเคย เป็นเพียงรูปแบบหนึ่งของปัญหา Authorization เท่านั้น
IDOR คืออะไร และทำไมมันถึงไม่ใช่ทั้งหมด
IDOR หรือ Insecure Direct Object Reference คือช่องโหว่ที่เกิดขึ้นเมื่อระบบอนุญาตให้ผู้ใช้เข้าถึงทรัพยากรต่างๆ โดยการเปลี่ยนค่าพารามิเตอร์ที่อ้างอิงถึงอ็อบเจกต์นั้นโดยตรง
ตัวอย่างคือ การเปลี่ยน ID ใน URL จาก profile?id=123 เป็น profile?id=124 เพื่อเข้าถึงข้อมูลของผู้ใช้อื่น
แม้ IDOR จะอันตราย แต่โลกของ Authorization ไม่ได้มีแค่การเปลี่ยนตัวเลขเท่านั้น ยังมีช่องโหว่ซับซ้อนที่มักถูกละเลยและอันตรายไม่แพ้กัน
เจาะลึกช่องโหว่ Authorization ที่ซับซ้อนกว่า
นอกเหนือจาก IDOR ยังมีช่องโหว่ Authorization อีกหลายประเภทที่นักเจาะระบบเก่งๆ มักจะมองหา
การยกระดับสิทธิ์แนวตั้ง (Vertical Privilege Escalation)
ผู้ใช้สิทธิ์ต่ำเข้าถึงฟังก์ชันหรือข้อมูลที่ควรจำกัดไว้สำหรับสิทธิ์สูงกว่า เช่น ผู้ใช้ทั่วไปเข้าถึงหน้าจอผู้ดูแลระบบ (Admin Panel) หรือเรียกใช้ API ผู้ดูแลระบบ ได้โดยตรง
การยกระดับสิทธิ์แนวนอน (Horizontal Privilege Escalation)
ผู้ใช้สามารถเข้าถึงข้อมูลหรือฟังก์ชันของ ผู้ใช้คนอื่นในระดับสิทธิ์เดียวกัน โดยไม่จำเป็นต้องเปลี่ยน ID โดยตรง
อาจเกิดขึ้นเมื่อระบบไม่ตรวจสอบว่า เซสชัน ปัจจุบันเป็นของผู้ใช้ที่เข้าถึงข้อมูลนั้นจริงๆ
การควบคุมการเข้าถึงระดับฟังก์ชันที่ไม่สมบูรณ์ (Missing Function Level Access Control – MFLAC)
เกิดขึ้นเมื่อแอปพลิเคชันไม่ได้ตรวจสอบว่าผู้ใช้มีสิทธิ์เรียกใช้ ฟังก์ชัน หรือ API Endpoint ที่ต้องการหรือไม่
แม้ไม่มีสิทธิ์เข้าถึงข้อมูลผู้อื่น แต่กลับเรียกใช้ฟังก์ชันสำคัญได้ เช่น API สำหรับสร้างผู้ใช้ใหม่ โดยไม่ตรวจสอบบทบาท
ตามล่าช่องโหว่เหล่านี้อย่างไร?
การค้นหาช่องโหว่ Authorization ที่ซับซ้อนต้องใช้ความเข้าใจและเครื่องมือที่เหมาะสม
ทำความเข้าใจตรรกะของแอปพลิเคชัน: สำคัญมากคือต้องเข้าใจว่าแอปพลิเคชันทำงานอย่างไร บทบาทผู้ใช้แต่ละคนมีสิทธิ์ทำอะไรได้บ้าง
ใช้ Proxy Tools: เครื่องมืออย่าง Burp Suite หรือ OWASP ZAP ช่วยให้ดักจับและแก้ไข คำขอ (Request) ได้อย่างมีประสิทธิภาพ
ทดสอบด้วยบทบาทผู้ใช้ที่แตกต่างกัน:
- ใช้บัญชีผู้ใช้ทั่วไปสองบัญชี เพื่อทดสอบ Horizontal Escalation
- ใช้บัญชีผู้ใช้ทั่วไปและผู้ดูแลระบบ เพื่อทดสอบ Vertical Escalation และ MFLAC
ปรับแต่งคำขอ (Request Manipulation): ลองเปลี่ยนค่าพารามิเตอร์ (นอกเหนือจาก ID) ที่บ่งบอกบทบาทหรือสิทธิ์ ทดสอบเปลี่ยน HTTP Method (GET, POST, PUT, DELETE) และทดลองเรียกใช้ API Endpoints ที่น่าสงสัย
การฝึกฝนและการสำรวจอย่างสม่ำเสมอคือ กุญแจสำคัญสู่การค้นพบช่องโหว่เหล่านี้