ช่องโหว่ใน Android ที่ให้คุณข้ามหน้าจอล็อกได้

มีการระบุช่องโหว่ในแพลตฟอร์ม Android (CVE-2022-20465) ที่อนุญาตให้ปิดใช้งานการล็อกหน้าจอโดยสลับซิมการ์ดและป้อนรหัส PUK ความสามารถในการปิดใช้งานการล็อกได้แสดงให้เห็นแล้วในอุปกรณ์ Google Pixel แต่เนื่องจากการแก้ไขส่งผลกระทบต่อ codebase หลักของ Android จึงมีแนวโน้มว่าปัญหาจะส่งผลต่อเฟิร์มแวร์จากผู้ผลิตรายอื่นด้วย ปัญหานี้ได้รับการแก้ไขแล้วใน Android Security Patch Roll ประจำเดือนพฤศจิกายน นักวิจัยที่ให้ความสนใจกับปัญหาได้รับรางวัล $70 จาก Google

ปัญหาเกิดจากการประมวลผลการปลดล็อคที่ไม่ถูกต้องหลังจากป้อนรหัส PUK (Personal Unblocking Key) ซึ่งใช้เพื่อเปิดใช้งานซิมการ์ดที่ถูกล็อคอีกครั้งหลังจากป้อน PIN ไม่ถูกต้องหลายครั้ง หากต้องการปิดใช้งานการล็อกหน้าจอ สิ่งที่คุณต้องทำคือใส่ซิมการ์ดลงในโทรศัพท์ ซึ่งมีการป้องกันด้วยรหัส PIN หลังจากเปลี่ยนซิมการ์ดที่ป้องกันด้วย PIN คำขอรหัส PIN จะแสดงบนหน้าจอก่อน หากป้อนรหัส PIN ผิดสามครั้ง ซิมการ์ดจะถูกบล็อก หลังจากนั้นคุณจะมีโอกาสป้อนรหัส PUK เพื่อปลดล็อก ปรากฎว่าการป้อนรหัส PUK ที่ถูกต้องไม่เพียง แต่ปลดล็อกซิมการ์ด แต่ยังนำไปสู่การเปลี่ยนผ่านอินเทอร์เฟซหลักผ่านโปรแกรมรักษาหน้าจอโดยไม่ต้องยืนยันการเข้าถึงโดยใช้รหัสผ่านหรือรูปแบบหลัก

ช่องโหว่ดังกล่าวเกิดจากข้อผิดพลาดในตรรกะสำหรับตรวจสอบรหัส PUK ในตัวจัดการ KeyguardSimPukViewController ซึ่งรับผิดชอบในการแสดงหน้าจอการตรวจสอบสิทธิ์เพิ่มเติม Android ใช้หน้าจอการตรวจสอบสิทธิ์หลายประเภท (สำหรับ PIN, PUK, รหัสผ่าน, รูปแบบ, การตรวจสอบสิทธิ์แบบไบโอเมตริก) และหน้าจอเหล่านี้จะถูกเรียกใช้ตามลำดับเมื่อต้องมีการยืนยันหลายครั้ง เช่น เมื่อต้องใช้ทั้ง PIN และรูปแบบ

หากป้อนรหัส PIN ถูกต้อง ขั้นตอนที่สองของการตรวจสอบจะเริ่มทำงาน โดยต้องป้อนรหัสปลดล็อคหลัก แต่เมื่อป้อนรหัส PUK ขั้นตอนนี้จะถูกข้ามไปและให้สิทธิ์การเข้าถึงโดยไม่ต้องถามรหัสผ่านหลักหรือรูปแบบ ขั้นตอนการเลิกบล็อกถัดไปจะถูกยกเลิก เนื่องจากเมื่อเรียกใช้ KeyguardSecurityContainerController#dismiss() ระบบจะไม่เปรียบเทียบวิธีการตรวจสอบที่คาดไว้และผ่าน เช่น ตัวจัดการพิจารณาว่าการเปลี่ยนแปลงวิธีการตรวจสอบไม่ได้เกิดขึ้น และการยืนยันรหัส PUK เสร็จสิ้นแสดงว่าการยืนยันสิทธิ์สำเร็จ

ช่องโหว่ถูกค้นพบโดยบังเอิญ - โทรศัพท์ของผู้ใช้แบตเตอรี่หมดและหลังจากชาร์จและเปิดเครื่อง เขาทำผิดพลาดหลายครั้งเมื่อป้อนรหัส PIN หลังจากนั้นเขาปลดล็อครหัส PUK และรู้สึกประหลาดใจที่ระบบไม่ ขอรหัสผ่านหลักที่ใช้ถอดรหัสข้อมูล หลังจากนั้นจะขึ้นข้อความว่า "Pixel is start ..." ผู้ใช้กลายเป็นคนพิถีพิถันตัดสินใจค้นหาว่าเกิดอะไรขึ้นและเริ่มทดลองป้อนรหัส PIN และ PUK ด้วยวิธีต่าง ๆ จนกระทั่งเขาลืมรีสตาร์ทอุปกรณ์โดยไม่ได้ตั้งใจหลังจากเปลี่ยนซิมการ์ดและเข้าถึงสภาพแวดล้อมแทน หนาวจัด.

สิ่งที่น่าสนใจเป็นพิเศษคือการตอบสนองของ Google ต่อรายงานช่องโหว่ ข้อมูลเกี่ยวกับปัญหาถูกส่งไปในเดือนมิถุนายน แต่จนถึงเดือนกันยายน ผู้วิจัยไม่สามารถได้รับคำตอบที่ชัดเจน เขาคิดว่าพฤติกรรมนี้เกิดจากการที่เขาไม่ใช่คนแรกที่รายงานข้อผิดพลาดนี้ ความสงสัยว่ามีบางอย่างผิดปกติเกิดขึ้นในเดือนกันยายน เมื่อปัญหายังไม่ได้รับการแก้ไขหลังจากปล่อยอัปเดตเฟิร์มแวร์ในอีก 90 วันต่อมา หลังจากระยะเวลาไม่เปิดเผยข้อมูลดังกล่าวหมดลงแล้ว

เนื่องจากความพยายามทั้งหมดเพื่อค้นหาสถานะของรายงานปัญหาที่ส่งมานำไปสู่การยกเลิกการสมัครโดยอัตโนมัติและแม่แบบ ผู้วิจัยจึงพยายามติดต่อพนักงานของ Google เป็นการส่วนตัวเพื่อชี้แจงสถานการณ์ด้วยการเตรียมการแก้ไข และยังแสดงให้เห็นถึงช่องโหว่ในสำนักงานของ Google ในลอนดอน หลังจากนั้นงานเพื่อกำจัดช่องโหว่ก็เดินหน้าต่อไป ในระหว่างการวิเคราะห์ ปรากฎว่ามีคนรายงานปัญหามาก่อนแล้ว แต่ Google ตัดสินใจยกเว้นและให้รางวัลสำหรับการรายงานปัญหาอีกครั้ง เนื่องจากต้องขอบคุณความอุตสาหะของผู้เขียนเท่านั้นที่สังเกตเห็นปัญหา .

ที่มา: opennet.ru

เพิ่มความคิดเห็น