Durante los últimos días se ha hablado acerca de Android/NoComA, una nueva amenaza para la plataforma móvil de Google que es utilizada para instalar falsas actualizaciones de Android. Este código malicioso se propaga a través de páginas web que han sido vulneradas, en dónde se inyectó código malicioso para afectar a los usuarios de Android, presenta ciertas características que representan un riesgo para la seguridad del usuario. Hoy vamos a hablar acerca de algunas particularidades de esta amenaza y entender como se conecta a los servidores remotos una vez que infecta el dispositivo. Además repasaremos la estructura de la amenaza para ver de qué manera mitigar el impacto de este malware.

Para entender el alcance de NotCompatible primero necesitamos observar la información dentro del AndroidManifest.xml, dicho archivo contiene información básica de las aplicaciones para Android, como por ejemplo los permisos, actividades y servicios. A diferencia de otras amenazas para esta plataforma, Android/NoComA, no solicita una gran cantidad de permisos y tampoco utiliza con un exploit para obtener permisos de root (Administrador del dispositivo). Para su ejecución solicita acceso a Internet, al estado de red y además también es notificado cuando finaliza el inicio del sistema. En la siguiente captura podemos observar el contenido del archivo AndroidManifest.xml en dónde se filtran los eventos de inicio del Sistema Operativo (BOOT_COMPLETED) o la interacción del usuario (USER_PRESENT) para disparar la ejecución de  OnBootReceiver que dará inicio a la ejecución de la amenaza en el sistema:

Cómo mencionamos anteriormente, la ejecución de la amenaza en el sistema se dispara a través de dos eventos en particular. El primero de ellos es para asegurarse la ejecución del código malicioso ante el inicio del sistema y el segundo, para poder interactuar con el usuario. El objetivo final de este código malicioso no es robar información, sino que busca engañar al usuario para que instale falsas actualizaciones de seguridad en el sistema, lo que podría llevar a la infección de distintos tipos de amenazas mediante el uso de Ingeniería Social. Lo que realmente hace este malware detectado por ESET Mobile Security como Android/NoComA, es crear una conexión a un servidor remoto desde dónde se descargan supuestas actualizaciones y se reciben comandos.

El archivo que contiene los datos de conexión se encuentra con el nombre data.bin dentro del directorio "/data/data/com.Security.Update/files/", y su contenido se encuentra cifrado. Sin embargo, a través de un análisis estático de este troyano podemos observar cómo es el proceso para cargar la información del archivo de configuración, obtener la clave que permite acceder a los datos de configuración. Cuando se ejecuta el método  OnBootReceiver.onReceive() se llama a la actividad principal  SecurityUpdateService, desde dónde se inicia la carga de malware y la conexión a los servidores remotos.

Android/NoComA cuenta por defecto con 2 servidores a los que intenta conectarse para recibir comandos y descargar otras amenazas. Primero se llama a las rutinas de configuración para luego iniciar las conexiones a los servidores remotos. Una de las secciones de código más importantes de esta amenaza es la sección de cifrado de la información. Como se puede observar en la imagen, luego de comenzar la carga de la información se ejecutan las rutinas para desencriptar el contenido del archivo data.bin:

En este caso en particular la clave para cifrar la información es "ZTY4MGE5YQo", pero para poder obtener los datos del archivo primero se pasa el contenido de la cadena de texto a un conjunto de bytes, y se calcula la función Hash SHA-256. Pero eso no es todo, luego se utiliza un cifrado con AES que se realiza al llamar al método Load() perteneciente a la clase Config() en donde se obtiene la clave (a través del método Decrypt()). Una vez que ya se tiene la clave, se lee el archivo y se obtienen los datos de conexión. Ahora el módulo de conexión se encarga de obtener la información desde una dirección URL remota y no solo descargar otras amenazas sino que además es capas de entender otros comandos de gestión.

Entre los puntos de mitigación de este código malicioso hay ciertos detalles a tener en cuenta. En primera instancia, siempre se necesita de la interacción del usuario, los permisos de la aplicación le permiten realizar la conexión pero es la víctima quien tiene que aceptar la descarga e instalar la supuesta actualización de seguridad. Además, el smartphone tiene que estar configurado para aceptar la instalación de aplicaciones de fuentes desconocidas, un detalle no menor en cuanto a los conceptos de seguridad para dispositivos móviles con Android. Para evitar este tipo de ataques contra sus smartphones es recomendable contar con una solución de seguridad que proteja la información almacenada en el dispositivo. Día a día se están detectando nuevas variantes de códigos maliciosos para los dispositivos móviles, además de la utilización de técnicas de propagación similares a los equipos de escritorio.

Pablo Ramos
Especialista de Awareness & Research