Tags:
Node Thumbnail

David Schütz นักวิจัยด้านความปลอดภัยจากฮังการีได้เปิดเผยช่องโหว่บนมือถือ Google Pixel ทุกรุ่น สามารถปลดล็อคหน้าจอมือถือของเหยื่อได้โดยไม่ต้องทราบรหัส ล่าสุดกูเกิลอุดช่องโหว่นี้แล้วในแพทช์ล่าสุดเดือนพฤศจิกายน

David เขียนบล็อกเล่าว่าเขาพบช่องโหว่นี้โดยบังเอิญในมือถือ Pixel 6 ส่วนตัว โดยเขาทำมือถือแบตหมดแล้วโดนถาม PIN ของซิมการ์ดตอนเปิดเครื่องซึ่งเขาจำไม่ได้และใส่รหัสผิดครบ 3 ครั้ง ทำให้ต้องใส่รหัส PUK ของซิมแทนซึ่งระบุอยู่บนซองของซิม หลังจากเขาใส่รหัส PUK ที่ถูกต้อง เครื่องก็ให้ตั้ง PIN ของซิมใหม่ แต่ตั้งเสร็จเครื่องกลับให้สแกนนิ้ว ทั้งที่ปกติ Pixel จะต้องใส่ PIN ครั้งแรกหลังบูตเครื่องเพื่อถอดรหัสดิสก์ก่อน

หลังจากนั้นเขาจึงทดลองขั้นตอนดังกล่าวซ้ำๆ เพราะสงสัยว่าเกิดจากอะไร แต่มีครั้งหนึ่งที่เขาลืมรีบูตเครื่อง โดยเริ่มจากการล็อคเครื่องไว้ปกติแล้วสลับซิม ใส่รหัสซิมผิด 3 ครั้ง ใส่รหัส PUK แล้วตั้ง SIM PIN ใหม่ แต่คราวนี้เขาทะลุเข้าหน้าโฮมได้เลยโดยที่ไม่ต้องใส่รหัสเครื่องหรือสแกนนิ้วใดๆ ชมคลิปสาธิตช่องโหว่ได้ด้านล่าง

เขาระบุว่า Pixel 6 ของเขาอัพเดตแพทช์ล่าสุด ซึ่งขณะนั้นคือเดือนมิถุนายน 2022 และได้ลองทดสอบกับ Pixel 5 ก็ได้ผลแบบเดียวกัน จึงมั่นใจว่านี่คือช่องโหว่ปลดล็อคหน้าจอแน่นอน (Lock Screen Bypass) เขาจึงเข้าไปรายงานช่องโหว่นี้ผ่านโครงการ Google Bug Hunters ทันที

หลังจากรายงานช่องโหว่ไปได้ 1 เดือน ทีมงาน Android ก็ติดต่อกลับมาว่าเคยได้รับรายงานอื่นที่เหมือนกันนี้มาแล้ว และกำลังตรวจสอบอยู่ แต่หลังจากผ่านไป 2 เดือนทีมงานก็ยังระบุว่าตรวจสอบอยู่เช่นเดิม และหลังจาก 3 เดือนซึ่งตอนนั้นแพทช์เดือนกันยายน 2022 ออกมาแล้ว บั๊กนี้ก็ยังคงอยู่ ทำให้ David บอกทีมงาน Android ว่าจะเปิดเผยช่องโหว่นี้ในวันที่ 15 ตุลาคม 2022 เนื่องจากรอนานมากแล้ว โดยทีมงาน Android ได้ขอนัดประชุมกับ David ถึงแนวทางการแก้ไข ซึ่งทีมงานบอกว่าแก้ในแพทช์เดือนตุลาคมไม่ทันเพราะบิลด์และทดสอบแพทช์เดือนตุลาคมไปแล้ว และสัญญาว่าจะแก้ช่องโหว่นี้ในแพทช์เดือนพฤศจิกายน 2022 แทน ทำให้ David ตัดสินใจชะลอการเปิดเผยช่องโหว่ออกไปหลังแพทช์เสร็จสิ้น โดยเพิ่งเปิดเผยในวันที่เขียนข่าวนี้ พร้อมวิจารณ์ว่าการสื่อสารกับทีมงาน Android ค่อนข้างแย่ ไม่ค่อยอัพเดตสถานะการแก้ไข และใช้เวลาแก้นาน

นอกจากนี้ทีมงาน Android ยังบอก David ว่าปกติจะไม่ให้เงินรางวัลกับรายงานที่ส่งเข้ามาซ้ำ แต่เนื่องจากรายงานแรกที่ทีมงานได้รับไม่ชัดเจนและไม่สามารถทำซ้ำ (reproduce) ได้ จึงตัดสินใจมอบเงินรางวัล 70,000 ดอลลาร์สหรัฐ (ราว 2.6 ล้านบาท) ให้แก่ David ในฐานะที่ให้ข้อมูลชัดเจนจนทีมงานแก้ไขช่องโหว่ได้

alt="vGz4Wv.png"

หลังแพทช์เดือนพฤศจิกายนออกมา ช่องโหว่นี้ก็ถูกแก้ไขไปเรียบร้อย และ David ได้เข้าไปดู commit ที่แก้ไขช่องโหว่ดังกล่าว พบว่าสาเหตุคือการเรียกฟังก์ชัน .dismiss() เพื่อปลดล็อคหน้าจอ โดยปกติหน้าจอล็อคของ Android สามารถ "ซ้อน" (stack) กันได้ เช่นหน้าใส่รหัส SIM PIN ก็จะซ้อนอยู่บนหน้าจอสแกนนิ้วอีกที และเวลา Android เรียกฟังก์ชัน .dismiss() ก็จะเป็นการปลดล็อคหน้าจอชั้นบนสุด เพื่อไปเจอหน้าจอชั้นถัดไป

อย่างไรก็ตาม อาจมีส่วนอื่นของระบบปฏิบัติการที่มอนิเตอร์สถานะของซิมการ์ดอยู่ด้วย และเมื่อมันตรวจพบว่าผู้ใช้ผ่านหน้าใส่รหัส PUK แล้วก็เรียกฟังก์ชัน .dismiss() เพื่อจะปลดล็อคหน้าจอ SIM PIN แต่หน้าจอ SIM PIN เองก็เรียกฟังก์ชัน .dismiss() ด้วย (ที่ตอนนี้หน้าจอล็อคชั้นบนสุดกลายเป็นการสแกนนิ้วแล้ว) หน้าจอ SIM PIN ที่ควรจะปลดล็อคหน้าจอตัวเอง กลับกลายเป็นการปลดล็อคหน้าจอการสแกนนิ้วแทนและเข้าสู่หน้าโฮมได้ในที่สุด โดยสภาวะแบบนี้เรียกว่า race condition นั่นเอง

วิธีที่ทีมพัฒนา Android แก้ช่องโหว่นี้คือการปรับฟังก์ชัน .dismiss() ใหม่โดยบังคับให้ caller ที่เรียกฟังก์ชัน .dismiss() ต้องระบุพารามิเตอร์ว่าต้องการจะปลดล็อคหน้าจอประเภทใด อย่างในเคสของ David จะเป็นการเรียก .dismiss(SecurityMode.SimPuk) เพื่อระบุว่าต้องการปลดล็อคหน้าจอ PUK เท่านั้น หากหน้าจอล็อคที่ active อยู่ในขณะนั้นเป็นหน้าจอประเภทอื่นก็ไม่ต้องทำอะไร

หากใครสนใจโครงการล่าช่องโหว่ของกูเกิล สามารถเข้าไปอ่านรายละเอียดได้ที่นี่ และหากพบช่องโหว่ที่เข้าข่ายก็รายงานได้ที่นี่

ที่มา - bugs.xdavidhu.me

Get latest news from Blognone

Comments

By: Aoun
AndroidWindows
on 11 November 2022 - 21:53 #1268603

คำถามคือ มือถือแอนดรอยด์ อื่นๆที่ยังไม่ได้patchแก้ไข สามารถทะลุไปหน้าจอ ด้วยวิธีนี้หรือไม่
ถ้าทำได้ การมาเปิดเผยวิธีตอนนี้ มันเร็วไปไหม เพราะไม่ต้องใช้ความรู้อะไรมากมาย

By: BlackMiracle
WriterAndroidUbuntuWindows
on 11 November 2022 - 22:38 #1268607 Reply to:1268603

David บอกว่ามือถือรุ่นอื่น "อาจจะ" โดนเหมือนกัน เพราะบั๊กอยู่ใน AOSP เลย ส่วนเปิดเผยเร็วไปไหม ส่วนตัวผมว่าตอนนี้ก็ดีแล้ว เพราะหลังจากนี้ก็เป็นความรับผิดชอบของผู้ผลิตแต่ละเจ้าที่จะอัพเดตมือถือของตน ไม่งั้นถ้าต้องรอไปจนกว่าทุกเจ้าจะอัพเดตก็คงไม่มีวันนั้นอะครับ 555


Pitawat's Blog :: บล็อกผมเองครับ