Vulnerabilidad en Android que permite eludir el bloqueo de pantalla

Se ha identificado una vulnerabilidad en la plataforma Android (CVE-2022-20465) que permite desactivar el bloqueo de pantalla mediante el cambio de la tarjeta SIM y la entrada del código PUK. Se demostró la posibilidad de desactivar el bloqueo en dispositivos Google Pixel, pero dado que la corrección afecta la base de código principal de Android, es probable que el problema también afecte a las firmwares de otros fabricantes. El problema se solucionó en el conjunto de correcciones de seguridad de noviembre de Android. El investigador que señaló el problema recibió una recompensa de 70,000 dólares por parte de Google.

El problema es causado por un manejo incorrecto del desbloqueo tras la introducción del código PUK (Personal Unblocking Key), que se utiliza para reactivar una tarjeta SIM bloqueada tras múltiples intentos incorrectos de PIN. Para desactivar el bloqueo de pantalla, solo es necesario insertar la tarjeta SIM en el teléfono, la cual tiene la protección basada en PIN. Después de cambiar a la tarjeta SIM protegida por PIN, inicialmente se solicita el código PIN. Si se ingresa incorrectamente tres veces, la tarjeta SIM se bloqueará, y entonces se ofrecerá la posibilidad de ingresar el código PUK para desbloquearla. Resultó que ingresar correctamente el código PUK no solo desbloquea la tarjeta SIM, sino que también permite acceder a la interfaz principal eludiendo el protector de pantalla, sin necesidad de confirmar el acceso con la contraseña principal o un patrón gráfico.

Reproducir video

La vulnerabilidad es el resultado de un error en la lógica de verificación de los códigos PUK en el controlador KeyguardSimPukViewController, encargado de mostrar la pantalla adicional de autenticación. Android utiliza varios tipos de pantallas de autenticación (para PIN, PUK, contraseña, patrón gráfico, autenticación biométrica) y estas pantallas se invocan secuencialmente cuando se requieren múltiples verificaciones, por ejemplo, cuando se necesita tanto el PIN como el patrón gráfico.

Al introducir correctamente el código PIN, se activa la segunda etapa de verificación, que requiere la entrada del código principal de desbloqueo. Sin embargo, al introducir el código PUK, se omite esta etapa y se concede el acceso sin solicitar el código principal o el patrón gráfico. La omisión de la siguiente etapa de desbloqueo se realiza porque al invocar KeyguardSecurityContainerController#dismiss() no se compara el método de verificación esperado con el ya realizado, es decir, el manejador considera que no ha habido un cambio en el método de verificación, y la finalización de la verificación del código PUK indica una confirmación exitosa de las credenciales.

La vulnerabilidad fue descubierta por accidente: el teléfono del usuario se quedó sin batería y, después de cargarlo y encenderlo, cometió varios errores al introducir el código PIN. Luego desbloqueó el dispositivo con el código PUK y se sorprendió de que el sistema no solicitara la contraseña principal utilizada para descifrar los datos, tras lo cual se quedó congelado con el mensaje «Pixel is starting…». El usuario, siendo inquisitivo, decidió investigar el asunto y comenzó a experimentar de diversas maneras con la entrada de códigos PIN y PUK, hasta que accidentalmente olvidó reiniciar el dispositivo después de cambiar la tarjeta SIM y en lugar de congelarse, obtuvo acceso al entorno.

Es especialmente interesante la reacción de Google ante el informe sobre la vulnerabilidad. La información sobre el problema fue enviada en junio, pero hasta septiembre el investigador no pudo obtener una respuesta clara. Consideró que esto se debía a que no era el primero en informar sobre este error. Las sospechas de que algo no iba bien surgieron en septiembre, cuando el problema permaneció sin resolverse tras la instalación de una actualización del firmware, lanzada 90 días después, cuando ya había expirado el período de divulgación estipulado.

Dado que todos los intentos de averiguar el estado del mensaje enviado sobre el problema solo llevaron a respuestas automatizadas y genéricas, el investigador intentó comunicarse personalmente con los empleados de Google para aclarar la situación sobre la preparación de una solución y, de hecho, demostró la vulnerabilidad en la oficina de Google en Londres. Solo después de esto, el trabajo para corregir la vulnerabilidad avanzó. Durante la revisión, se descubrió que alguien ya había informado sobre el problema anteriormente, pero Google decidió hacer una excepción y pagar una recompensa por el informe repetido del problema, ya que solo gracias a la perseverancia de su autor se prestó atención al asunto.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster