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

Evasión de defensa


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

Los ciberdelincuentes utilizan métodos para evitar las herramientas de protección para evitar la detección de su actividad maliciosa o en combinación con otras técnicas de ataque para lograr ciertos objetivos tácticos como resultado de socavar la protección específica. Por lo tanto, la evasión de defensa puede considerarse como un conjunto de técnicas utilizadas por el enemigo en todas las etapas 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 .

Descubrimiento de aplicaciones


Plataforma: Android, iOS
Descripción: los atacantes pueden intentar identificar todas las aplicaciones instaladas en el dispositivo para identificar la disponibilidad de medidas de seguridad que pueden aumentar el riesgo de detección, o viceversa: determinar las aplicaciones que serán objeto de un ataque adicional.

Las aplicaciones de Android pueden usar el método de clase PackageManager para enumerar otras aplicaciones u otro objeto de línea de comandos para usar el comando pm. Las aplicaciones de iOS pueden usar llamadas API privadas para obtener una lista de aplicaciones instaladas en el dispositivo. Sin embargo, es probable que sea imposible distribuir una aplicación usando llamadas API privadas a través de AppStore.

Recomendaciones de protección: los métodos para verificar las aplicaciones de Android deben incluir medios para detectar el uso de la clase PackageManager por parte de las aplicaciones para enumerar otras aplicaciones con el fin de realizar análisis adicionales. Sin embargo, este enfoque puede ser poco práctico porque Muchas aplicaciones pueden llamar a los métodos de la clase PackageManager como parte de su trabajo habitual. En iOS, los métodos de validación pueden buscar llamadas API privadas de manera similar, sin embargo, es importante tener en cuenta que una aplicación que use llamadas API privadas probablemente no será aceptada en la AppStore.

Enmascarar el acceso a la raíz o los indicadores de jailbreak (Disfraz de raíz / indicadores de jailbreak)


Plataforma: Android, iOS
Descripción: Un adversario puede usar el conocimiento de los algoritmos de seguridad para evitar la detección. Por ejemplo, algunas herramientas de seguridad de dispositivos móviles detectan un compromiso al identificar artefactos específicos, como el binario su instalado, pero puede omitir esta verificación nombrando el binario de manera diferente. Un adversario puede usar un código polimórfico para evitar la detección mediante análisis de firma.

Descargar New Code en Runtime


Plataforma: Android, iOS
Descripción: para evitar la detección de código malicioso durante las comprobaciones en un entorno corporativo o tienda de aplicaciones utilizando métodos de análisis de código estático (posiblemente dinámico), una aplicación maliciosa puede descargar y ejecutar código dinámico (no incluido en el paquete de la aplicación) después de su instalación.
En Android, el código dinámico puede incluir código nativo, código Dalvik o código JavaScript que utiliza la función Javascript WebInterface Android WebView. IOS también tiene métodos para ejecutar código dinámico cargado después de instalar la aplicación.

Recomendaciones de protección: las tecnologías de verificación de aplicaciones (análisis estático y dinámico) pueden detectar signos de que la aplicación está cargando nuevo código en tiempo de ejecución (por ejemplo, en Android está usando DexClassLoader, System.load o WebView JavaScryptInterface, en iOS está usando JSPatch o características similares). Desafortunadamente, este es solo un método parcial para mitigar riesgos, ya que las aplicaciones identificadas requerirán una verificación adicional debido al hecho de que estos métodos a menudo son utilizados por desarrolladores sin intenciones maliciosas, y también porque las aplicaciones pueden usar otros métodos, como ocultar Uso de métodos de carga de código en tiempo de ejecución.

Instalar configuración insegura o maliciosa


Plataforma: Android, iOS
Descripción: un adversario puede intentar instalar una configuración insegura o maliciosa en un dispositivo móvil mediante un correo electrónico de phishing o un mensaje de texto que contenga un archivo de configuración como archivo adjunto o un enlace web a los parámetros de configuración. Al establecer los parámetros de configuración, el usuario puede ser engañado utilizando métodos de ingeniería social. Por ejemplo, al configurar una configuración, se puede colocar un certificado no deseado de una autoridad de certificación (CA) en el almacén de certificados de confianza del dispositivo, lo que aumentará la susceptibilidad del dispositivo a ataques de personas intermedias.

En iOS, los perfiles de configuración maliciosos pueden contener certificados de Autoridad de certificación (CA) no deseados u otras configuraciones inseguras, como la dirección de un servidor proxy o VPN no deseado para enrutar el tráfico del dispositivo a través de un sistema atacante o registrar el dispositivo objetivo con un sistema de administración de dispositivos móviles (MDM) enemigo.

Recomendaciones de protección: en iOS 10.3 y superior, se agrega un paso adicional que requiere que el usuario tome ciertas acciones para instalar nuevos certificados de CA confiables. Las aplicaciones de Android compatibles con Android 7 y superior (nivel de API 24), de manera predeterminada, confían solo en los certificados de CA que se entregan con el sistema operativo y no son agregados por el usuario o el administrador, lo que reduce su susceptibilidad a ataques de hombre en el medio.

En general, las configuraciones de configuración inseguras o maliciosas no se establecen sin el consentimiento del usuario. Los usuarios no deben establecer parámetros de configuración inesperados (certificados de CA, perfiles de configuración de iOS, conexiones MDM).

En Android, un usuario puede ver certificados de CA confiables a través de la configuración del dispositivo para identificar certificados sospechosos. Del mismo modo, las protecciones de dispositivos móviles pueden verificar las tiendas de certificados en busca de anomalías. En iOS, un usuario puede ver los perfiles de configuración instalados a través de la configuración del dispositivo e identificar perfiles sospechosos. Del mismo modo, los sistemas MDM pueden usar la API MDM de iOS para verificar las listas de perfiles instalados en busca de anomalías.

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, 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 u otro código de partición de arranque. Si el gestor de arranque aún no está desbloqueado, queda la posibilidad potencial de utilizar vulnerabilidades para actualizar el código del kernel.

Recomendaciones de protección: en un entorno corporativo, organice la instalación de actualizaciones de seguridad, la introducción de la certificación remota de dispositivos móviles (Android SafetyNet, Samsung KNOX TIMA) y también evite que los dispositivos que no han pasado la certificación accedan a los recursos corporativos. Verifique el 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 proporciona capacidades de certificación remota en dispositivos Samsung Android compatibles. Los dispositivos Samsung KNOX incluyen un fusible de bits irreversible que funcionará si se carga un núcleo que no sea 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 el adversario aumenta los privilegios, podrá usarlos para colocar código malicioso en la sección del sistema del dispositivo, donde el código se guardará después de reiniciar el 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 proporciona capacidades de control remoto en 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 adecuados, un atacante puede intentar colocar código malicioso en un tiempo de ejecución confiable (TEE) 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.

Archivos o información ofuscados


Plataforma: Android, iOS
Descripción: un desarrollador de aplicaciones malintencionadas puede aplicar métodos de ofuscación o encriptación de código que se desofusca y descifra durante la ejecución de la aplicación en el dispositivo de destino.

Recomendaciones de protección: las herramientas de verificación de aplicaciones pueden advertir sobre la presencia de código ofuscado o cifrado en las aplicaciones. Desafortunadamente, tales comprobaciones no son efectivas, ya que muchas aplicaciones usan ofuscación y cifrado para protegerse contra las técnicas de modificación, como el reempaquetado de la aplicación. El análisis dinámico en algunos casos puede identificar código ofuscado o cifrado al detectarlo en tiempo de ejecución en texto claro. Algunas herramientas de verificación de aplicaciones utilizan análisis de reputación del desarrollador y pueden advertir sobre aplicaciones potencialmente peligrosas sin analizar realmente el código.

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


All Articles