Marvin, el androide paranoico: cómo analizar miles de apps en simultáneo

Ayer nos dedicamos a realizar la cobertura de Segurinfo 2016 en Argentina, donde otra de las charlas del día –especialmente dedicada a quienes nos apasiona la seguridad móvil– fue la presentación de Marvin. Se trata de un sistema de código abierto para analizar la seguridad de aplicaciones para Android, creado en el marco del Programa de Seguridad TIC de la Fundación Sadosky y presentado por Iván Arce, director de este proyecto.

Recordemos que aunque el número y complejidad de los códigos maliciosos orientados a Android crece mes a mes, los códigos maliciosos representan solo uno de los grandes problemas de la seguridad en entornos móviles. En otras palabras, la seguridad móvil no solo trata de malware. En cambio, las aplicaciones vulnerables y la pérdida, el robo o el daño del terminal siguen siendo los escenarios más frecuentes en lo que a seguridad móvil refiere.

¿Qué es Marvin?

Marvin analiza miles de apps en simultáneo en busca de más de 35 tipos de vulnerabilidades

Marvin posee una licencia BSD, lo que permite la utilización y modificación del código por parte de quienes estén interesados. La plataforma se sustenta sobre Django como framework de desarrollo. Otras herramientas utilizadas en la implementación son ElasticSearch, Open Nebula y Gitlab. El repositorio puede ser accedido desde Github.

La gran ventaja de Marvin es la posibilidad de analizar hasta miles de aplicaciones de manera simultánea en busca de más de 35 tipos de vulnerabilidades que abran la puerta a futuras explotaciones, brindando la posibilidad a los desarrolladores de automatizar el proceso de prueba. La identificación de vulnerabilidades por análisis estático se da mediante el estudio de la relación entre las API del sistema, métodos de la aplicación e instrucciones de procesamiento.

En cambio, el análisis dinámico se realiza mediante la instrumentación con Cydia Substrate y el análisis de comunicaciones HTTPS con mitm-proxy. Además, se incluye un módulo que presenta mejoras al Exerciser Monkey del Android SDK aplicando inteligencia sobre la simulación de toques dados por los usuarios.

También es capaz de procesar con pocos recursos las aplicaciones, para clasificarlas como malware o apps benignas con base en la combinación de permisos peticionados por la app y el contraste de estos con su supuesta funcionalidad. Cabe mencionar que este esquema, aunque sencillo y fácil de implementar, falla al identificar aplicaciones reempaquetadas por cibercriminales, con lo que no resulta una técnica infalible de detección de códigos maliciosos.

Automatización de procedimientos de prueba a escala

Puede procesarlas con pocos recursos para clasificarlas como malware o aplicaciones benignas

Sistemas operativos, librerías de publicidad, mercados de difusión, servicios en la nube, aplicación y sistemas de actualización… el variado ecosistema de Android se refleja en una amplia superficie de ataque que termina siendo difícil de controlar y proteger.

Recordemos que Marvin no es el único entorno de análisis de vulnerabilidades. Anteriormente estuvimos repasado la funcionalidad de QARK, otra herramienta de similares características. La alta usabilidad de estos sistemas sirve como incentivo a los desarrolladores para dedicar mayores esfuerzos a la protección de sus creaciones.

Además de ayudar con la concientización de los desarrolladores tecnológicos, estas herramientas ponen nuevamente de manifiesto la importancia de un proceso de desarrollo seguro que incorpore la noción de seguridad desde un comienzo, debate que ya hemos cubierto en pasadas presentaciones de Segurinfo.

Estos esfuerzos resultan clave teniendo en mente la extensión de los sistemas operativos móviles sobre otros equipos electrónicos y de domótica en el marco del fenómeno IoT. Comprender los ataques de hoy es fundamental para prevenir los ataques del mañana.

Autor , ESET

Síguenos