Seleccionar página

En este mundo digital moderno, a menudo lo que más nos preocupa son las estafas y los hackeos remotos cuando se trata de la seguridad de los dispositivos, pero el acceso físico a un dispositivo puede brindar una gran oportunidad para un atacante específico. Ese es el caso con un conjunto de vulnerabilidades (afortunadamente solucionadas) encontradas por el equipo Project Zero de Google, que requieren acceso al puerto USB de un dispositivo. Si es un aficionado a la seguridad, es posible que recuerde esto del parche de seguridad de septiembre de 2018, señalado brevemente como un problema que podría "permitir que un atacante local eluda los requisitos de interacción del usuario para obtener acceso a permisos adicionales".

En otras palabras, todo lo que el atacante tiene que hacer es conectar una memoria USB a su teléfono y, bam, están dentro. Bueno, siempre que sean lo suficientemente inteligentes como para descubrir cómo explotar dos vulnerabilidades clave de Android relacionadas con el almacenamiento mientras haciendo algo de creación de hardware ligero. Simple.

ANDROIDPOLICE VÍDEO DEL DÍA

De acuerdo, no es simple, pero ahora hay un ensayo completo paso a paso al respecto en Project Zero, por lo que es bastante accesible en este punto. Es por eso que los parches de seguridad oportunos y las actualizaciones de la versión son tan cruciales (aquí los estamos mirando, fabricantes de Android que no son Google, Essential y BlackBerry).

Y en caso de que se esté preguntando por qué Google hace lo que hace, la política de divulgación de vulnerabilidades de la empresa requiere que se adhiera a un plazo de 90 días antes de la revelación pública (a menos que el error esté siendo explotado activamente, en cuyo caso son siete días). Esto es para dar a los proveedores tiempo para emitir un parche, pero también para aplicar presión para asegurarse de que se solucione.

Aparte de eso, permita que este investigador que no es de seguridad lo guíe a través de una versión extremadamente simplificada del informe Project Zero:

Paso 1: Identifique el objetivo y obtenga acceso

Consigue cualquier teléfono Android con software que sea anterior a Android Pie y el parche de seguridad de septiembre de 2018. Además, tiene que admitir el modo de host USB, que es bastante frecuente. Google usó el Pixel 2.

Paso 2: Encuentra tu camino

El puerto USB es tu punto de apoyo. Cuando se inserta una memoria USB en el teléfono, puede copiar archivos entre el sistema del teléfono y la memoria e incluso si el teléfono está bloqueado, en las versiones de Android anteriores a Pie, el dispositivo seguirá intentando montar el USB. Afortunadamente, con Pie, Google creó una solución que bloquea el montaje de las memorias USB mientras el dispositivo está bloqueado. El resto de los problemas, detallados a medida que avanzamos, se solucionaron con los parches de agosto y septiembre de 2018.

Paso 3: Hacer contacto

Conecte la memoria USB. Ahora se está comunicando con el núcleo más importante (el núcleo del sistema operativo del teléfono) y vold, abreviatura de demonio de volumen, que maneja el montaje del almacenamiento externo y tiene privilegios equivalentes al núcleo. Va a investigar las particiones de los tipos de sistemas de archivos en la memoria USB.

Paso 4: aléjate

Ahora, el teléfono buscará tres atributos clave de cada etiqueta de partición, identificador único y tipo de sistema de archivos. Los esquemas de partición más antiguos no pueden almacenar los dos últimos, por lo que Android extrae esa información por sí mismo, invocando una herramienta llamada blkid. Por lo tanto, es posible falsificar su entrada con una etiqueta diseñada, un identificador único elegido por usted (una cadena de números llamada UUID) y uno de un conjunto fijo de tipos.

Hay una falla en la forma en que vold analiza el UUID y el tipo, por lo que al jugar con los datos correctamente, puede engañar al teléfono para que monte la unidad flash en la parte incorrecta del sistema de archivos del teléfono.

Paso 5: Hay un problema

¡Pero espera! No es tan fácil, hay limitaciones. Por un lado, con el tipo de sistema de archivos que está usando, la etiqueta está limitada a 11 bytes, y escribir la primera parte de su ataque 'UUID="' usa solo seis bytes. Eso deja solo cinco caracteres para escribir en un destino del directorio, y con ese límite, no podrá profundizar mucho en el sistema, por lo que no puede causar muchos estragos.

Paso 6: Solución alternativa

Hay algunos tipos de sistemas de archivos que tienen etiquetas más largas, pero tendrá que pasar por un conjunto separado de controles. Para que esto funcione, esencialmente deberá proporcionar diferentes respuestas a la misma pregunta, por lo que una unidad USB normal no funcionará. Aquí es donde rompes el antiguo Raspberry Pi y creas un dispositivo de almacenamiento falso que es capaz de cambiar las respuestas según sea necesario. Con este gadget, su camino está despejado para capturar fotos del almacenamiento externo.

Paso 7: profundizar más

¿Necesitas más que fotos? Engañe aún más al teléfono para que piense que está montando una memoria USB más segura (PrivateVolume, en lugar de PublicVolume). Haga esto colocando su propia clave privada en lo que parecen ser los datos del teléfono, luego monte un segundo dispositivo, que puede conectar a ese nivel más alto de confianza del sistema usando la clave que creó usted mismo. Ahora puede montar su propio sistema de archivos sobre los datos de usuario del teléfono, con sus propias reglas. Debido a que usted controla esos permisos, puede permitir que cualquier proceso acceda a los archivos de su sistema.

Paso 8: Vamos profundo

El proceso del cigoto es un buen objetivo. El cigoto tiene acceso a casi todos los datos del usuario en el dispositivo. Cuando se inicia en un arranque del sistema, puede inyectar su propia biblioteca maliciosa de archivos de formato ejecutable y vinculable (ELF), lo que lo ayudará a obtener un nivel de control aún mayor sobre el teléfono. Sin embargo, una cosa. Cuando atacas, el cigoto ya está corriendo.

Paso 9: Hora de estrellarse

Encuentre una manera de matar el dispositivo, para que pueda inyectar el cigoto mientras se inicia. Google eligió desencadenar un bloqueo aprovechando una verificación de seguridad de uso de ancho de banda que se activa si no puede escribir en el disco y entró más de una cierta cantidad de tráfico de red desde la última escritura exitosa. No dijo si esto también se arregló.

Paso 10: tiempo de dominación mundial (o telefónica)

Su malvado cigoto transformado puede eludir los controles de seguridad e infiltrarse en el mecanismo utilizado para crear volcados de procesos fallidos (crash_dump) para hacerse cargo de vold, otorgándole privilegios equivalentes al kernel.

Paso 11: Aún MÁS

A partir de ahí, es posible que pase de vold al proceso de inicialización para Linux con seguridad mejorada. Después de eso, incluso puede acceder al kernel, por lo que obtiene el control total y completo del dispositivo. Un trabajo bien hecho.

Cosas aterradoras, fascinantes y extremadamente complicadas, ¿verdad? La moraleja de la historia es: obtén esas actualizaciones de seguridad lo más rápido que puedas y nunca conectes tu teléfono a dispositivos/cables que no sean de confianza. Nuestras identidades digitales existen en sistemas increíblemente complejos y, a veces, frágiles. Informes como este nos dan un claro recordatorio.

Si desea profundizar más en los detalles, consulte el resumen aún más detallado en el enlace de la fuente.

Fuente: Google

Video: