Inteligencia visual: Reconocimiento de amenazas a través de la vista

Una de las habilidades imprescindibles para un analista OSINT es ser resiliente al exceso de información, tener la capacidad de seleccionar fácilmente qué es relevante y hacerlo rápidamente. De ello depende saber exprimir la gran cantidad de datos eficientemente. ¿Qué mejor forma que hacerlo simplemente con la vista?

Cuando el objetivo es la identificación de aplicaciones Android potencialmente maliciosas podemos utilizarTacyt como fuente OSINT, que nos proporciona información detallada de 3.5 millones de APKs. Esto supone varios terabytes de información sobre la que buscar singularidades. Una singularidad no es más que una característica o detalle que distingue un elemento de otros de la misma clase. La búsqueda de singularidades obligará a procesar volúmenes gigantescos de información para extraer indicios encadenados en los que fundamentar la investigación. A su vez, estos indicios los podremos encontrar a partir del conocimiento acumulado del análisis de casos anteriores (experiencia), utilizando criterios externos (contexto) y apoyándose en la intuición del analista (olfato).

Para la experiencia y el contexto existen aproximaciones que permiten su automatización (por ejemplo Tacyt y Sinfonier), pero en el caso de la intuición del analista se hace necesario disponer de soluciones que despierten su percepción inmediata de estas singularidades. Y ahí es donde un “simple” diagrama puede ahorrar tiempo.

Un caso particular, downloaders

Los descargadores o “downloaders” están de moda pero ¿cómo podríamos identificarlos de manera simple? En base a nuestra experiencia, una primera aproximación podría ser quedarnos con las más de veinte mil aplicaciones de Google Play que contienen enlaces incrustados (links) a APKs (URLs que terminan en “.apk”):

Sin título
No todas ellas tienen por qué ser peligrosas, pero el hecho de que un porcentaje elevado de las mismas (27,37%) ya no estén disponibles (hayan sido retiradas de Google Play,) es un indicador de que quizás sea una buena hipótesis a evaluar: “La existencia de enlaces incrustados a APK, incrementa el riesgo de que la aplicación sea maliciosa” (nos apoyamos en la información contextual para continuar la investigación).

Obviamente, alojar apps en servidores de terceros permite eludir los controles que realiza Google Play, pero a la vez, este market resulta el mejor escaparte. Por tanto parece un buen método el subir apps a  Google Play para que ganen visibilidad, y “ocultar” en ellas enlaces a otras que quizás no podrían pasar esas pruebas de acceso al market por contener un comportamiento más “agresivo”.

Con ayuda de una topología de Sinfonier, estamos procesando en tiempo real todas las aplicaciones que son retiradas o aparecen nuevas en Google Play y que contienen enlaces incrustados hacia APKs Además buscamos relaciones con otras aplicaciones que hagan referencia a esos mismos enlaces. Hemos creado un pequeño dashboard (que se puede consultar aquí) para mostrar la información que estamos procesando:
1

Geolocalización de apps que apuntan a otros paquetes

Hemos utilizado D3.js para representar visualmente las entidades que estamos relacionando. El objetivo es presentar de forma atractiva la información para estimular el olfato de los analistas. De toda la información disponible en Tacyt, en una primera aproximación nos quedamos tan sólo con una tripla de datos:

  • La dirección de correo electrónico asociada al desarrolladorde la aplicación “developerEmail”. El analista normalmente está interesado en temas de atribución.
  • La cadena “key” que utiliza Tacyt para identificar de manera únicacada aplicación diseccionada.
  • Y el conjunto de enlaces “link” incrustados en la aplicaciónque apuntan a otras APKs.

A modo de ejemplo, en la siguiente imagen se muestra la representación gráfica de estas entidades para una aplicación concreta: https://play.google.com/store/apps/details?id=com.zaccur.b07.main

2

Esquema de representación de la información usada

 

Por otro lado, como se observa en la figura, se utilizan flechas verdes para enlazar desarrolladores con sus aplicaciones en Google Play. Las flechas rojas se usan para mostrar el enlace incrustado en los APKs hacia otros programas.

 

Poniéndolo todo junto

 

Si se repite este ejercicio con todas las aplicaciones procesadas hasta el momento, la imagen generada tiene el siguiente aspecto:
3

Relación gráfica entre app, correo del desarrollador y enlace a un app externo

 

La imagen con todo lujo de detalles, está disponible desde este enlace:http://ecrime2015.us.to:2015/index.html

En este momento, se han analizado cerca de 5.000 aplicaciones de Google Play, asociadas a más de 1.000 direcciones de correo de desarrolladores diferentes y que incluyen cerca de 900 enlaces distintos a archivos APKs.

Estos datos son representados a través de 362 clusters (conjuntos de relaciones aislados unos de otros). Observando la imagen anterior, un analista podría ir descartando clusters en función de su apariencia, por ejemplo:

  • Clusters “huérfanos”:Compuestos por un desarrollador, con una sola aplicación en Google Play que incrusta un enlace a un APK único. En total hay 141 clusters de este tipo. Ha logrado una eficiencia cercana al 40% (la capacidad de descartar rápidamente información que no aporta), centrando su análisis en 261 clusters. Esta sería la nueva imagen sin huérfanos.

4

Relación gráfica entre app, correo del desarrollador y enlace a un app externo, pero sin clústers huérfanos

 

  • Clusters “monoapkístas”:Compuestos por grafos que contienen un único enlace a fichero APK. En total hay 261 clusters de este tipo. En este caso se lograría una eficiencia superior al 60%, centrando el análisis en 141 clusters.

5

Relación gráfica entre app, correo del desarrollador y enlace a un app externo y sin clusters a un solo APK

 

Una vez filtrados algunos datos, observando la imagen anterior un analista podría concluir, simplemente mirando las diferentes concentraciones, situaciones como:

  • Concentraciones de múltiples flechas rojas en un conjunto muy limitado de puntos. Esto podría implicar apps que van hacia muchos APKs diferentes.
  • Múltiples aplicaciones de Google Play, de múltiples desarrolladores que embeben un conjunto discreto de APKs (“install_flash_player_ics.apk”, “go_launcher_ex_520.apk”, “golocker.apk”, etc.).
  • Dispersión de flechas rojas:Aplicaciones potencialmente sospechosas que incluyen un elevado número de enlaces a APKs.
  • Concentración de flechas rojas sobre un área o conjunto de puntos: Una o varias aplicaciones, de uno o más desarrolladores (que utilizan varias direcciones de correo electrónico), referencian al mismo conjunto de APKs externas.
  • Puentes o enlaces de flechas rojas:Relaciones entre desarrolladores (direcciones de correo electrónico) que están embebiendo en sus aplicaciones las mismas APKs.
  • Patrones de flechas rojas y verdes que se repiten: Asociados a kits de desarrollo que embeben por defecto otras APKs o incluyen un enlace a la misma aplicación de Google Play pero en un repositorio externo.

Algunos ejemplos concretos

Se muestran a continuación algunos ejemplos concretos. Aplicación que incrusta cinco enlaces a ficheros APK externos.

6 png

 Aplicación que enlaza a cinco ficheros externos

Tres direcciones de correo de desarrolladores con aplicaciones en Google Play que incluyen el enlace al mismo par de APKs.

 

7

Apps diferentes que apuntan hacia el mismo fichero APK

Desarrollador con una docena de aplicaciones en Google Play, aparentemente inofensivas, que embeben una decena de APKs (quizás no tan inofensivas).

8

 

Developer con 12 apps en Google Play que incluyen enlaces a diez APKs diferentes alojadas en otro servidor

 

Analizando un poco más en detalle este último ejemplo, todas las aplicaciones mostradas pertenecen a “gameungdunghay@gmail.com” y están disponibles en Google Play. La mayoría son fondos de pantalla, otras incluyen fotos de Vietnam, una es un gestor de aplicaciones y otra enseña a cómo hacer el nudo de la corbata.

9

 App que muestra cómo hacer un nudo de corbata, y que incluye links a APKs externos

 La más popular con más de 500 descargas son fondos de pantalla relacionados con el día de la mujer:

0

Aplicación del mismo desarrollador que también incluye enlaces a APKs externos

 

La decena de APKs a los que apuntan en estas aplicaciones, están alojados en MediaFire y parecen contener adware muy agresivo.

10
Dos de ellas (“ChanDai” y “HotGirl”) son de una temática muy diferente a la de las aplicaciones que las incluyen y, analizando su comportamiento, podríamos catalogarlas como badware.

11

Cuando la hipótesis de trabajo del analista se confirma, los resultados se convierten en un caso concreto que enriquecen la experiencia y realimenta la metodología de análisis empleada.

Conclusión

Esto es sólo un ejemplo de cómo el análisis de grafos puede ser utilizado para la identificación de amenazas ¿Por qué no utilizar bases de datos de grafos para almacenar la información? En ElevenPaths estamos trabajando en ello y apostando por la inteligencia visual, leer información de gráficos en lenguaje natural, siguiendo flechas entre nodos que nos ayuden a la generación de inteligencia en nuestros productos y servicios.

 

Carlos Díaz

carlos.diazhidalgo@telefonica.com

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *