MARVIN
el androide paranoide Presentada por:
Iván Arce
Programa Seguridad en TIC
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 insKtución público-‐privada cuyo objeKvo es promover la arKculación entre el sistema cienPfico -‐ tecnológico y la estructura producKva en todo lo referido a las Tecnologías de la Información y la Comunicación (TIC)
•
Formalmente creada por Decreto del Poder EjecuKvo 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áKca 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 ProducKva
Infraestructura CienPfico-‐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 produc:va y sustentable, la compe::vidad 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í:ca
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 produc:va y sustentable, la compe::vidad 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í:ca
Quién es Marvin ? • Soaware gratuito y de código abierto • Desarrollado integramente por Programa STIC • Joaquín Rinaudo • Juan Heguiabehere
• Licencia BSD
– Todo Kpo de uso, incluso comercial
• IdenKfica vulnerabilidades en Apps para Android – – – –
35+ Kpos de vulnerabilidades Clasifica malware/no malware Extensible No requiere código fuente de la app
• Version 1 (protoKpo funcional) lanzado 17-‐Feb-‐2015 hips://github.com/programa-‐sKc/marvin-‐django/
Pero… en serio, qué hace Marvin ?
Por qué hace falta un Marvin?
TELEFONIA CELULAR
74% SMARTPHONES 43%
CUANTOS ANDROID?
79%
Cuál es la escala de nuestro problema? • Teléfonos corriendo Android en ArgenKna: – 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 OperaKvo 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 DisposiKvos
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. hip://www.appbrain.com/stats/number-‐of-‐android-‐apps
Análisis de aplicaciones (semi) automáYco. Cómo funciona? APK Google Play
Marvin-‐ django Marvin-‐ staKc-‐ analyzer Marvin-‐ dynamic-‐ analyzer
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, ElasKcsearch & Gitlab 5. Lanza procesos de análisis 6. Muestra resultados hips://github.com/programa-‐sKc/marvin-‐django
Marvin-‐django: Panel principal
Marvin-‐django: Permisos
Marvin-‐django: AcYviYes, services , providers, receivers
Marvin-‐staYc-‐analizer • Decompila bytecode DEX a código Smali (Java) Androguard hips://github.com/androguard/androguard • Análisis estáKco de código Smali program slicing con SAAF hips://github.com/SAAF-‐Developers/saaf • Corre de modulos de análisis (Python) • IdenKfica vulnerabilidades • Marca vulnerabilidades para análisis dinámico hips://github.com/programa-‐sKc/Marvin-‐staKc-‐Analyzer
Marvin-‐staYc-‐analizer • Decompila bytecode DEX a código Smali (Java) Androguard hips://github.com/androguard/androguard • Análisis estáKco de código Smali program slicing con SAAF hips://github.com/SAAF-‐Developers/saaf • Corre de modulos de análisis (Python) • IdenKfica vulnerabilidades • Marca vulnerabilidades para análisis dinámico hips://github.com/programa-‐sKc/Marvin-‐staKc-‐Analyzer
Marvin-‐staYc-‐analizer: Tipos de vulnerabilidades
Marvin-‐staYc-‐analyzer: SSL_WEBVIEW_ERROR
Marvin-‐staYc-‐analyzer: Microsoc 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, Kpo de vulnerabilidad, Emulador) para analizar 2. Instala APK en 3 emuladores, configura MITM 3. Instrumenta APK en 1 emular para desacKvar chequeo de SSL 4. Corre la app con Marvin-‐toqueton 5. Detecta y reporta vulnerabilidades hips://github.com/programa-‐sKc/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ísKca) 3. Aleatoriamente arranca alguna AcKvity de al app 4. Intercepta acceso a datos y “manda fruta” hips://github.com/programa-‐sKc/Marvin-‐toqueton
Marvin, el Androide Paranoide Cómo funciona el sistema completo? APK Google Play
Marvin-‐ django Marvin-‐ staKc-‐ analyzer Marvin-‐ dynamic-‐ analyzer
Vulns
Marvin, el Androide Paranoide Vulnerabilidades
Marvin, el Androide Paranoide Vulnerabilidades
Conclusiones • • • • •
Es necesario auditar aplicaciones Android ConKnuamente y a gran escala Con tecnología abierta y extensible EsKmación de riesgo: Seguridad, Protección de datos AutomáKco vs. Semi-‐automáKco – Falsos posiKvos – 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
Para mayor información: Iván Arce
[email protected]