นักวิจัยพบช่องโหว่ด้านการล็อกอินของ Android, กระทบ Android 2.3.3 ลงไป

by mk
18 May 2011 - 13:16

นักวิจัยสามคนจากมหาวิทยาลัย Ulm ในเยอรมนี ได้แก่ Bastian Könings, Jens Nickels, Florian Schaub ได้ค้นพบช่องโหว่ของระบบล็อกอิน ที่แอพใช้เช็คข้อมูลการล็อกอินกับเซิร์ฟเวอร์กูเกิล ซึ่งอาจเป็นช่องทางให้แฮ็กเกอร์เข้าถึงบัญชีกูเกิลของเราได้

ซอฟต์แวร์ที่เป็นข่าวชื่อว่า ClientLogin ซึ่งเป็นบริการพื้นฐานตัวหนึ่งของ Android ที่แอพอื่นๆ (ทั้งแอพของกูเกิลเองอย่าง Gmail/Calendar และแอพที่ล็อกอินด้วยบัญชีกูเกิล) เรียกใช้ได้

กระบวนการทำงานของ ClientLogin เป็นดังนี้ (ดูภาพประกอบ)

  • แอพจะส่งชื่อผู้ใช้และรหัสผ่านไปยังกูเกิลผ่าน HTTPS
  • เซิร์ฟเวอร์ของกูเกิลจะส่ง authentication token (authToken) กลับมาให้ เป็นเครื่องยืนยันว่าล็อกอินผ่านแล้ว
  • หลังจากนั้นเมื่อแอพต้องการติดต่อเพื่อขอข้อมูลจากเซิร์ฟเวอร์ของกูเกิล จะต้องแนบ authToken ไปกับคำสั่งรีเควสต์ทุกครั้ง

ปัญหาอยู่ที่ authToken เนื่องจากล็อกอินครั้งหนึ่งจะใช้ได้นาน 2 สัปดาห์ และ authToken ไม่ถูกเข้ารหัสไว้ ดังนั้น "ถ้ามีกรณี" ที่ authToken ถูกส่งผ่านเครือข่ายที่ไม่ปลอดภัย (เช่น Wi-Fi ไม่เข้ารหัส) ก็มีโอกาสที่แฮ็กเกอร์จะขโมย authToken (ที่อาจจะยังไม่หมดอายุ) เพื่อนำไปดึงข้อมูลในบัญชีกูเกิลของเราได้ (เข้าถึงข้อมูลได้ ลบข้อมูลได้ แต่ไม่ได้รหัสผ่านไป)

การดัก authToken สามารถทำได้ง่ายๆ ผ่านเทคนิคการสนิฟข้อมูลทั่วไป (เช่น Wireshark) แฮ็กเกอร์อาจสร้าง Wi-Fi access point หลอกๆ ขึ้นมา โดยใช้ชื่อเดียวกับ access point ที่พบได้ทั่วไป และเมื่อมือถือ Android ส่ง authToken ไปยังกูเกิลเพื่อขอข้อมูล ก็จะถูกดักเอา authToken ไปใช้งานได้

เทคนิคนี้จะคล้ายๆ กับการขโมยคุกกี้ของเว็บไซต์ (Sidejacking) ซึ่งเคยเป็นข่าวดังไปแล้วกับกรณีของ Firesheep

ทางทีมวิจัยได้ทดสอบช่องโหว่นี้กับ Android หลายรุ่น และพบว่ารุ่นที่ปลอดภัยจากเทคนิคนี้คือ Android 2.3.4 และ Android 3.0 เท่านั้น รุ่นที่ต่ำกว่านี้มีสิทธิ์โดนทั้งหมด ซึ่งก็หมายถึง 99.7% ของมือถือ Android ทั้งหมด

Android 2.3.4 และ 3.0 รอดเพราะ Calendar/Contacts ส่งข้อมูลผ่าน HTTPS แต่ก็มีปัญหาเล็กๆ คือแอพ Gallery ใน 2.3.4 จะดึงข้อมูลจาก Picasa ผ่าน HTTP ธรรมดา ก็มีสิทธิ์โดนแฮ็กเกอร์บุกเข้าไปยัง Picasa ได้ด้วย

กูเกิลประกาศว่าทราบปัญหาเรื่อง Gallery/Picasa แล้ว และจะเร่งทำการแก้ปัญหาต่อไป (ส่วนคนที่ใช้ Android รุ่นก่อนๆ ก็คงไม่มีทางเลือกอื่นนอกจากอัพเฟิร์มแวร์ให้เร็วที่สุด ถ้าทำได้)

ทีมผู้วิจัยแนะนำให้นักพัฒนาแอพที่เรียกใช้ ClientLogin เปลี่ยนมาส่งข้อมูลด้วย HTTPS หรือใช้วิธีตรวจสอบการล็อกอินที่ปลอดภัยกว่าอย่าง oAuth แทน

ส่วนผู้ใช้ Android ที่ยังไม่สามารถอัพเป็น 2.3.4 ได้ก็ต้องระวังตัวเบื้องต้นดังนี้

  • ปิดการซิงก์ข้อมูลเมื่อต่อ Wi-Fi ที่ไม่ได้เข้ารหัส
  • ลบเครือข่าย Wi-Fi แบบไม่ได้เข้ารหัสที่เคยเชื่อมต่อไว้ (สั่ง forget network) เพื่อไม่ให้เชื่อมต่ออัตโนมัติ

ที่มา - Ulm University, The Register

Blognone Jobs Premium