Marvin, el Androide Paranoide
Presentada por:
Iván Arce Programa Seguridad en TIC
Aclaración: ©
Todos los derechos reservados. No está permitida la reproducción parcial o total del material de esta sesión, ni su tratamiento informático, ni la transmisión de ninguna forma o por cualquier medio, ya sea electrónico, mecánico, por fotocopia, por registro u otros métodos, sin el permiso previo y por escrito de los titulares de los derechos. Si bien este Congreso ha sido concebido para difusión y promoción en el ámbito de la profesión a nivel internacional, previamente deberá solicitarse una autorización por escrito y mediar la debida aprobación para su uso.
Agenda • Presentación • Quién es Marvin y por qué existe? • Cómo es el ecosistema de seguridad en Android • Que hace Marvin y cómo lo hace?
Que es la Fundación Sadosky ? •
La Fundación Dr. Manuel Sadosky es una institución público-privada cuyo objetivo es promover la articulación entre el sistema científico - tecnológico y la estructura productiva en todo lo referido a las Tecnologías de la Información y la Comunicación (TIC)
•
Formalmente creada por Decreto del Poder Ejecutivo Nacional en Junio de 2009, comenzó a funcionar a fines de 2011
•
Lleva el nombre de quien fuera un pionero y visionario de la informática tanto en el país como en la región
Dr. Manuel Sadosky (1914-2005)
A qué se dedica la Fundación Sadosky ?
Gobierno
TIC Estructura Productiva
Infraestructura Científico-Técnica
Qué es el Programa Seguridad en TIC?
Visión: Las TIC como factor transformador para una sociedad con un cultura emprendedora que promueve e impulsa la creación de conocimiento, la innovación productiva y sustentable, la competitividad de la economía y la mejora de la calidad de vida de la población sin que ello redunde en un aumento de la dependencia tecnológica o de la vulnerabilidad de la infraestructura crítica
Qué es el Programa Seguridad en TIC?
Visión: Las TIC como factor transformador para una sociedad con un cultura emprendedora que promueve e impulsa la creación de conocimiento, la innovación productiva y sustentable, la competitividad de la economía y la mejora de la calidad de vida de la población sin que ello redunde en un aumento de la dependencia tecnológica o de la vulnerabilidad de la infraestructura crítica
Quién es Marvin ? • Software gratuito y de código abierto • Desarrollado integramente por Programa STIC • Joaquín Rinaudo • Juan Heguiabehere
• Licencia BSD – Todo tipo de uso, incluso comercial
• Identifica vulnerabilidades en Apps para Android – – – –
•
35+ tipos de vulnerabilidades Clasifica malware/no malware Extensible No requiere código fuente de la app
Version 1 (prototipo funcional) lanzado 17-Feb-2015 https://github.com/programa-stic/marvin-django/
Pero… en serio, qué hace Marvin ?
Por qué hace falta un Marvin?
TELEFONIA CELULAR
74%
CUANTOS ANDROID?
SMARTPHONES
79%
43%
Cuál es la escala de nuestro problema? • Teléfonos corriendo Android en Argentina: – 9.500.000 (conservador) – 15.000.000 (osado)
• • • • • •
Tablets Smart TVs Relojes Estéreos (auto) Lavarropas Microondas
Problemas de seguridad y privacidad en Android
• • • • •
Vulnerabilidades en el firmware de radio Vulnerabilidades en el Sistema Operativo Aplicaciones maliciosas (malware) Aplicaciones “pícaras” (malware bueno) Vulnerabilidades en aplicaciones – – – –
Pre-instaladas Descargadas de mercado oficial (Play) Descargadas de otro mercado Desarrolladas para uso propio
Seguridad en el ecosistema de Android (firmware & SO)
Google
Fabricantes de Dispositivos
Operadores Telefónicos
Seguridad en el ecosistema de Android (Apps) Aplicación
Servicios en la Nube
Framework
Bibliotecas
Componentes
Actualización
Mercado
Cuál es la escala de nuestro problema?
AppBrain stats, marzo 2016. http://www.appbrain.com/stats/number-of-android-apps
Análisis de aplicaciones (semi) automático. Cómo funciona? APK Google Play
Marvindjango
Marvinstaticanalyzer Marvindynamicanalyzer
Vulns
Marvin-django • • • • •
Aplicación web para el usuario de Marvin Búsqueda y descarga de apps desde Google Play Carga manual de un APK Análisis y visualización de resultados Qué hace? 1. Descomprime & desempaqueta APK 2. Clasifica malware/no malware 3. Descompila a Java (DEX->Smali) 4. Almacena en DB, Elasticsearch & Gitlab 5. Lanza procesos de análisis 6. Muestra resultados https://github.com/programa-stic/marvin-django
Marvin-django: Panel principal
Marvin-django: Permisos
Marvin-django: Activities, services , providers, receivers
Marvin-static-analizer • Decompila bytecode DEX a código Smali (Java) Androguard https://github.com/androguard/androguard • Análisis estático de código Smali program slicing con SAAF https://github.com/SAAF-Developers/saaf • Corre de modulos de análisis (Python) • Identifica vulnerabilidades • Marca vulnerabilidades para análisis dinámico https://github.com/programa-stic/Marvin-static-Analyzer
Marvin-static-analizer • Decompila bytecode DEX a código Smali (Java) Androguard https://github.com/androguard/androguard • Análisis estático de código Smali program slicing con SAAF https://github.com/SAAF-Developers/saaf • Corre de modulos de análisis (Python) • Identifica vulnerabilidades • Marca vulnerabilidades para análisis dinámico https://github.com/programa-stic/Marvin-static-Analyzer
Marvin-static-analizer: Tipos de vulnerabilidades
Marvin-static-analyzer: SSL_WEBVIEW_ERROR
Marvin-static-analyzer: Microsoft Live SDK for Android
Marvin-dynamic-analyzer • Corre la aplicación en emuladores de teléfono Android (Android x86) • Los emuladores corren en máquinas virtuales (Open Nebula) • Instrumenta la aplicación (Cydia Substrate) • Intercepta comunicaciones HTTPS (mitm-proxy) •
Qué hace? 1. Busca (APK, tipo de vulnerabilidad, Emulador) para analizar 2. Instala APK en 3 emuladores, configura MITM 3. Instrumenta APK en 1 emular para desactivar chequeo de SSL 4. Corre la app con Marvin-toqueton 5. Detecta y reporta vulnerabilidades https://github.com/programa-stic/Marvin-dynamic-Analyzer
Marvin-dynamic-analyzer: Arquitectura
Marvin-dynamic-analyzer: Vulnerabilidades
Marvin-toqueton • • • • • •
Aplicación comand-line para Android Instrumenta Views de otra aplicación (Cydia Substrate) Intercepta acceso a datos y servicios del teléfono WiFi, MAC address, IMEI/IMSI, GPS, credenciales, etc Simula input del usuario Qué hace? 1. Instrumenta Views de la app. 2. Arranca la app y manda input aleatorio (heurística) 3. Aleatoriamente arranca alguna Activity de al app 4. Intercepta acceso a datos y “manda fruta” https://github.com/programa-stic/Marvin-toqueton
Marvin, el Androide Paranoide Cómo funciona el sistema completo? APK Google Play
Marvindjango
Marvinstaticanalyzer Marvindynamicanalyzer
Vulns
Marvin, el Androide Paranoide Vulnerabilidades
Marvin, el Androide Paranoide Vulnerabilidades
Conclusiones • • • • •
Es necesario auditar aplicaciones Android Continuamente y a gran escala Con tecnología abierta y extensible Estimación de riesgo: Seguridad, Protección de datos Automático vs. Semi-automático – – – – –
Falsos positivos Resolución de conflictos (p.e. diff, de-ofuscación, etc.) Comentarios y anotaciones Exploración de resultados, metadatos. Soporte para estudio longitudinal, métricas
Gracias por asistir a esta sesión…
Para mayor información:
Iván Arce
[email protected]
Para descargar esta presentación visite www.segurinfo.org