jueves, agosto 13, 2015

API Keys: Seguir el rastro a los "adwarers" de Android

Dentro del mundo del Fraude Online aplicado a las apps para Android hay un mercado muy fuerte de creadores de "Crappware", o lo que es lo mismo, de creadores de Fake Apps, Prank Apps o Crap Apps hechas con el objetivo de conseguir algo de dinero introduciendo sistemas de publicidad agresiva. Como las cuentas para Android no son caras, el negocio consiste en subir una oleada de apps, ganar algo de dinero con ella, lavarles la cara y volver a subir otra oleada de ellas.

Figura 1: API Keys. Seguir el rastro a los "adwarers" de Android

Por supuesto, muchas de esas apps son bastante similares entre sí, y lo que es más importante, el coste de crearlas tiene que ser inferior al de las ganancias, así que reutilizan no solo gran cantidad del - si no todo - código, y de la  infraestructura por detrás. Entre esa parte de la infraestructura están servidores, librerías de código y funciones en Internet a las que se accede mediante algún API Key. Estos API Key también se utilizan para las librerías de publicidad de los sitios que les van a pagar por meter sus módulos dentro de las apps, y en muchos casos, oleada tras oleada de apps para hacer adware, reutilizan estas API Keys.

En Tacyt, el equipo que está encargado de la evolución del producto ha añadido el análisis de las API Key de las apps que hay en nuestro Big Data, lo que nos permite correlar qué  apps utilizan los mismo API Key a lo largo y ancho de todos los markets que tenemos en nuestra plataforma, pero también a lo largo del tiempo. 

Para probar esta funcionalidad, ayer noche quise ver la eficiencia que tiene para un analista de malware el poder buscar entre los millones de apps por estas API Keys, así que comencé a buscar algún adwarer que estuviera en uno de esos periodos de trabajo. Para ello hice en Tacyt una búsqueda de todas las apps que tuvieran algún API Key, que hubieran sido eliminadas de Google Play y que hubieran sido marcados por algún antivirus con la cadena *SMS* - para que me permitiera localizar adware algo agresivo.

Figura 2: 56 apps en los resultados de la búsqueda de Tacyt

Como podéis ver, Tacyt arroja un total de 56 apps, así que hay que ver ahora si localizamos las mutaciones de las creaciones de esas apps. Para ello me voy a centrar en la primera, hecha por "Get it Down" con una identidad de Gmail

Un vistazo inicial a la app

Si miramos los detalles de esta app muerta dentro de Tacyt, podemos ver que fue retirada cuando tenía muy pocas descargas, apenas 100, y con una sola valoración de la app con 5 estrellas, probablemente realizada por alguno de los usuarios que se utilizan para hacer BlackASO y que también se puede utilizar para relacionar apps del mismo desarrollador.

Figura 3: La app fue eliminada con muy pocas descargas

En cuanto al análisis de los antivirus, parece que la marcan como adware varios de ellos. Esta catalogación puede ser cierta o un falso positivo que, para salir de dudas, habría que comprobar con un análisis manual.

Figura 4: La app ha sido marcada como Adware por varios motores de Antivirus

Para esta prueba es irrelevante, pues lo que quiero es descubrir si el desarrollador de esta app ha creado una nueva cuenta y ha vuelto a subir apps. Para ello, vamos a ver las API Keys contenidas en esta app y encontramos que tiene una de Applovin, un SDK para hacer marketing y publicidad en apps móviles, probablemente utilizado para generar el dinero con esta app.

Figura 5: Esta app tiene este API Key en el código

Ahora, a partir de esa API Key, podemos buscar qué otras apps de todos los markets están utilizando el mismo SDK y la misma API Key concreta, lo que indica que sería la misma persona la que está detrás de la app

Buscando más apps con el mismo API Key

Para localizar las apps con la misma API Key en Tacyt basta con seleccionarla y darle a buscar. Yo he filtrado para que solo salgan las que están o han estado alguna vez en Google Play. Con estos parámetros, se puede ver que tenemos un total de 43 apps reutilizando la misma API Key, de las que 24 han sido eliminadas y 19 están todavía activas.

Figura 6: 43 apps en Tacyt comparten la misma API Key

Si las ordenamos por fechas, de más recientes a más antiguas, vemos que las últimas están publicadas por un desarrollador llamado "SOURAV DG". Este es el que posee las 19 apps que están activas actualmente. Todas ellas muy recientes y con muy pocas descargas aún.

Figura 7: Apps de SOURAV DG usan el mismo API Key

Si vamos un poco más atrás en el tiempo, podemos ver como compartiendo la misma API_Key antes utilizó el desarrollador Get it Down la misma API Key. Este es el desarrollador por el que hemos comenzado a buscar.

Figura 8: SOURAV DG y Get it Down comparten API Key

Utilizando la función de Comparar Apps que tiene Tacyt, podemos ver que las dos apps, además de compartir la misma API Key, comparten el mismo número de permisos y la misma zona GMT de trabajo, entre otras características en otros muchos detalles que también comparten.

Figura 9: Comparación de apps con Tacyt

Si seguimos yendo hacia apps más antiguas, podemos ver que SORAV DG y Get it Down no son los únicos developers que ha utilizado. También aparece New Sai Apps utilizando exactamente el mismo API Key que los otros dos.

Figura 10: New Sai Apps también comparte API Key

Y si miramos un poco más atrás, todavía llegamos a otro developer almacenado en nuestro Big Data de Tacyt con el mismo API Key, en este caso, MOBIIN MEDIA APPS.

Figura 11: MOBII MEDIA APPS también usaba la misma API Key

Conclusiones

El análisis de los API Keys es una buena característica para localizar los desarrolladores que hay detrás de apps. Con esta característica se pueden localizar distintas identidades utilizadas por la misma persona y/o grupo en el mundo de las apps de Android. Así, si un desarrollador reutiliza una API Key que ha sido utilizada en alguna app maliciosa en el pasado, utilizado el motor de filtros de Tacyt, nosotros rápidamente vamos a tener una alerta que nos va a permitir analizarla de forma temprana, algo muy útil para cualquier investigador de seguridad. Si quieres conocer más detalles de cómo funciona Tacyt, aquí tienes la presentación que impartí en RootedCON.


Figura 12: Conferencia presentación de Tacyt en RootedCON 2015

Pero no solo eso, además, con el Big Data de Tacyt se pueden correlar fácilmente los datos de qué SDK son los que más veces han sido utilizados en aplicaciones maliciosas, para poder subir o bajar el scoring de riesgo de cualquier app en función de qué es lo que está utilizando. Al final, lo que se trata es de poder descubrir las apps peligrosas lo antes posible para que su impacto sea menor en las víctimas.

Saludos Malignos!

2 comentarios:

  1. ¿Sería posible comunicar a los proveedores de esas API keys el abuso que se hace de ellas, para que procedieran a su anulación, o se lavarían las manos? Siempre y cuando eso no entorpeciera la investigación del malware, claro.

    ResponderEliminar
  2. Hola Chema.

    ¿Sería una opción posible poder disponer de un listado via web de las apps que chequeais en vuestro Big Data con Tacyt, con el grado de intrusión de cada una y disponible a los usuarios para conocer cuales son benignas y cuales malignas?

    Gracias y enhorabuena por tu trabajo.
    Jesús

    ResponderEliminar