ปลดล็อกประตูหลังบ้าน: ค้นหาช่องโหว่ Authorization ที่ลึกซึ้งกว่าแค่ IDOR

ปลดล็อกประตูหลังบ้าน: ค้นหาช่องโหว่ 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 ที่น่าสงสัย

การฝึกฝนและการสำรวจอย่างสม่ำเสมอคือ กุญแจสำคัญสู่การค้นพบช่องโหว่เหล่านี้