Busqueda de vulnerabilidades - An alisis din...
Transcript of Busqueda de vulnerabilidades - An alisis din...
![Page 1: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/1.jpg)
Busqueda de vulnerabilidades - Analisis
dinamico
Juan Heguiabehere Joaquın Rinaudo
22o Escuela de Verano de Ciencias InformaticasRIO 2015
![Page 2: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/2.jpg)
Sobre el curso
I Lunes: Android como plataforma de desarrollo - Malware
I Martes: Malware (cont) - Diseno seguro en aplicaciones
I Jueves: Busqueda de vulnerabilidades - Analisis estatico
I Viernes: Busqueda de vulnerabilidades - Analisis dinamico
![Page 3: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/3.jpg)
Contenidos
Sobre el curso
Analisis dinamico
Herramientas
Caso 1: Incorrecta validacion de certificados
Caso 2: Logging de informacion privada
Caso 3: Server local expuesto a otras apps
Caso 4: Transmision insegura de datos
Caso 5: Incorrecta validacion del servidor
Caso 6: Almacenamiento de informacion privada en SD
Caso 7: Inyectando Javascript en un contexto
Caso 8: Interfaces Javascript-Java / comunicacion HTTP
![Page 4: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/4.jpg)
¿Que es analisis dinamico?
I Analisis a partir de la ejecucion del programa yobservacion de comportamientos
I Ejecucion en entorno controlado
I Tipos de analisis dinamicos que vamos a ver:I TraficoI IPCI Acceso y modificaciones a recursos, archivos, etcI Acceso a informacion privada del usuario
![Page 5: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/5.jpg)
adb (Android Debug Bridge)
I Inspeccionar almacenamiento interno de la aplicacion:/data/data/PKGNAME
I Subir o bajar archivos del dispositivo: adb push/pull
I Logs de aplicaciones: logcat
I am para comenzar Activity, Service o Receiver
I sqlite3 para analizar bases sql
![Page 6: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/6.jpg)
Proxies
I Utilizar proxy para capturar y modificar HTTP/HTTPS:I BurpI ZAPI mitmproxy
I Wireshark para capturar el resto del trafico
![Page 8: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/8.jpg)
Drozer
I Framework de testing de seguridad para Android
I Buscar vulnerabilidades asumiendo rol de app permite:I Buscar informacion de aplicaciones instaladasI Interactuar con Activities, Receivers, Content Providers
y Servicios de otras appsI Utilizar un shell para comunicarse con el OS de linuxI Buscar la superficie de ataque de otras apps y
vulnerabilidades conocidas
![Page 9: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/9.jpg)
Como conectarse a Drozer
I Instalar:I Consola que corre en la PCI Agente en el dispositivo o emuladorI Prender el agente desde el dispositivoI adb forward tcp:31415 tcp:31415I drozer console connect
![Page 10: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/10.jpg)
Usando la consola Drozer
I shell: Shell del dispositivo en el contexto del agente
I list: Lista modulos Drozer que se pueden ejecutar en lasesion
I run: Correr un moduloI run app.package.attacksurface PKG: Lista
componentes exportadosI run app.package.info PKG: Informacion general de la
appI run app.COMPONENT.info -p PKG: Informacion
detallada de cada tipo de componente exportadoI run run scanner.misc.readablefiles: Buscar
archivos leıbles para todas las appsI help MODULE: Explicacion y parametros para cada
modulo
![Page 11: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/11.jpg)
Cydia Substrate
I Instrumentacion dinamica: Modifica la aplicacion enRuntime
I Permite agregar codigo/hooks a metodos existentes
I Crear extensiones de aplicaciones modificando susmetodos
I Sin necesidad de desensamblar, modificar y recompilarnuevamente la aplicacion
I No se modifica el apk
I Sı hay que desensamblar los apks para encontrar cosasinteresantes para instrumentar
![Page 12: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/12.jpg)
Extensiones de Cydia
I Android-SSL-TrustKillerI Fuerza a las apps a no validar certificados al
comunicarse con servidores via HTTPSI Analizar trafico con un proxy de apps que hacen
Certificate Pinning o usan certificados validos
![Page 13: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/13.jpg)
Extensiones de Cydia
I IntroSpyI Ayuda a entender que hace una app cuando correI Logea:
I Uso general criptografıaI HashingI Claves utilizadasI Accesos a archivos en la memoria internaI Lectura y escritura a SDI Mecanismos de IPC utilizados e Intents enviadosI Lectura y escritura de shared prefsI Uso de SSL, falta de validacionI Uso de Webviews y si hay JS, FS y JSinterfaces
habilitadosI Accesos a base SQL
![Page 14: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/14.jpg)
Creando tu propia extension de Cydia
![Page 15: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/15.jpg)
Caso 1: Incorrecta validacion de certificados
I Si proxy captura https, la app no valida los certificadoscorrectamente
I Si no, se puede instalar Android-SSL-TrustKiller o instalarel certificado del proxy en el dispositivo
I Una vez que se encontro que es vulnerable, estaticamentebuscar la causa:
I TrustManager customI HostNameVerifier customI Override de onReceiveSSLErrorI SSLSocketFactory getInsecureI HttpsURLConnection setDefaultSSLSocketFactory
![Page 16: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/16.jpg)
Caso 1: MercadoLibre
I MercadoLibre hasta 3.10.6
I Atacantes podıan montar ataques de Man-in-the-Middle
I Android apps that fail to validate SSL: Documento con23 mil apps que fallan
![Page 17: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/17.jpg)
Caso 2: Logging de informacion privada
I Clase android.util.Log para logear informacion:I Log.d(Debug)/Log.e(Error)I Log.i(Info)/Log.v(Verbose)/Log.w(Warn)
I Permiso android.permission.READ LOGS para leer
I adb logcat para leer los logs de todas las aplicaciones
![Page 18: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/18.jpg)
Caso 2: Logging de informacion privada
I Hasta 4.0, una aplicacion con READ LOGS obtenıa los logsde todas las apps
![Page 19: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/19.jpg)
Caso 2: Logging de informacion privada
I Ahora, una aplicacion con READ LOGS NO obtiene los logsde las otras apps
I Pero conectando el dispositivo a una PC, se puedenseguir obteniendo todos los logs
![Page 20: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/20.jpg)
Caso 2: Facebook SDKI Facebook SDK permite a integrar funcionalidades de
Facebook a aplicaciones de tercerosI Token de acceso es un identificador de FB dado a una
app para hacer pedidos por el usuarioI Cuando un usuario se logea utilizando Facebook a la app
se le da un token
![Page 21: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/21.jpg)
Caso 2: Facebook SDK
I Vulnerabilidad: SDK logeaba los tokens cuando unusuario se logeaba con esa app
I Apps maliciosas podıan leer los logs y obtener estostokens y usarlos para publicar como el usuario
![Page 22: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/22.jpg)
Caso 3: Server local expuesto a otras apps
I Algunas aplicaciones utilizan servidores locales HTTP
I Bind en localhost o 0.0.0.0
I localhost: Aplicaciones maliciosas
I global: Atacantes en LAN,WAN
![Page 23: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/23.jpg)
Caso 3: Facebook
I Facebook hasta la version 13
I Incluıa un servidor que funcionaba como caching proxypara los video
I GenericHttpServer que es escuchaba en 0.0.0.0
I Un atacante podıa conectarse:I Utilizarlo como Open ProxyI Agotar la memoria del dispositivoI Consumirle datos de la red 3g o LTE de la vıctima
I Solucion: Escuchar en 127.0.0.1
![Page 24: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/24.jpg)
Caso 4: Transmision insegura de datos
I La red es insegura:I SniffingI Inyeccion de datosI Hijacking de sesionI Man-in-the-MiddleI DNS PoisoningI SSL Strip
I Informacion privada debe utilizar protocolos seguros(no HTTP, UDP, TCP, VOIP)
![Page 25: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/25.jpg)
Caso 4: Facebook
I Facebook hasta la version 10
I App enviaba y recibıa las grabaciones de audio demensajes privados por HTTP
I App enviaba pedidos a CDNs por HTTP para reproducirlos videos
![Page 26: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/26.jpg)
Caso 4: InstagramI Instagram todavıa utiliza HTTPI Session Hijacking
![Page 27: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/27.jpg)
Caso 5: Incorrecta validacion del servidor
I Los servidores deberıan:I Validar el formato de inputs que vienen de la aplicacionI Prevenir ataques de replayI Validar que el pedido esta siguiendo la logica esperada:
I AutenticacionI AutorizacionI Control de recursos
![Page 28: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/28.jpg)
Caso 5: PicsArt
I Todavıa es explotable!
I Se puede enviar pedidos maliciosos para bypassear laautenticacion
I Desde la cuenta, se puede obtener tokens de acceso deredes sociales asociadas
![Page 29: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/29.jpg)
Caso 6: Almacenamiento de informacion privada en
SDI Almacenamiento externo (/sdcard,/mnt/sdcard) es
compartido con otras aplicacionesI Leıble para todas las apps hasta 4.3 y antes o las que
declaren READ EXTERNAL STORAGE para 4.4 en adelanteI Escritura para todos bajo WRITE EXTERNAL STORAGEI Si se va a guardar contenido sensible en la SD, encriptarlo
![Page 30: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/30.jpg)
Caso 6: Evernote
I Evernote guardaba todas las notas en/sdcard/Android/data/com.evernote/files/
I Contenido sin encriptar
![Page 31: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/31.jpg)
Caso 7: Inyectando Javascript en un contexto
I Aplicacion con una actividad exportada con una Webview(p.e. navegadores)
I Actividad anotada como singleTask
I Ademas intent-filter con:<data android:scheme="javascript"/>
I Aplicacion maliciosa puede correr JS en un contextodeterminado para robar cookies
I Ataque consiste en:I Enviar un Intent para cargar la pagina vıctima (p.e.www.google.com)
I Enviar otro Intent, usando el esquema javascript, paracorrer JS en el contexto de esa pagina
![Page 32: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/32.jpg)
Caso 7: Sleipnir Browser
![Page 33: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/33.jpg)
Caso 7: Sleipnir Browser
![Page 34: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/34.jpg)
Caso 8: Interfaces Javascript-Java / comunicacion
HTTP
I Webview y addJavascriptInterface
I Utilizado en librerıas de ads, Phonegap, navegadores
I Ataque: Inyectar JS a pedidos HTTP a librerıas o codigoJS con MITM
I Abusar interfaz para correr codigo nativo u exfiltrar datos
I Codigo a inyectar depende de:I Metodos interfaz expuestaI target-SDK de la aplicacion / Version de AndroidI Permisos de la aplicacion
![Page 35: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/35.jpg)
Caso 8: Interfaces Javascript-Java / comunicacion
HTTP
![Page 36: Busqueda de vulnerabilidades - An alisis din amicodc.exa.unrc.edu.ar/rio2015/sites/default/files/clase4.pdf · I DNS Poisoning I SSL Strip I Informaci on privada debe utilizar protocolos](https://reader031.fdocumento.com/reader031/viewer/2022022711/5c0307c309d3f290408b6cba/html5/thumbnails/36.jpg)
Bibliografıa:
1. Vulnerabilidad Facebook SDK
2. Android Secure Coding: JPCERT
3. Vulnerabilidad PicsArt
4. Vulnerabilidad Facebook
5. Vulnerabilidad MercadoLibre
6. Vulnerabilidad Instagram
7. Vulnerabilidad Evernote