Estudiamos MITRE ATT & CK. Matrices móviles: acceso a dispositivos. Parte 2

Persistencia y escalada de privilegios


Enlaces a todas las partes:
Parte 1. Acceso inicial a un dispositivo móvil (acceso inicial)
Parte 2. Persistencia y escalada
Parte 3. Obtención de acceso de credenciales (acceso de credenciales)
Parte 4. Evasión de defensa
Parte 5. Descubrimiento y movimiento lateral

Las técnicas de fijación describen cómo obtener derechos de acceso, cambiar la configuración de un dispositivo móvil y otras acciones, como resultado de lo cual un atacante asegura que su presencia en el sistema sea constante. A menudo, un adversario se ve obligado a mantener el acceso a un dispositivo móvil a pesar de la pausa del sistema operativo como resultado de un reinicio o reinicio del sistema a la configuración de fábrica.

Después de establecerse en el sistema, el adversario tiene la oportunidad de "iniciar sesión" en un dispositivo móvil, pero probablemente con derechos muy limitados. Sin embargo, al aprovechar las debilidades de defensa, un adversario puede obtener los privilegios más altos necesarios para lograr el objetivo del ataque.

El autor no es responsable de las posibles consecuencias de aplicar la información establecida en el artículo, y también se disculpa por posibles imprecisiones hechas en algunas formulaciones y términos. La información publicada es un recuento gratuito de los contenidos de ATT @ CK Mobile Matrices: Device Access .

Encuadernación (persistencia)


Abusar del acceso del administrador del dispositivo para evitar la eliminación


Plataforma: Android
Descripción: una aplicación malintencionada puede solicitar al usuario derechos de administrador del dispositivo y, si se obtienen privilegios, realizar manipulaciones que dificulten su eliminación.

Recomendaciones de protección:
Prevalidación de la solicitud
Por lo general, las aplicaciones rara vez usan acceso administrativo. En el entorno corporativo, el examen preliminar de las aplicaciones debe identificar dichos programas con el objetivo de un estudio más profundo. Maggi y Zanero describieron el enfoque de realizar análisis estáticos de aplicaciones para identificar aplicaciones de ransomware que abusan del acceso del administrador del dispositivo. En pocas palabras, la detección de aplicaciones de ransomware consiste en la detección temprana de los siguientes indicadores en el archivo apk: texto amenazante, un código asociado con el bloqueo del uso del dispositivo (diálogos no eliminables, prohibición de botones de navegación, llenar la pantalla con una ventana, etc.), cifrado de datos o abuso de la API de administrador.

Precaución al usar el acceso de administrador del dispositivo
Se debe advertir a los usuarios de dispositivos móviles que no deben aceptar solicitudes para otorgar privilegios de administrador a las aplicaciones. Además, la aplicación debe verificarse para el uso de los derechos de administrador antes de su instalación, y las aplicaciones necesarias que solicitan acceso de administrador al dispositivo deben estudiarse cuidadosamente y permitirse su uso solo si hay una buena razón. Los usuarios de Android pueden ver la lista de aplicaciones que tienen derechos de administrador en la configuración del dispositivo.

Usando las últimas versiones del sistema operativo
Las últimas versiones del sistema operativo, como regla, contienen no solo parches, sino que también tienen una arquitectura de seguridad mejorada que proporciona resistencia a vulnerabilidades no detectadas anteriormente. Por ejemplo, Android 7 introdujo cambios para evitar la posibilidad de abuso de los derechos de administrador.

Aplicación de inicio automático en el dispositivo de arranque (Inicio automático de la aplicación en el arranque del dispositivo)


Plataforma: Android
Descripción: la aplicación de Android puede escuchar la transmisión de mensajes de transmisión BOOT_COMPLITED, lo que garantiza su activación cada vez que se inicia el dispositivo, sin esperar a que el usuario lo inicie manualmente. BOOT_COMPLITED es un evento de difusión en Android, que notifica a las aplicaciones sobre el final del proceso de arranque del sistema operativo. Cualquier aplicación equipada con un receptor BroadcastRecevier especial puede recibir mensajes de difusión y tomar medidas basadas en ellos. Un análisis de 1260 aplicaciones maliciosas para Android, publicado en 2012, mostró que el 83.3% del malware escuchó BOOT_COMPLITED.

Recomendaciones de protección: en un entorno corporativo, es posible organizar la verificación de la aplicación para identificar los programas que anuncian BroadcastReceiver, que contiene un filtro de intención por BOOT_COMPLITED. Sin embargo, dado el gran aumento en el número de aplicaciones con este comportamiento, este método es extremadamente poco práctico.

Modificar el núcleo del sistema operativo o la partición de arranque (Modificar el núcleo del sistema operativo o la partición de arranque)


Plataforma: Android, iOS
Descripción: Nombre una oportunidad para aumentar los privilegios, un adversario puede intentar colocar código malicioso en el núcleo del sistema operativo o los componentes de la partición de arranque, donde el código no se puede detectar, se guardará después de que el dispositivo se reinicie y el usuario no puede eliminarlo. En algunos casos (por ejemplo, cuando se utiliza Samsung Knox ), se puede detectar un ataque, pero conducirá a la transferencia del dispositivo al modo de funcionalidad limitada.

Muchos dispositivos Android ofrecen la capacidad de desbloquear el gestor de arranque para fines de desarrollo, pero esta funcionalidad brinda la capacidad de actualizar maliciosamente el núcleo o modificar el código de partición de arranque. Si el gestor de arranque no está desbloqueado, queda el potencial de explotar vulnerabilidades para actualizar el código del kernel.

Recomendaciones de protección: instale actualizaciones de seguridad, implemente sistemas de certificación remotos (Android SafetyNet, Samsung KNOX TIMA) y bloquee el acceso a recursos corporativos para dispositivos no certificados. Organice una verificación del estado de bloqueo del cargador de arranque en los dispositivos que brindan la capacidad de desbloquear el cargador de arranque (por lo tanto, permite que cualquier código del sistema operativo se escriba en el dispositivo).

La API de certificación de Android SafetyNet se puede utilizar para identificar y responder de forma remota a dispositivos comprometidos. Samsung KNOX ofrece la capacidad de validar de forma remota dispositivos Samsung con Android. Los dispositivos Samsung KNOX incluyen un "fusible de bits de garantía Knox no reversible" que funcionará si se carga un kernel no KNOX en el dispositivo. Cuando se activa, los servicios de contenedor KNOX empresarial no estarán disponibles en el dispositivo. Como se describe en la Guía de seguridad de iOS, los dispositivos iOS no pueden arrancar ni permitir la activación del dispositivo si se detectan cambios no autorizados. Muchas aplicaciones empresariales realizan sus propias verificaciones para detectar y responder a dispositivos comprometidos. Tales comprobaciones no son un medio confiable, pero pueden detectar los principales signos de compromiso.

Modificar partición del sistema


Plataforma: Android, iOS
Descripción: si un adversario puede aumentar los privilegios, podrá usarlos para colocar código malicioso en la partición del sistema del dispositivo, donde permanecerá después del reinicio del sistema operativo y no será fácilmente accesible para su eliminación por parte del usuario. Muchos dispositivos Android le permiten desbloquear el gestor de arranque para fines de desarrollo. Esta característica también puede ser utilizada por un adversario para modificar una partición del sistema.

Recomendaciones de protección: los dispositivos Android con soporte de arranque verificado realizan una verificación criptográfica de la integridad de la partición del sistema. La API de Android SafetyNet se puede utilizar para identificar dispositivos comprometidos. Samsung KNOX también ofrece la capacidad de controlar de forma remota los dispositivos compatibles. Los dispositivos IOS no se iniciarán o no permitirán la activación de un dispositivo en el que se detecten cambios no autorizados.

Modificación TEE (Modificar entorno de ejecución confiable)


Plataforma: Android
Descripción: con los privilegios apropiados, un atacante puede intentar colocar código malicioso en un tiempo de ejecución confiable (TEE) de un dispositivo u otro tiempo de ejecución aislado similar donde el código no sea detectable, se guardará después de que el dispositivo se reinicie y el usuario no pueda eliminarlo. Ejecutar código en TEE proporcionará a un adversario la capacidad de controlar o falsificar la operación del dispositivo.

Consejos de seguridad: los dispositivos deben realizar comprobaciones de integridad en el código que se ejecuta en TEE en el momento del arranque. iOS no se iniciará si el código que se ejecuta en Secure Enclave falla la verificación de firma digital.

Modificar código ejecutable en caché


Plataforma: Android
Descripción: para mejorar el rendimiento, Android Runtime (ART) compila el código de bytes (classes.dex) en el código de la máquina durante la instalación de la aplicación. Si un atacante aumenta los privilegios, puede modificar este código almacenado en caché. Como el código se compiló originalmente en el dispositivo, el control de integridad no se aplica a él, a diferencia del código de la partición del sistema.

Recomendaciones de protección: utilice las últimas versiones del sistema operativo móvil y la instalación obligatoria de parches de seguridad.

Escalada de privilegios


Exploit Vulnerabilidad del SO Exploit


Plataforma: Android, iOS
Descripción: las aplicaciones malintencionadas pueden aprovechar las vulnerabilidades sin parches del sistema operativo móvil para obtener privilegios avanzados.

Recomendaciones de protección: compruebe la aplicación en busca de vulnerabilidades conocidas. Instalar actualizaciones de seguridad. Usando las últimas versiones del sistema operativo.

Exploit Vulnerabilidad de TEE Exploit


Plataforma: Android
Descripción: las aplicaciones maliciosas u otros vectores de ataque se pueden utilizar para explotar vulnerabilidades en el código ejecutado en un Entorno de ejecución de confianza (TEE). El adversario puede obtener los privilegios que tiene TEE, incluida la capacidad de acceder a claves criptográficas u otros datos confidenciales. Para atacar a TEE, un adversario puede necesitar primero privilegios de sistema operativo elevados. De lo contrario, los privilegios de TEE se pueden utilizar para aprovechar las vulnerabilidades del sistema operativo.

Recomendaciones de protección: compruebe la aplicación en busca de vulnerabilidades conocidas. Instalar actualizaciones de seguridad. Usando las últimas versiones del sistema operativo.

Source: https://habr.com/ru/post/454714/


All Articles