
เจาะลึกอันตรายที่ซ่อนอยู่ในระบบ OAuth: เมื่อการล็อกอินง่ายๆ อาจพาคุณไปสู่กับดัก
ระบบล็อกอินด้วยบัญชีโซเชียลมีเดีย หรือที่รู้จักกันในชื่อ OAuth กลายเป็นส่วนหนึ่งของชีวิตดิจิทัลไปแล้ว ทุกครั้งที่เห็นปุ่ม “ล็อกอินด้วย Facebook” หรือ “ล็อกอินด้วย Google” นั่นคือการทำงานของ OAuth ที่ช่วยให้เราเข้าถึงบริการต่างๆ ได้อย่างสะดวกสบาย โดยไม่ต้องสร้างรหัสผ่านใหม่ซ้ำๆ
แนวคิดของ OAuth คือการอนุญาตให้แอปพลิเคชันหนึ่ง เข้าถึงข้อมูลบางส่วนจากอีกแอปพลิเคชันหนึ่ง (เช่น Facebook) โดยที่แอปฯ แรกไม่ต้องรู้รหัสผ่านของเราเลย มันทำงานคล้ายกับการมอบ กุญแจจำลอง (access token) ให้กับแอปฯ เพื่อนำไปใช้งานตามสิทธิ์ที่เราอนุญาตไว้
กุญแจจำลอง Access Token สำคัญอย่างไร?
Access token เปรียบเสมือนกุญแจสำคัญที่ใช้ยืนยันตัวตนและสิทธิ์ในการเข้าถึงข้อมูลต่างๆ ในระบบ เมื่อเราล็อกอินสำเร็จ ระบบจะออกกุญแจนี้ให้ ซึ่งสามารถนำไปใช้เรียกข้อมูลหรือทำธุรกรรมในนามของเราได้ตามขอบเขตที่กำหนดไว้
ลองนึกภาพว่ามันคือกุญแจบ้านที่ใช้เปิดประตูบางห้องเท่านั้น ไม่ได้เปิดได้ทุกห้อง การที่แอปพลิเคชันได้รับ Access token หมายความว่ามันมีสิทธิ์ที่จะทำสิ่งต่างๆ ในนามของเราได้ หากกุญแจนี้ตกไปอยู่ในมือคนร้าย ก็อาจเกิดความเสียหายร้ายแรงได้
Open Redirect ช่องโหว่ที่คนร้ายใช้หลอกล่อ
หัวใจสำคัญที่คนร้ายใช้ในการโจมตีแบบนี้คือช่องโหว่ที่เรียกว่า Open Redirect หรือการเปลี่ยนเส้นทางแบบเปิด ซึ่งเป็นช่องโหว่ที่ทำให้เว็บไซต์สามารถถูกสั่งให้เปลี่ยนเส้นทางไปยัง URL ใดก็ได้ที่ผู้โจมตีกำหนด
โดยปกติแล้ว หลังจากที่เราล็อกอินผ่าน OAuth สำเร็จ บริการนั้นๆ จะส่งเรากลับไปยังเว็บไซต์หรือแอปพลิเคชันต้นทางที่ร้องขอการล็อกอิน แต่ถ้าหากเว็บไซต์ต้นทางมีช่องโหว่ Open Redirect ผู้โจมตีสามารถแก้ไข URL การเปลี่ยนเส้นทางนั้น ให้กลับไปยังเว็บไซต์ปลอมที่สร้างขึ้นมาได้แทน
แผนการโจรกรรม Access Token
การโจมตีนี้เริ่มต้นจากการที่ผู้โจมตีส่งลิงก์ที่สร้างขึ้นมาอย่างแยบยล ลิงก์นี้จะดูเหมือนลิงก์ปกติทั่วไป แต่แท้จริงแล้วมันแฝงคำสั่ง Open Redirect ไว้
เมื่อเหยื่อคลิกลิงก์ดังกล่าว ระบบ OAuth จะทำงานตามปกติ คือพาเหยื่อไปล็อกอินกับผู้ให้บริการ (เช่น Google, Facebook) จากนั้น เมื่อล็อกอินสำเร็จ แทนที่ระบบจะส่ง access token กลับไปยังเว็บไซต์ที่ถูกต้อง
มันกลับถูกเปลี่ยนเส้นทางให้ส่งไปที่เว็บไซต์ของคนร้ายที่แอบสอดแทรกเข้ามาผ่านช่องโหว่ Open Redirect ทำให้คนร้ายได้รับ access token นั้นไปเต็มๆ โดยที่เหยื่อไม่รู้ตัวเลย
ผลลัพธ์ที่ตามมา และวิธีการป้องกัน
เมื่อคนร้ายได้ access token ไปแล้ว พวกเขาสามารถใช้มันเข้าถึงข้อมูลส่วนตัวของเรา เช่น โปรไฟล์, รายชื่อเพื่อน, โพสต์ หรือแม้แต่ส่งข้อความในนามของเราได้ ขึ้นอยู่กับสิทธิ์ที่ token นั้นมี สิ่งนี้อาจนำไปสู่การขโมยข้อมูลส่วนบุคคล, การปลอมแปลงตัวตน หรือการสร้างความเสียหายอื่นๆ ได้มากมาย
สำหรับนักพัฒนา ควรตรวจสอบและจำกัด redirect_uri หรือ URL ที่อนุญาตให้เปลี่ยนเส้นทางกลับให้ดี ต้องมั่นใจว่ามีการตรวจสอบความถูกต้องของ URL อย่างเข้มงวด และมีการใช้ระบบ Whitelist เพื่อระบุ URL ที่ปลอดภัยเท่านั้น
สำหรับผู้ใช้งานทั่วไป สิ่งสำคัญคือต้องระมัดระวังเป็นพิเศษก่อนคลิกลิงก์ที่ไม่คุ้นเคย หรือลิงก์ที่ได้รับจากแหล่งที่ไม่น่าเชื่อถือ พยายามสังเกต URL ที่แสดงในแถบที่อยู่ของเบราว์เซอร์ให้ดีก่อนที่จะทำการล็อกอิน เพื่อให้แน่ใจว่าเป็นเว็บไซต์ที่ถูกต้องและปลอดภัยเสมอ การใส่ใจในรายละเอียดเล็กน้อยเหล่านี้จะช่วยปกป้องตัวตนดิจิทัลได้มาก