ในงาน Black Hat Europe ปีนี้ นักวิจัยสองคนจากมหาวิทยาลัยฮ่องกงจีนเสนอการวิจัยที่แสดงช่องโหว่ที่ส่งผลต่อแอป Android ซึ่งอาจทิ้งแอปที่ติดตั้งไว้มากกว่า 1 พันล้าน ตกอยู่ในความเสี่ยงการโจมตี
ช่องโหว่ขึ้นอยู่กับการโจมตี Man-in-the-middle ของการนำ OAuth 2.0 มาใช้บนมือถือ 聽起來เทคนิคมาก แตจริงๆ หมายความว่าอะไร และข้อมูลของคุณปลอดภัยไหม?
OAuth คืออะไร?
OAuth เป็นมาตรฐานเปิดที่เว็บไซต์และแอปจำนวนมากใช้ เพื่อให้คุณล็อกอินแอปหรือเว็บไซต์บุคคลที่สามด้วยบัญชีจากผู้ให้บริการ OAuth หลายแห่ง ตัวอย่างที่รู้จักดีคือ Google, Facebook และ Twitter
ปุ่ม Single Sign On (SSO) ให้คุณอนุญาตเข้าถึงข้อมูลบัญชี เมื่อคุณกดปุ่ม Facebook แอปหรือเว็บไซต์บุคคลที่สามจะหา access token ให้สิทธิ์เข้าถึงข้อมูล Facebook ของคุณ
หากไม่พบ token คุณจะถูกขออนุญาตให้แอปบุคคลที่สามเข้าถึงบัญชี Facebook เมื่อคุณอนุญาตแล้ว Facebook จะได้รับข้อความจากบุคคลที่สามขอ access token
Facebook ตอบกลับด้วย token ให้สิทธิ์เข้าถึงข้อมูลที่คุณระบุ เช่น อนุญาตโปรไฟล์พื้นฐานและรายชื่อเพื่อน แตไม่ใช่รูปภาพ บุคคลที่สามได้ token และให้คุณล็อกอินด้วยข้อมูล Facebook ได้ ตราบใดที่ token ไม่หมดอายุ จะเข้าถึงข้อมูลที่คุณอนุญาตได้
ดูเหมือนระบบที่ดี คุณจดจำรหัสผ่านน้อยลง และล็อกอิน/ยืนยันข้อมูลง่ายด้วยบัญชีที่มีอยู่ ปุ่ม SSO มีประโยชน์มากบนมือถือที่สร้างรหัสผ่านใหม่ หรืออนุญาตบัญชีใหม่ใช้เวลานาน
ปัญหาคืออะไร?
เฟรมเวิร์ก OAuth ล่าสุด -- OAuth 2.0 -- ปล่อยเมื่อตุลาคม 2012 และไม่ได้ออกแบบสำหรับแอปมือถือ ทำให้นักพัฒนาแอปมากมายต้องนำ OAuth ไปใช้เอง โดยไม่มีแนวทางว่าควรทำอย่างไรอย่างปลอดภัย
ในขณะที่ OAuth บนเว็บใช้การสื่อสารโดยตรงระหว่างเซิร์ฟเวอร์บุคคลที่สามและเซิร์ฟเวอร์ผู้ให้บริการ SSO แอปมือถือไม่ใช้วิธีการสื่อสารโดยตรงนี้ แทนที่จะเป็น แอปมือถือสื่อสารกันผ่านอุปกรณ์ของคุณ
เมื่อใช้ OAuth บนเว็บ Facebook ส่ง access token และข้อมูลยืนยันตัวตนไปยังเซิร์ฟเวอร์บุคคลที่สามโดยตรง ข้อมูลนี้จึงตรวจสอบได้ก่อนล็อกอินผู้ใช้หรือเข้าถึงข้อมูลส่วนตัว
นักวิจัยพบว่าเปอร์เซ็นต์สูงของแอปพลิเคชัน Android ขาดการตรวจสอบนี้ แทนที่จะเป็น เซิร์ฟเวอร์ Facebook ส่ง access token ไปยังแอป Facebook Token จะถูกส่งต่อไปยังแอปบุคคลที่สาม แอปบุคคลที่สามจะให้คุณล็อกอิน โดยไม่ตรวจสอบกับเซิร์ฟเวอร์ Facebook ว่าข้อมูลผู้ใช้ถูกต้องหรือไม่
ผู้โจมตีสามารถล็อกอินเป็นตัวเอง กระตุ้นคำขอ OAuth token เมื่อ Facebook อนุญาต token แล้ว พวกเขาสามารถแทรกตัวระหว่างเซิร์ฟเวอร์ Facebook และแอป Facebook ผู้โจมตีเปลี่ยน user id บน token เป็นของเหยื่อ ชื่อผู้ใช้มักเป็นข้อมูลสาธารณะ จึงมีอุปสรรคน้อยสำหรับผู้โจมตี เมื่อ user ID ถูกเปลี่ยน -- แต่การอนุญาตยังคงได้รับ -- แอปบุคคลที่สามจะล็อกอินภายใต้บัญชีของเหยื่อ
ประเภทการเอ็กซ์พลอยต์นี้เรียกว่า Man-in-the-middle (MitM) attack นั่นคือที่ผู้โจมตีสามารถสกัดและแก้ไขข้อมูล ในขณะที่ทั้งสองฝ่ายเชื่อว่ากำลังสื่อสารโดยตรงกัน
สิ่งนี้ส่งผลต่อคุณอย่างไร?
หากผู้โจมตีหลอกแอปให้เชื่อว่าเขาคือคุณ แฮกเกอร์จะได้เข้าถึงข้อมูลทั้งหมดที่คุณจัดเก็บในบริการนั้น นักวิจัยสร้างตารางแสดงข้อมูลที่คุณอาจเปิดเผยบนแอปประเภทต่างๆ
บางประเภทข้อมูลน้อยกว่าเสียหาย คุณน่าจะไม่กังวลประวัติอ่านข่าวเท่ากับแผนการเดินทาง หรือความสามารถส่ง/รับข้อความส่วนตัวในนามคุณ เป็นเตือนใจเกี่ยวกับข้อมูลที่เรามอบให้บุคคลที่สาม -- และผลของการใช้ประโยชน์ผิด
ควรกังวลไหม?
นักวิจัยพบว่า 41.21% ของแอป 600 อันดับแรกที่รองรับ SSO บน Google Play Store เปราะบางต่อการโจมตี MitM อาจทิ้งผู้ใช้พันล้านทั่วโลกอยู่ในความเสี่ยง ทีมวิจัยบน Android แต่เชื่อว่าทำซ้ำได้บน iOS อาจทิ้งแอปล้านๆ บน OS มือถือ 2 อันดับนำอยู่ในความเสี่ยง
ขณะเขียน ยังไม่มีประกาศทางการจาก IETF (Internet Engineering Task Force) ที่พัฒนา OAuth 2.0 Specifications นักวิจัยปฏิเสธการเปิดเผยชื่อแอปที่ได้รับผลกระทบ ดังนั้นคุณควรระวังเมื่อใช้ SSO บนแอปมือถือ
มีแสงสว่างอันหนึ่ง นักวิจัยแจ้ง Google และ Facebook และผู้ให้บริการ SSO อื่นๆ เกี่ยวกับช่องโหว่แล้ว นอกจากนี้ กำลังทำงานร่วมกับนักพัฒนาบุคคลที่สามที่ได้รับผลกระทบเพื่อแก้ไขปัญหา
คุณทำได้อะไรตอนนี้?
ในขณะที่การแก้ไขอาจกำลังจะมา มี มาก แอปที่ได้รับผลกระทบต้องอัปเดต น่าจะใช้เวลาบ้าง จึงอาจคุ้มค่าที่จะไม่ใช้ SSO ในขณะนี้ แทนที่จะเป็น เมื่อคุณสมัครบัญชีใหม่ ตรวจสอบว่าสร้างรหัสผ่านแข็งแกร่งที่คุณจะไม่ลืม หรือใช้โปรแกรมจัดการรหัสผ่านทำงานหนักแทนคุณ
เป็นนิสัยดีที่จะตรวจสอบความปลอดภัยของตัวเองบ้างครั้ง Google จะให้รางวัลพื้นที่คลาวด์สำหรับการตรวจสอบของพวกเขา นี่คือเวลาที่ดีที่จะตรวจสอบว่าแอปไหนบ้างที่คุณให้สิทธิ์บนบัญชี SSO ของคุณ สิ่งนี้สำคัญโดยเฉพาะบนเว็บไซต์อย่าง Facebook ที่จัดเก็บข้อมูลส่วนตัวมากมาย
คุณคิดว่าถึงเวลาเลิกใช้ Single Sign On แล้วไหม? คิดว่าวิธีล็อกอินแบบไหนดีที่สุด? เคยได้รับผลกระทบจากช่องโหว่นี้ไหม? บอกเราในความคิดเห็นด้านล่าง!