ثغرة أمنية في Android تسمح لك بتجاوز شاشة القفل

تم تحديد ثغرة أمنية في نظام Android الأساسي (CVE-2022-20465) التي تسمح بتعطيل قفل الشاشة عن طريق تبديل بطاقة SIM وإدخال رمز PUK. تم إثبات القدرة على تعطيل القفل على أجهزة Google Pixel ، ولكن نظرًا لأن الإصلاح يؤثر على قاعدة رموز Android الرئيسية ، فمن المحتمل أن تؤثر المشكلة أيضًا على البرامج الثابتة من الشركات المصنعة الأخرى. تمت معالجة المشكلة في لفة تصحيح أمان Android لشهر نوفمبر. الباحث الذي لفت الانتباه إلى المشكلة حصل على مكافأة قدرها 70 ألف دولار من جوجل.

سبب المشكلة هو معالجة غير صحيحة لإلغاء القفل بعد إدخال رمز PUK (مفتاح فك القفل الشخصي) ، والذي يستخدم لإعادة تنشيط بطاقة SIM التي تم قفلها بعد عدة إدخالات غير صحيحة لرقم التعريف الشخصي. لتعطيل قفل الشاشة ، كل ما عليك فعله هو إدخال بطاقة SIM في هاتفك ، الذي يتمتع بحماية قائمة على رقم التعريف الشخصي. بعد تغيير بطاقة SIM المحمية برمز PIN ، يتم عرض طلب رمز PIN أولاً على الشاشة. إذا تم إدخال رمز PIN بشكل غير صحيح ثلاث مرات ، فسيتم حظر بطاقة SIM ، وبعد ذلك ستتاح لك الفرصة لإدخال رمز PUK لإلغاء قفله. اتضح أن الإدخال الصحيح لرمز PUK لا يؤدي إلى إلغاء قفل بطاقة SIM فحسب ، بل يؤدي إلى الانتقال إلى الواجهة الرئيسية متجاوزًا شاشة التوقف ، دون تأكيد الوصول باستخدام كلمة المرور أو النمط الرئيسي.

الثغرة الأمنية ناتجة عن خطأ في منطق التحقق من رموز PUK في معالج KeyguardSimPukViewController ، وهو المسؤول عن عرض شاشة مصادقة إضافية. يستخدم Android أنواعًا عديدة من شاشات المصادقة (لـ PIN و PUK وكلمة المرور والنمط والمصادقة البيومترية) ويتم استدعاء هذه الشاشات بالتسلسل عند الحاجة إلى عمليات تحقق متعددة ، على سبيل المثال عندما يكون كل من PIN والنمط مطلوبين.

إذا تم إدخال رمز PIN بشكل صحيح ، يتم تشغيل المرحلة الثانية من التحقق ، والتي تتطلب إدخال رمز إلغاء القفل الرئيسي ، ولكن عند إدخال رمز PUK ، يتم تخطي هذه المرحلة ويتم منح الوصول دون طلب كلمة المرور أو النمط الرئيسي. يتم تجاهل مرحلة إلغاء الحظر التالية لأنه عندما يتم استدعاء KeyguardSecurityContainerController # رفض () ، لا تتم مقارنة طريقة الفحص المتوقعة والتي تم اجتيازها ، أي يعتبر المعالج أن تغيير طريقة التحقق لم يحدث وأن إكمال التحقق من رمز PUK يشير إلى تأكيد ناجح للسلطة.

تم اكتشاف الثغرة بالصدفة - نفدت بطارية هاتف المستخدم ، وبعد الشحن وتشغيله ، أخطأ عند إدخال رمز PIN عدة مرات ، وبعد ذلك قام بإلغاء قفل رمز PUK وتفاجأ بأن النظام لم يفعل ذلك. طلب كلمة المرور الرئيسية المستخدمة لفك تشفير البيانات ، وبعد ذلك تم تعليقها بالرسالة "Pixel is started ...". تبين أن المستخدم كان دقيقًا ، وقرر معرفة ما يجري وبدأ في تجربة إدخال رموز PIN و PUK بطرق مختلفة ، حتى نسي بطريق الخطأ إعادة تشغيل الجهاز بعد تغيير بطاقة SIM والوصول إلى البيئة بدلاً من تجميد.

من الأمور ذات الأهمية الخاصة استجابة Google لتقرير الضعف. تم إرسال معلومات حول المشكلة في يونيو ، ولكن حتى سبتمبر ، لم يتمكن الباحث من الحصول على إجابة واضحة. وأعرب عن اعتقاده أن هذا السلوك يرجع إلى حقيقة أنه لم يكن أول من أبلغ عن هذا الخطأ. نشأت شكوك حول وجود خطأ ما في سبتمبر عندما ظلت المشكلة غير مصححة بعد إصدار تحديث البرنامج الثابت بعد 90 يومًا ، بعد انتهاء فترة عدم الإفصاح المذكورة بالفعل.

نظرًا لأن جميع المحاولات لمعرفة حالة تقرير المشكلة المقدم لم تؤد إلا إلى إلغاء الاشتراكات آليًا ونموذجًا ، فقد حاول الباحث الاتصال شخصيًا بموظفي Google لتوضيح الموقف من خلال إعداد الإصلاح ، وحتى أظهر ثغرة أمنية في مكتب Google في لندن. بعد ذلك فقط ، تم المضي قدمًا في العمل على القضاء على الضعف. أثناء التحليل ، اتضح أن شخصًا ما قد أبلغ عن المشكلة بالفعل من قبل ، لكن Google قررت إجراء استثناء ودفع مكافأة لإعادة الإبلاغ عن المشكلة ، حيث أنه بفضل مثابرة مؤلفها فقط تم ملاحظة المشكلة .

المصدر: opennet.ru

إضافة تعليق