Mintegral SDK: Librería de publicidad maliciosa para iOS


Recientemente se ha hecho pública una investigación realizada por parte de los investigadores de la firma de ciberseguridad Snyk, en la que se ha descubierto como un framework de publicidad incluye entre su código funcionalidad maliciosa.

Introducción

Mintegral SDK es un popular SDK para incluir publicidad en las aplicaciones que lo utilizan. Alrededor de 1,200 apps de la App Store de Apple lo utilizan para mostrar publicidad a los usuarios, en un intento por parte de sus desarrolladores para obtener ingresos gracias a sus aplicaciones.

Se calcula que estas aplicaciones acumulan un total de 300 millones de descargas al mes.

El SDK está disponible para iOS y Android, y aunque la investigación se ha centrado en la versión de iOS, no se puede descartar que Android presente la misma funcionalidad fraudulenta que la versión de iOS, aunque los investigadores afirman que no han encontrado rastro de ella en Android. La versión sobre la que se ha llevado a cabo la investigación es la 6.3.5.0.

El código malicioso que contiene el SDK permite a sus desarrolladores espiar a los usuarios finales que instalan la aplicación además de producir un fraude en la atribución de clics de publicidad, lo que significa que pueden escuchar los clics realizados en la publicidad y atribuir dichos clics a otras campañas de publicidad pertenecientes a los desarrolladores.

Al parecer, su principal objetivo no es realmente espiar a los usuarios, sino que este es un daño colateral que se produce debido a cómo se efectúa el fraude publicitario. El principal objetivo parece ser realizar el fraude para que los desarrolladores del SDK puedan ganar dinero con los falsos clics.

Funcionamiento

La implementación de su funcionalidad fraudulenta se lleva a cabo a través de lo que se llama method swizzling. Esta técnica consiste en reemplazar la implementación de una función de Objective-C, el lenguaje de Apple para desarrollo de apps, con una nueva, en la que se introduce el código malicioso.

mintegralSDK-IOS-02

Código que realiza el reemplazo de implementación de [UIApplication openURL:]

Los desarrolladores de MintegralSDK utilizan esta técnica para reemplazar la implementación de las funciones de la API de iOS: UIApplication openURL y SKStoreProductViewController loadProductWithParameters, además de registrar una clase personalizada de la clase NSURLProtocol. 

Con estos tres elementos bajo su poder, el SDK es capaz de interceptar cualquier petición realizada desde la aplicación, pudiendo de esta forma espiar la actividad del usuario teniendo acceso a todos los datos enviados y recibidos en la aplicación.


Concretamente es capaz de interceptar peticiones HTTP, URLs abiertas desde la app y enlaces de la App Store abiertos en la aplicación. Está claro que gracias a la capacidad para interceptar las peticiones HTTP, el SDK malicioso es capaz de espiar al usuario.


 

¿Cómo funciona el fraude publicitario?

Aprovechando otras plataformas de publicidad que los desarrolladores hayan incluido en su aplicación, y reportando los clics legítimos como si se hubiesen realizado en publicidad de los atacantes.

Los desarrolladores de aplicaciones móviles suelen utilizar más de una plataforma de publicidad para tratar de maximizar el beneficio generado. Aprovechando esto, los desarrolladores de la SDK fraudulenta interceptan los clics en la publicidad que no forma parte de su plataforma y envían al servidor de logs la información relativa a dicho clic. 

Una vez enviada la información del clic, se aprovecha el modo de funcionamiento de atribución para replicar esa misma petición pero sustituyendo la campaña por propia. De esta forma, el servidor de atribución registra en último lugar el clic fraudulento generado por el servidor de los desarrolladores del SDK.

Este fraude se utiliza en casos en los que la campaña de publicidad trata de conseguir que el usuario descargue la aplicación publicitada.

Cuando el usuario descarga dicha aplicación, el servidor de atribución atribuye el clic y la instalación a la campaña de los atacantes en lugar de la campaña y clic legítimo. Esto implica que el dinero generado por esta publicidad vaya al bolsillo de los atacantes en lugar de a los desarrolladores de la aplicación legítima.

Para reemplazar la implementación de los métodos que requiere el malware, es necesario que este reciba una serie de parámetros del servidor con unos valores concretos.

Si no se reciben estos parámetros en una de sus peticiones, no se activará la funcionalidad fraudulenta ni las técnicas anti-debugging que incorpora.

Probablemente se hayan utilizado tantos las técnicas anti-debugging como los parámetros de activación para pasar desapercibido durante el periodo de revisión de las aplicaciones que son publicadas en la tienda de Apple.

mintegralSDK-IOS-01

Código anti-debugging y detección de Jailbreak

Conclusiones

No es habitual encontrar malware en aplicaciones para dispositivos iOS, sin embargo, tal y como hemos podido apreciar, es posible encontrarlo incluso en aplicaciones aceptadas en el App Store. En este caso, ni siquiera los propios desarrolladores se han dado cuenta de la actividad maliciosa que lleva a cabo el SDK en su aplicación.

Este malware es un ejemplo más de lo que buscan hoy en día los atacantes, y no es más que beneficio económico.

En los últimos años los desarrolladores de malware han buscado maximizar el beneficio obtenido a partir de sus creaciones, y esto lo podemos ver en la evolución del malware.

Encontramos que una de las amenazas más populares en la actualidad es el ransomware, debido al potencial beneficio que supone para el atacante si la víctima necesita recuperar sus datos.

En el caso de iOS, debido a las restricciones del sistema operativo y a la revisión de aplicaciones para ser publicadas en la App Store, se hace realmente complicado el desarrollo y distribución de malware. Sin embargo, tal y como hemos visto, existen nuevas fórmulas que permiten desarrollar y distribuir el malware en iOS.

En este caso, un SDK de publicidad que inyecta código en ciertas funciones de la API de iOS para interceptar las peticiones realizadas por la aplicación.

Además, la funcionalidad maliciosa se mantiene oculta hasta que el servidor de control le proporciona unos parámetros para que se active. Esto permite que durante la revisión de la aplicación no se detecte dicho comportamiento sospechoso.

Por suerte las entidades bancarias no incluyen publicidad en sus aplicaciones, sin embargo, sí que incluyen SDKs o frameworks que facilitan el trabajo de los desarrolladores, y que podrían suponer un riesgo si se encontrasen troyanizadas como es el caso de este SDK.

 


Comprueba como puede ayudarte nuestra solución a resolver los problemas de fraude online de tu empresa, solicita gratuitamente una DEMO ahora y te explicamos en detalle.

Solicita una DEMO

 

 

Publicado por David García

In his more than 9-year professional career, he has been involved in multiple projects, the most important being in the fields of managed security, anti-fraud and ethical hacking services, and malware analysis. He has contributed his know-how and security-related improvements to a wide variety of fraud and vulnerability analysis products. He currently oversees the smooth running of our different products and researches current fraud developments in order to showcase buguroo overseas as well as providing the development department with feedback on the latest malware and cybercriminal trends.


¿Te ha gustado? Comparte en tus comunidades sociales.

 
 

¿Necesitas reducir el fraude online de tu banco?

Descubre nuestra visión holística aplicada a la detección del fraude online

Solicita una demo