viernes, enero 22, 2016

"¿Que quieres hacer qué y cómo?”. Búsqueda de anomalías en el Manifiesto de las Apps de Android

Hace algún tiempo un conocido investigador de seguridad se puso en contacto con nosotros porque en mitad de uno de sus trabajos quería localizar apps en los markets de Android con unas determinadas características. Para localizar esas aplicaciones necesitaba crear una filtro que mostrara aquellas que tenían una determinada configuración en su AndroidManifest.XML. En Tacyt aún no teníamos esa característica aún en producción porque en primera instancia habíamos decidido procesar el AndroidManifest.XML y sacar de él lo más importante, pero ya la teníamos en el entorno de development, así que le dimos acceso para ver si le servía en su investigación.

Figura 1: ¿Que quieres hacer qué y cómo?

Desde la última actualización de funcionalidades de Tacyt, la búsqueda de cadenas dentro del fichero AndroidManifest.XML está ya en el entorno de producción, lo que permite a cualquier investigador la posibilidad de crear filtros de búsqueda o alerta usando cualquier cadena en este fichero, y por lo tanto, localizar apps de la misma familia que compartan alguna singularidad detectable en el él.

Figura 2:  Estructura de ejemplo de un AndroidManifest.XML

El fichero AndroidManifest en las apps de Android permite definir muchas cosas, como por ejemplo los permisos o la prioridad que quiere tener dentro del orden de arranque del sistema para hacer tareas antes o después que otras. La idea, lógicamente es que una vez que se localice una app maliciosa se puedan buscar otras que compartan las mismas características para ver si son de la misma familia, tal y como ya os he contado muchas veces. 

Se podrían buscar apps candidatas a ser sospechosas, como aquellas que quieren tener una prioridad de arranque muy rápida en el sistema, algo que suelen solicitar apps de seguridad como antivirus, bloqueadores de apps, o, por supuesto, ransomware para Android. Solicitan arrancar tan rápido para no perder un problema de ejecución de su tarea en un posible escenario de condición de carrera. Tal vez apps con mucha prioridad y con una temática mundana - como un juego o una app de información - no necesite tanta prioridad para sus funciones y si pide ser arrancada tan al principio sea porque tiene alguna función "oculta". 

Figura 3: Búsqueda de apps con permiso ejecución en el proceso de arranque pero con mucha prioridad

Se puede buscar por apps que hagan uso, por ejemplo, de Broadcast Receivers. Estos componentes, registrados por una app de Android permiten suscribirse a las colas de eventos del sistema, pudiendo enterarse cuándo llega un nuevo mensaje SMS, una nueva acción en una app que impacta  en el sistema, o una nueva conexión al sistema. Al final, estos componentes Receivers pueden ser muy útiles en las apps y también en el adware o en las estafas de SMS Premium. En el libro de Desarrollo en Android Seguro se explica cómo los troyanos espía en Android hacen uso de estos Broadcast Receivers.

Figura 4: Búsqueda de apps con "Sex" en el título y Broadcasts Receivers

En la documentación de AndroidManifest puedes ver todo lo que se puede configurar en este fichero y que pueden hacer entender mejor a un analista de seguridad si una petición de funcionamiento dentro del sistema tiene lógica o no para el tipo de app que parece ser. Otro ejemplo curioso puede ser la búsqueda de apps que no quieren aparecer en el historial de ejecución, un comportamiento que puede ser habitual para los droppers en diferido. Esto se configura en el fichero AndroidManifest con el atributo excludeFromRecents, lo que puede ser un parámetro más en un filtro de alerta de seguridad que interese vigilar. 

Figura 5: Apps con mucha prioridad registrándose como dispositivos de administración

Al final, gracias a tener Tacyt montado sobre una arquitectura de Cloud Computing y Big Data, lo que pretendemos es dar las máximas opciones posibles a los analistas de seguridad para que puedan configurar sus filtros con la mayor granularidad posible y las opciones de interfaz de la herramienta son fundamentales. En este artículo tenéis un pequeño resumen de algunas de las nuevas características que hemos incorporado al nuevo interfaz de Tacyt

Figura 6: Comparación múltiple de apps en el nuevo interfaz de Tacyt

Como ya os he dicho antes, si vas a hacer un trabajo de investigación y necesitas contar con el acceso a nuestro entorno, ponte en contacto con nosotros y vemos si podemos darte una cuenta de investigador para que lleves a cabo tu estudio. 

Saludos Malignos!

Entrada destacada

Esta semana comienza "ElevenPaths Talks Season 2"

Tras el buen funcionamiento que ha tenido ElevenPaths Talks , la iniciativa de nuestros CSA (Chief Security Ambassadors) de ElevenPaths d...

Entradas populares