Multi-trucos HiddenAds Malware | Blogs de McAfee


Miles de aplicaciones troyanas de HiddenAds se disfrazan como aplicaciones de Google Play

El equipo de investigación móvil de McAfee ha descubierto recientemente una nueva variante del troyano HiddenAds. HiddenAds Trojan es una aplicación de adware que se utiliza para mostrar publicidad y recopilar datos de usuario para marketing. El objetivo de tales aplicaciones es generar ingresos redirigiendo a los usuarios a anuncios. Por lo general, hay dos formas de ganar dinero con adware; la visualización de publicidad en la computadora de un usuario y un pago por clic realizado si un usuario hace clic en el anuncio.

Aunque se puede utilizar para difundir y mostrar publicidad en un programa de marketing de afiliación, el adware también se puede utilizar para propagar malware en un programa de fraude de afiliación. La mayoría de los programas de adware abusarán de una aplicación legítima para engañar al usuario y aumentar el número de instalaciones. En nuestro análisis, nos centramos en dos versiones falsas de aplicaciones populares de Android:

  • FaceApp: una aplicación utilizada para modificar fotos con aprendizaje automático.
  • Call of Duty: un famoso juego adaptado para Android.

Notamos que estas aplicaciones son muy populares y generalmente las descargan jóvenes. Además, ambas aplicaciones están utilizando el modelo de negocio de compra de aplicaciones. Estos dos elementos son interesantes porque aumentan las posibilidades de que las personas busquen versiones gratuitas y tengan pocas preocupaciones sobre la seguridad. También notamos varias otras variantes de HiddenAds que se hacen pasar por aplicaciones genuinas, como Spotify u otros juegos conocidos.

A nivel mundial, observamos más de 30,000 muestras relacionadas con esta campaña de HiddenAds.

https://www.virustotal.com/graph/g05e894f94d9b40ab9651e0b353a66b8b4eb54e6dc8884fc2b52b86e205bc8fcc

Figura 1. Campaña de Multi-trucos HiddenAds

Las muestras analizadas no están disponibles en Google Play Store; La entrega de las últimas variantes proviene principalmente de partes no confiables de Internet que proponen descargas de archivos APK. Los canales de YouTube también han sido vistos con enlaces maliciosos para descargar las aplicaciones falsas.

Estas variantes de HiddenAds utilizan algunas otras tecnologías interesantes para engañar a los usuarios y frustrar el análisis de los investigadores de malware. En esta publicación de blog, profundizaremos en el análisis de una aplicación de FaceApp falsa.

Canal de distribución

Estas muestras de malware se disfrazan de aplicaciones populares, por lo que, cuando un usuario quiere encontrar las aplicaciones de una fuente desconocida, puede ser infectado por malware. Por ejemplo, "Call of Duty" es un juego popular, con muchas personas buscando la versión móvil en línea. Si son desafortunados, pueden encontrar el resultado que se muestra a continuación:

Figura 2. Canal de distribución

En el video, el autor proporciona enlaces de descarga. Si hacemos clic en el enlace para descargar el archivo, recibimos "Call of Duty_1.0.4.apk" (como se ve en la Tabla 1). Si instalamos esta muestra en nuestros dispositivos, este malware nos infectará. Además, detectamos este malware en otras fuentes no confiables.

Técnicas de truco

  1. Truco del nombre de la aplicación.

Como usuario, reconocemos una aplicación por su nombre e icono. Como investigador, el nombre del paquete es una identificación de una aplicación. Esta variante usa nombres de aplicaciones, íconos y nombres de paquetes populares en la tienda Google Play, para engañar a los usuarios haciéndoles creer que son aplicaciones genuinas.

Tabla 1: Información básica de algunas muestras de amenazas.

Buscamos el nombre de la aplicación en Google Play y hacemos clic en el resultado de la búsqueda para ver sus detalles.

Figura 3. Información de FaceApp en Google Play.

Esta es una aplicación muy popular con compras en la aplicación. Si las víctimas quieren encontrar una versión crackeada gratuita de fuentes alternativas, pueden terminar con nuestra muestra de análisis. El nombre de la aplicación, el icono y el número de versión de la aplicación Google Play y la aplicación falsa son muy similares. Sin embargo, el tamaño del archivo es muy diferente, por lo que debemos tenerlo muy en cuenta.

  1. Truco de iconos.

Normalmente, los usuarios esperan que los iconos vistos antes y después de la instalación sean los mismos. En esta muestra, son diferentes. El ejemplo define dos iconos en el archivo AndroidManifest.xml; la etiqueta de actividad es "Configuración".

Figura 4.1. Se definen dos iconos en AndroidManifest.xml

Antes de instalar la muestra, la vemos en el Explorador de archivos, que muestra el primer icono (tv_icon.png). En la vista de instalación del sistema, también vemos el primer icono. Una vez que hacemos clic en el botón "Listo", la muestra se instala en el dispositivo y el sistema muestra el segundo icono (but_invertc.png).

Figura 4.2. Iconos antes / durante / después de la instalación

Este es el truco del icono. Los usuarios se sorprenden después de instalar la muestra, ya que no pueden encontrar el icono esperado en sus dispositivos; tal vez piensan que algo salió mal durante la instalación y la aplicación no pudo instalarse. En realidad, la aplicación ya ha sido instalada; está al lado del icono de la aplicación "Configuración" del sistema. Cuando un usuario va a iniciar la aplicación "Configuración" del sistema, tiene la posibilidad de hacer clic en el icono falso, iniciando la aplicación maliciosa.

  1. Lanzador truco.

Una vez que una víctima hace clic en el ícono falso de "Configuración", se inicia la aplicación maliciosa, al igual que la siguiente etapa del truco.

Figura 5. Icono oculto después de hacer clic en el botón "Aceptar"

El ejemplo muestra este diálogo de alerta de inmediato; no realiza comprobaciones disponibles en el país. Este es un mensaje engañoso, para hacer que las víctimas crean que el ícono está oculto porque "La aplicación no está disponible en su país". De hecho, la aplicación todavía se está ejecutando en segundo plano. No está disponible en un país determinado, simplemente no está disponible para las víctimas.

Técnica de ofuscación

Arriba están las formas en que la aplicación se utiliza para defraudar a las víctimas. Ahora, miramos las técnicas antianálisis de esta muestra. Al inicio de la aplicación, invoca una función MultiDex.install. MultiDex es un módulo Android popular y válido que se utiliza para admitir archivos DEX múltiples. Cuando investigamos esta función, tenemos curiosidad de por qué un módulo Android popular invoca una función en un módulo de aplicación específico.

Figura 6. El código malicioso en la función "MultiDex.install"

La pregunta nos lleva a hacer más análisis. Finalmente, encontramos que esta es la entrada de código malicioso. Principalmente hace 2 cosas aquí:

  • Descifrar así biblioteca
    La función descifrada está muy ofuscada, no solo ofusca el nombre de la variable de modo que no tiene sentido, sino que también divide una función simple en muchas subfunciones, cada una de las cuales inserta una gran cantidad de código sin sentido, diseñado para frustrar el análisis.
  • Afortunadamente, podemos entender el código y obtener el proceso de descifrado.

Figura 7.1. Se divide en muchas subfunciones

Figura 7.2. Una subfunción, mucho código no tiene sentido

Lectura de datos del archivo resource / string.xml según el tipo de CPU (Figura 8.2):

  • Si la CPU es arm64, lea el valor x1.
  • Si la CPU es armeabi, lea el valor x0.
  • Otras CPU no son compatibles.

Figura 8.1. Leer datos del archivo recurso string.xml

Los datos tienen 2 partes, la primera parte es el encabezado del archivo ELF, la segunda parte es un índice de matriz.

  • Del índice ("a58ax") en el último paso, encontramos datos de codificación base64 del archivo arrays.xml.
  • Utilice la operación base64 y XOR para decodificar la matriz y generar una biblioteca de código nativo.

Figura 8.2. Datos de codificación Base64 en el archivo resources.arsc / res / values ​​/ arrays.xml

3) Cargue la biblioteca para extraer la carga útil de DEX y, finalmente, el código malicioso invoca system.load para cargar la biblioteca y llama a una función nativa.

Figura 9. Cargue la biblioteca y llame a una función nativa

En la función nativa, extraerá y descifrará los activos del archivo / geocalc_lite.dat y restaurará la carga útil de DEX en la ruta /data/data/de.fastnc.android.geocalc_lite/app_app_apk/geocalc_lite.dat.jar.

Análisis de carga útil DEX

La carga útil DEX se utiliza para mostrar anuncios. Los datos publicitarios provienen del servidor. Una vez que la carga útil obtiene los datos, los mostrará en el dispositivo. Del análisis del código, vemos que hay docenas de tipos de publicidad (Figura 12.2). La carga útil, que es muy compleja, cargará y mostrará los datos de diferentes maneras para cada tipo.

  • Parámetros de configuración predeterminados
    La carga útil DEX define una cadena de codificación base64 en el código; obtenemos muchos parámetros de configuración predeterminados después de decodificarlo:

Figura 10.1. Parámetros de configuración predeterminados (codificación)

Figura 10.2. Parámetros de configuración predeterminados (Decodificación)

Este es un objeto json; es muy complejo y a continuación se muestra el uso de algunos parámetros:

  • metricsApiKey: la clave API del SDK de Yandex Metrica.
  • installFrequencySeconds: se utiliza para controlar la frecuencia de la solicitud de "instalación". El valor decide el intervalo de tiempo mínimo para enviar solicitudes de "instalación" (consulte la sección Solicitud y respuesta) que, en este caso, es de 1000 segundos (16 minutos y 40 segundos). La solicitud de instalación solo puede ser activada por el iniciador de aplicaciones. Sin embargo, muchas veces reiniciamos la aplicación, solo envía una solicitud en 1000 segundos.
  • overappStartDelaySeconds: está diseñado para controlar el retraso de las solicitudes http. Está destinado a ejecutar cargas maliciosas después de 30000 segundos (5 horas 20 minutos) desde el primer lanzamiento. Pero en la versión actual, este valor es el mismo que "installFrequencySeconds" y se usa para controlar la frecuencia de instalación. El valor más pequeño de "overappStartDelaySeconds" e "installFrequencySeconds" se utiliza como el intervalo de tiempo mínimo para enviar solicitudes de instalación.
  • paquetes _ * (b, c, l, n): Parece que se usan para determinar si se muestran anuncios en estos paquetes o no.

El parámetro "dominios" es importante; define la lista de candidatos del servidor remoto. La carga útil selecciona una aleatoria como servidor remoto; Si el seleccionado no está disponible, cambiará al siguiente.

Solicitar respuesta

Hay 3 tipos de solicitudes en la carga útil, con diferentes solicitudes que tienen diferentes condiciones de activación. Solo podemos capturar 2 tipos de solicitudes:

Figura 11.1. Captura de solicitud y respuesta

  1. Solicitud "instalar"
    Durante el inicio de la aplicación, si se cumplen las condiciones de activación, la carga enviará una solicitud de "instalación" al servidor remoto. Esta solicitud tiene un archivo llamado "tipo" cuyo valor es "instalar".

Figura 11.2. Instalar solicitud

El cliente archivado es también un objeto json; Contiene la información versionName y sdkEdition, que muestran que esta carga útil es muy nueva.

Figura 11.3 VersionName y definición sdkEdition

Las respuestas del servidor remoto son a menudo un json vacío que aumenta la dificultad de nuestro análisis. Continuamos probando durante unos días y capturamos una respuesta no vacía.

Figura 11.4. Datos de respuesta

La configuración del servidor remoto cubre la configuración predeterminada:

  • Habilitado: indicador de anuncio habilitado, incluida la solicitud "b / request" a continuación. El valor predeterminado es False, y True se establece desde una respuesta del servidor remoto.
    • 7 nuevos dominios en respuesta: 'http://hurgadont.com', 'http://asfintom.com', 'http://eklampa.com', 'http://glanmoran.com', 'http: / /cantomus.com ',' http://fumirol.com 'y' http://bartingor.com '
    • 7 dominios predeterminados: "http://minasorp.com", "http://omatist.com", "http://retinba.com", "http://baradont.com", "http: // lindostan .com "," http://avgon.net "y" http://dorontalka.com "

Hay 7 nuevos servidores y 7 servidores predeterminados, un total de 14 servidores, y podemos hacer ping a todos ellos; ellos están vivos.

2. Solicitud "b / solicitud"

Esta es una solicitud central. Hay un campo llamado "tipo" y su valor es "b / solicitud" en esta solicitud.

Figura 12.1 b / solicitud de solicitud

La biblioteca registra muchos filtros / observadores de eventos y, cuando ocurren estos eventos, se cumplen las condiciones de activación, lo que hace que la biblioteca envíe solicitudes apropiadas al servidor remoto.

Tabla 2: Monitoreo de eventos

El tipo de banner se usa para identificar el banner y Spot se usa para identificar la detección de eventos.

Figura 12.2. Tipo de banner y tipo de punto

Los datos de respuesta son los siguientes. Tiene 3 funcionalidades principales:

  • Datos "sdkUpdate": se utilizan para cargar versiones actualizadas del archivo SDK.
  • Datos de "pancartas": se utilizan para mostrar anuncios de pancartas.
  • Datos de "mediatorSDKs": se utilizan para publicar solicitudes de mediatorSDKs en los dispositivos de las víctimas.

Figura 12.3. Respuesta "b / solicitud"

Mencionamos que capturamos una respuesta de "b / solicitud" en la Figura 11.1. La respuesta contiene datos de un banner, los campos de los datos del banner son los siguientes después de la decodificación.

Figura 12.4. Datos de banner y contenido de campo "html"

"Html" es el campo más importante: el contenido de la carga útil se carga en un WebView invocando la API loadDataWithBaseURL. Según el html, WebView cargará la página desde la primera URL, hxxp: //bestadbid.com/afu.php? Zoneid = 1558701. Esta es una URL de redireccionamiento que redirigirá a diferentes URL cada vez que la abramos. En nuestra prueba, redirige a un sitio web de juegos de azar.

Figura 12.5. Redireccionar a un sitio web de juegos de apuestas

  • Datos de mediatorSdks: los datos de mediatorSdks son una matriz json. La definición de cada artículo es la siguiente. No podemos capturar este tipo de datos del servidor remoto ya que no conocemos el valor real de cada campo. Según nuestro análisis, "seguimiento" es una lista de URL. Cada URL se ejecutará en el dispositivo y el resultado ejecutado se enviará al servidor remoto.

Figura 12.6. definición de elemento mediatorSdks

3) Solicitudes de estadísticas de mediador: después de que se ejecute la URL de seguimiento, ejecutará / sdk / stat / mediator_ * solicitudes al servidor remoto que solo informa los resultados de ejecución. Hay 4 tipos de solicitudes de mediador, uno es para informar el estado de falla, los otros 3 tipos son para informar el estado de éxito. Hay 3 tipos de estado de éxito; Suponemos que hay 3 tipos de URL de seguimiento en los datos de mediatorSdks (Figura 12.6). Cada tipo de URL de seguimiento utiliza cada solicitud de estadísticas de mediador para informar el estado.

Figura 12.7. 4 tipos de solicitud de estadísticas de mediador

Conclusión

Este es un malware tradicional de Hidden Icon Ads; primero oculta el ícono de la aplicación, luego muestra anuncios de la carga útil de DEX. Pero aplica mucha tecnología para implementar su propósito, engañar a los usuarios para que crean que es una aplicación normal y obstaculizar la detección de herramientas de seguridad. La carga útil de DEX es un SDK muy complejo: se encuentran más de 14 candidatos de servidores remotos, una gran cantidad de monitoreo de eventos y control de activación remota, todo lo cual significa que este es un malware bien diseñado. Una vez que las víctimas están infectadas con este malware, es poco probable que se den cuenta y, incluso si lo hacen, es posible que no puedan localizarlo y eliminarlo.

McAfee Mobile Security detecta esta amenaza como Android / HiddenAds. Para protegerse de esta y otras amenazas similares, emplee la aplicación McAfee Mobile Security en sus dispositivos móviles y no instale aplicaciones de fuentes desconocidas.

Para obtener más información sobre McAfee Mobile Security, visite https://www.mcafeemobilesecurity.com.

Hashes

bc6f9c6d9beecd6f1353953ef6d883c51739ecec7e5b55e15319fe0d0b124a6d

7c40fabb70556d7d294957ec0fa1215a014a33f262710a793dd927100b183454

12be1c7ffdcf1b1917b71afa4b65a84b126ab0f0fbf6dc13390a32e6a8b84048

ed47a5871132c22bf4b7888908f35cacc2cd0c2a6e8e0afffea61d0e14792ea4

8c5826441a7000f957ece60a3e5294732f9a430d4bec0113bb13b99c73fba47c

04e6493d3cb0b92bebb450f37b21f9176fe266c662f65919baf7d62297





Enlace a la noticia original