Seguridad en dispositivos móviles
José Manuel Ortega
@jmortegac
Intereses
About me
https://about.me/jmortegac
https://medium.com/@jmortegac
About me
Conferencias de seguridad
 https://speakerdeck.com/jmortega
Presentaciones
Agenda
• Modelo de permisos en Android e iOS
• Seguridad en aplicaciones
• Prevención y detección de malware
• Phishing en...
Modelo de permisos
iOS Android
Requerido cuando primero sea
necesario
Se solicitan al instalar
Denegar permisos en cualqui...
Permisos en Android
Normal De bajo Riesgo para el usuario
ACCESS_NETWORK_STATE
Dangerous De mayor riesgo para el usuario,p...
Top 15 permisos
https://github.com/android/platform_frameworks_base/blob/master/core/res/AndroidManifest.xml
Permisos dangerous
50% de los usuarios de Android tienen una aplicación con los
siguientes permisos:
android.permission.AC...
Ejemplos
Android Permisos
http://privacygrade.org
Permisos en Android M
• Permisos en tiempo de ejecución
iOS Permisos
 Privacy Analysis Tools for iOs Applications
 patia.unileon.es
Privacidad
Agenda
• Modelo de permisos en Android e iOS
• Seguridad en aplicaciones
• Prevención y detección de malware
• Phishing en...
SandBox
• Cada aplicación se ejecuta en su propio contexto de
ejecución
• El objetivo es proteger las aplicaciones unas de...
Aplicaciones en Android
Obtener apk
 Apk extractor
 http://apps.evozi.com/apk-downloader
Seguridad en Android
• Las aplicaciones son firmadas con certificados
autofirmados por desarrolladores.
• Permisos persona...
Firma aplicaciones
iOS architecture
Seguridad en iOS
JailBreak en iOS
 Cydia
 JailbreakME(versiones antiguas hasta la 5)
 Evasion(iOS version>=6)
 http://evasi0n.com
 Pan...
Android Rooting
• Permite obtener control de superusuario en el
subsistema
• El proceso consiste en explotar alguna vulner...
Android Rooting
• ¿Qué cosas se pueden hacer cuando eres root?
 Instalar ROMS
 Eliminar las aplicaciones que vienen por ...
Aplicaciones Root en Android
Acceso Root en Android
Agenda
• Modelo de permisos en Android e iOS
• Seguridad en aplicaciones
• Prevención y detección de malware
• Phishing en...
Malware iOS
http://forensics.spreitzenbarth.de/current-ios-malware
Malware Android
http://forensics.spreitzenbarth.de/android-malware
Malware en Android
• 99% del malware para plataformas
móviles está orientado a Android
• Controles de seguridad en Google
...
Verificación de apps
Recomendaciones
 Instalar de orígenes conocidos
Comprobar los permisos antes de
instalar/actualizar
Revisar comentarios...
VPN
 https://www.tunnelbear.com
 500MB free/month
Wifi free
Recomendaciones
Evitar aplicaciones que no sean de markets
oficiales
No aceptar mensajes o archivos vía Bluetooth por pa...
Aplicaciones maliciosas
Suscripción a SMS
premium
Seguimiento de
ubicaciones del
dispositivo
Robo de
información
personal
...
SMS Premium
android.permission.RECEIVE_SMS
android.permission.SEND_SMS
Malware/troyan manifest
Anti-malware
Anti-malware
Análisis de malware
• Informes de virusTotal
• Permisos
• Services
• Receivers
• ContentProviders
• Librerías externas(mon...
Análisis en la nube
Análisis en la nube
Análisis en la nube
https://anubis.iseclab.org
Análisis en la nube
http://foresafe.com/submit
Análisis en la nube
http://andrototal.org/scan
Análisis en la nube
Análisis en la nube
http://www.visualthreat.com
Análisis en la nube
http://apkscan.nviso.be
Análisis en la nube
Análisis en la nube
http://sanddroid.xjtu.edu.cn
Análisis en la nube
http://tracedroid.few.vu.nl
• Análisis online de peticiones
de red,llamadas,sms
• También realiza un a...
Agenda
• Modelo de permisos en Android e iOS
• Seguridad en aplicaciones
• Prevención y detección de malware
• Phishing en...
Ataques de ingeniería social
• Phising
 Estafa que mediante ingeniería social pretende obtener
información de una victima...
Ataques de ingeniería social
Ataques de ingeniería social
 Particularidades del navegador en el dispositivo:
 Aprovechan las características del nave...
Agenda
• Modelo de permisos en Android e iOS
• Seguridad en aplicaciones
• Prevención y detección de malware
• Phishing en...
Riesgos
Riesgos en disp
móviles
Moble Thread Model
APPS
OS
Web
Coporate
Networks
Web Services
WebsitesApp StoresCloud
Storage
SMS
Voice
- Carrie Network
-...
OWASP Mobile Project
• OWASP inició en 2010 un proyecto de seguridad móvil
• Objetivo: Proporcionar a desarrolladores y pr...
OWASP Mobile Top 10 Risks
OWASP Mobile Top 10 Risks
1-
Almacenamient
o de datos
inseguro
2- Controles
débiles en el
lado del
servidor
3- Protección
...
Riesgos
• Tienda de aplicaciones(appstore)
• Permisos de las aplicaciones
• Malware móvil
• App sandboxingJailBreaking /R...
JailBreak/Root Risks
• Las aplicaciones pueden acceder a la capas más bajas
del sistema
• Se podría acceder a datos sensib...
Factores de riesgo
• Permisos en androidManifest.xml
• Verificar la firma de la aplicación
• Origen de la aplicación
• Dis...
Librerías de terceros
• Analizar posibles vulnerabilidades
• PhoneGap
• Apache Cordova
Permisos
• Usuario: Aplicar sentido común
• Desarrollador: No abusar de la solicitud
de permisos (overprivileged)
• Princi...
Permisos
 Minimizar el número de permisos que se piden
 33% aplicaciones piden más permisos de los necesarios
 ¿Es nece...
Permisos
Almacenamiento en Android
• Ficheros
o Almacenamiento interno
o Almacenamiento externo(SDCARD)
• Base de datos SQLite
• Pr...
Almacenamiento inseguro
Ficheros SQLite
• Caché y consultas offline por parte de las aplicaciones
• Gmail almacena la información de emails para a...
LogCat Android
Vectores de ataque
• Manipulación de datos:
 Modificación por otra aplicación
 JailBreak /root del dispositivo
• Pérdida...
Amenazas
Amenazas basadas en aplicaciones
• Malware /• Spyware
• Amenazas de privacidad
• Vulnerabilidades en aplicaciones...
Soluciones antiVirus
Localizar dispositivo
https://preyproject.com
Localizar dispositivo
Mensajería segura
WhisperSystems
Mensajería segura
https://github.com/WhisperSystems/TextSecure
Mensajería segura
Surespot
Telegram
• Protección nativa con contraseña
• Mensajes privados con cifrado
• Auto destrucción de mensajes.
Telegram(Source Code + Api)
Connan Mobile para Android
 https://play.google.com/store/apps/details?id=es.inteco.conanmobile
 Configuración segura de...
Connan Mobile para Android
Connan Mobile para Android
Escanner de vulnerabilidades
X-Ray
• Aplicación que realiza un escaneo
del dispositivo para determinar si hay
vulnerabilidades o falta de parches
en el...
Android Vulnerability test suite
https://github.com/nowsecure/android-vts
Agenda
• Modelo de permisos en Android e iOS
• Seguridad en aplicaciones
• Prevención y detección de malware
• Phishing en...
Buenas prácticas de desarrollo
• Análisis estático
• Análisis dinámico
• Encriptación de datos
• Ofuscación
• Anti-debug
•...
Android Lint
Android Lint
Android Inspect Code
Android Sonar plugin
https://github.com/SonarCommunity/sonar-android
Sonar security plugin
Androwarn
python androwarn.py -i my_apk.apk -r html -v 3
Telephony identifiers exfiltration: IMEI, IMSI, MCC, MNC, LAC, CI...
Análisis estático apps
• dex2jar
http://code.google.com/p/dex2jar
• Java Deceomplier / JD-GUI
http://java.decompiler.free....
Análisis estático apps
https://code.google.com/p/android-apktool
Análisis estático
Análisis de código fuente
• Siempre es buen punto de inicio listar todas las llamadas a funciones que podrían ser
usadas d...
Script-Droid
Análisis dinámico apps
 Cobertura de código
 Hashes para los paquetes analizados
 Datos de red mediante herramientas co...
Análisis dinámico apps
• Wireshark / NetWorkMiner
https://www.wireshark.org
http://www.netresec.com/?page=NetworkMiner
• D...
Análisis dinámico
• WireShark / Ficheros pcap
Cifrado aplicaciones
• 256-bit AES Encrypt SQLite database
• http://sqlcipher.net/sqlcipher-for-android
Cifrado aplicaciones
• Secure-Preferences
• http://github.com/scottyab/secure-preferences
Almacenamiento ficheros
WORLD_READABLE / WORLD_WRITABLE
Otras apps podrían leer el fichero si conocen la ruta
Los ficheros...
WebView
Encrypt /Decrypt Android
public String encrypt(String cleartext, String password) {
byte[] encryptedText = null;
String re...
Encrypt /Decrypt Android
public String decrypt(String encryptedText, String password) {
byte[] encryptedText = null;
Strin...
Android root
Android root
public class RootUtil {
public static boolean isDeviceRooted() { return checkRootMethod1() || checkRootMethod...
Seguridad certificados
xCode
 Static Analyzer
 Detect memory leaks
 ARC(Automatic Reference Counting)
Ofuscar el código
http://proguard.sourceforge.net
Ofuscar el código
Proguard
• Clase gratuita que optimiza, ofusca el código. Detectando y eliminando las
clases no utilizad...
Ofuscar el código
Testear seguridad aplicaciones
Análisis estático
Código fuente • Code Review
Binario • Ingeniería inversa
Análisis dinámic...
Forensics en Android
http://www.andriller.com
Patrón de Bloqueo en Android
Patrón de Bloqueo en Android
adb shell
cd /data/data/com.android.providers.settings/databases
sqlite3 settings.db
update s...
Santoku linux
Kali linux
Agenda
• Modelo de permisos en Android e iOS
• Seguridad en aplicaciones
• Prevención y detección de malware
• Phishing en...
Retos actuales en movilidad
• Información sin cifrar(store+ request)
• Diversidad de dispositivos (BYOD)
• Internet of thi...
Riesgos de seguridad en la empresa
Riesgo Posible solución
Sin control sobre los dispositivos
(robo o pérdida)
Encriptar
D...
BYOD
• Bring Your Own Device
• Política que permite a los empleados llevar sus dispositivos al trabajo
• Espías y hackers ...
1
• Protección del acceso
password, reconocimiento dactilar o facial
2
• Control de la conectividad
WiFi , GPS o Bluetooth...
Medidas para empresas
• Definir estándares de seguridad independientemente de
la plataforma.
• Utilizar los sistemas de ad...
MDM
• MDM ayuda a implementar directivas en toda la empresa para
reducir costos de soporte,discontinuidad del negocio y ri...
Políticas de seguridad MDM
• Autenticar el accesos a los datos para usuarios y
dispositivos.
• Proporcionar seguridad en l...
MDM
Administrar MDM
Se instala un agente en cada terminal y permite la gestión desde un
servidor centralizado.
 Complejidad d...
Soluciones MDM
• Citrix XenMobile MDM
http://www.citrix.com/products/xenmobile/overview.html
• Airwatch
http://www.air-wat...
Administrador de dispositivos
Diseñado para la gestión de dispositivos móviles (MDM) de la empresa
Aplicaciones
 Checkear el estado de la red
 Fing(NetWork Discovery,TCP SCan,Ping,traceroute)
 Wireless Network Watcher(...
NetWorkMiner
DroidWall
• Funciona como un firewall
para las aplicaciones a la hora
de acceder a la red(wifi,3G)
ROOT
Protocolos WIFI
• WEPVulnerable.En pocos minutos se
puede sacar una password
• WPATambién vulnerable frente ataques
por ...
Comunicaciones seguras
• Confidencialidad, integridad, autenticación, no
repudio
• Establecer canales seguros en medios in...
Cifrado
Analizando el tráfico de red
• Es importante analizar el tráfico de red que fluye entre
el cliente / servidor en una aplic...
Analizando el tráfico de red
• Configurar Burp Proxy para empezar a escuchar el
tráfico.
Encriptación en Android
Rendimiento
1h3.0
Segundo factor de autenticación
https://accounts.google.com/smsauthconfig
Segundo factor de autenticación
Segundo factor de autenticación
Conclusiones
Lograr un equilibrio entre la seguridad del
dispositivo y la funcionalidad para el usuario
Funcionalidad
Segu...
Conclusiones
Conclusiones
Leer
permisos
Leer
comentarios
de usuarios
Instalar sólo
de market
oficial
Books
Books
Referencias y blogs
 Open Android Security Assessment Methodology
 http://oasam.org/es/oasam
 Developer.android.com
 h...
questions?
Seguridad Dispositivos móviles Extened Edition
Próxima SlideShare
Cargando en…5
×

Seguridad Dispositivos móviles Extened Edition

461 visualizaciones

Publicado el

Seguridad Dispositivos móviles Extened Edition

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
461
En SlideShare
0
De insertados
0
Número de insertados
29
Acciones
Compartido
0
Descargas
5
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Seguridad Dispositivos móviles Extened Edition

  1. 1. Seguridad en dispositivos móviles José Manuel Ortega @jmortegac
  2. 2. Intereses
  3. 3. About me https://about.me/jmortegac https://medium.com/@jmortegac
  4. 4. About me
  5. 5. Conferencias de seguridad
  6. 6.  https://speakerdeck.com/jmortega Presentaciones
  7. 7. Agenda • Modelo de permisos en Android e iOS • Seguridad en aplicaciones • Prevención y detección de malware • Phishing en aplicaciones móviles • Riesgos en aplicaciones móviles • Buenas prácticas de desarrollo seguro • Seguridad en la empresa mediante BYOD y MDM • Conclusiones
  8. 8. Modelo de permisos iOS Android Requerido cuando primero sea necesario Se solicitan al instalar Denegar permisos en cualquier momento No se pueden denegar permisos (de forma oficial) Sí a través de aplicaciones de terceros
  9. 9. Permisos en Android Normal De bajo Riesgo para el usuario ACCESS_NETWORK_STATE Dangerous De mayor riesgo para el usuario,pudiendo incluso acceder a información privada CAMERA,CONTACTS Signature Si dos aplicaciones están firmadas con el mismo certificado, se les concede el acceso a los datos de la otra SignatureOrSystem Uso especial cuando varias aplicaciones necesitan compartir características específicas
  10. 10. Top 15 permisos https://github.com/android/platform_frameworks_base/blob/master/core/res/AndroidManifest.xml
  11. 11. Permisos dangerous 50% de los usuarios de Android tienen una aplicación con los siguientes permisos: android.permission.ACCESS_FINE_LOCATION android.permission.INTERNET android.permission.READ_SMS android.permission.RECORD_AUDIO android.permission.CAMERA android.permission.READ_CALL_LOG android.permission.RECEIVE_BOOT_COMPLETED
  12. 12. Ejemplos
  13. 13. Android Permisos http://privacygrade.org
  14. 14. Permisos en Android M • Permisos en tiempo de ejecución
  15. 15. iOS Permisos  Privacy Analysis Tools for iOs Applications  patia.unileon.es
  16. 16. Privacidad
  17. 17. Agenda • Modelo de permisos en Android e iOS • Seguridad en aplicaciones • Prevención y detección de malware • Phishing en aplicaciones móviles • Riesgos en aplicaciones móviles • Buenas prácticas de desarrollo seguro • Seguridad en la empresa mediante BYOD y MDM • Conclusiones
  18. 18. SandBox • Cada aplicación se ejecuta en su propio contexto de ejecución • El objetivo es proteger las aplicaciones unas de otras a nivel de acceso a datos y permisos • Por defecto las aplicaciones no pueden interactuar entre sí y poseen un acceso limitado al sistema operativo. • Si una aplicación trata de invadir el espacio asignado a otra aplicación el sistema operativo se encarga de evitarlo.
  19. 19. Aplicaciones en Android
  20. 20. Obtener apk  Apk extractor  http://apps.evozi.com/apk-downloader
  21. 21. Seguridad en Android • Las aplicaciones son firmadas con certificados autofirmados por desarrolladores. • Permisos personalizadosRiesgo para la privacidad • Controles de seguridad de Google play (“Bouncer”) deberían ser más exhaustivos para la detección de malware
  22. 22. Firma aplicaciones
  23. 23. iOS architecture
  24. 24. Seguridad en iOS
  25. 25. JailBreak en iOS  Cydia  JailbreakME(versiones antiguas hasta la 5)  Evasion(iOS version>=6)  http://evasi0n.com  Pangu(Windows,Mac)  http://en.pangu.io  Redsnow, SnowBreeze(reinstala iOS)
  26. 26. Android Rooting • Permite obtener control de superusuario en el subsistema • El proceso consiste en explotar alguna vulnerabilidad en el firmware del dispositivo y copiar el binario de superusuario
  27. 27. Android Rooting • ¿Qué cosas se pueden hacer cuando eres root?  Instalar ROMS  Eliminar las aplicaciones que vienen por defecto instaladas  Acceso a bajo nivel al hardware  Acceder a apps instaladas  Instalar aplicaciones en la SDCARD • Riesgos  Pérdida de garantía  Nos exponemos a ataques de malware  Brick
  28. 28. Aplicaciones Root en Android
  29. 29. Acceso Root en Android
  30. 30. Agenda • Modelo de permisos en Android e iOS • Seguridad en aplicaciones • Prevención y detección de malware • Phishing en aplicaciones móviles • Riesgos en aplicaciones móviles • Buenas prácticas de desarrollo seguro • Seguridad en la empresa mediante BYOD y MDM • Conclusiones
  31. 31. Malware iOS http://forensics.spreitzenbarth.de/current-ios-malware
  32. 32. Malware Android http://forensics.spreitzenbarth.de/android-malware
  33. 33. Malware en Android • 99% del malware para plataformas móviles está orientado a Android • Controles de seguridad en Google play no son sufucientes • Aplicaciones que no son del market oficial suponen un riesgo para el usuario
  34. 34. Verificación de apps
  35. 35. Recomendaciones  Instalar de orígenes conocidos Comprobar los permisos antes de instalar/actualizar Revisar comentarios de los usuarios Deshabilitar conexión automática a redes Wifi y evitar conectarnos a redes Free.
  36. 36. VPN  https://www.tunnelbear.com  500MB free/month
  37. 37. Wifi free
  38. 38. Recomendaciones Evitar aplicaciones que no sean de markets oficiales No aceptar mensajes o archivos vía Bluetooth por parte de desconocidos. No instalar aplicaciones sin haber verificado su procedencia, especialmente si no están firmadas. En caso de hacer jailbreak a tu iPhone, cambia la contraseña de superusuario. Si tienes un Android rooteado, instala Superuser para que toda aplicación solicite permiso. Instala programas antivirus /antimalware móvil para tu plataforma.
  39. 39. Aplicaciones maliciosas Suscripción a SMS premium Seguimiento de ubicaciones del dispositivo Robo de información personal Grabación de audio/video Simulaciones de aplicaciones:FakeAV
  40. 40. SMS Premium android.permission.RECEIVE_SMS android.permission.SEND_SMS
  41. 41. Malware/troyan manifest
  42. 42. Anti-malware
  43. 43. Anti-malware
  44. 44. Análisis de malware • Informes de virusTotal • Permisos • Services • Receivers • ContentProviders • Librerías externas(monetización)
  45. 45. Análisis en la nube
  46. 46. Análisis en la nube
  47. 47. Análisis en la nube https://anubis.iseclab.org
  48. 48. Análisis en la nube http://foresafe.com/submit
  49. 49. Análisis en la nube http://andrototal.org/scan
  50. 50. Análisis en la nube
  51. 51. Análisis en la nube http://www.visualthreat.com
  52. 52. Análisis en la nube http://apkscan.nviso.be
  53. 53. Análisis en la nube
  54. 54. Análisis en la nube http://sanddroid.xjtu.edu.cn
  55. 55. Análisis en la nube http://tracedroid.few.vu.nl • Análisis online de peticiones de red,llamadas,sms • También realiza un análisis estático y de cobertura de código • Está orientada a detección de malware
  56. 56. Agenda • Modelo de permisos en Android e iOS • Seguridad en aplicaciones • Prevención y detección de malware • Phishing en aplicaciones móviles • Riesgos en aplicaciones móviles • Buenas prácticas de desarrollo seguro • Seguridad en la empresa mediante BYOD y MDM • Conclusiones
  57. 57. Ataques de ingeniería social • Phising  Estafa que mediante ingeniería social pretende obtener información de una victima de forma fraudulenta.  El estafador envía un email a la victima haciéndose pasar por una organización legitima.  En este email se insta a la victima a acceder a un enlace adjunto e introducir sus datos con el fin de confirmar su cuenta, recibir dinero, haber ganado un concurso.  El enlace dirige a una aplicación web controlada por el estafador y similar a la de la organización suplantada.  La victima accede a la aplicación web del enlace e introduce en ella los datos solicitados.  La aplicación web envía los datos introducidos al estafador.
  58. 58. Ataques de ingeniería social
  59. 59. Ataques de ingeniería social  Particularidades del navegador en el dispositivo:  Aprovechan las características del navegador de los dispositivos móviles para realizar Phishing UrlSpoofingAtack:  Aprovechan que solo se muestra el inicio de la url en el navegador  Phising con nombres de subdominio legítimos UISpoofingSafari:  Ciertas versiones de Safari ocultan la pestaña de navegación tras cargar una página.  Aprovechando lo anterior mediante la inserción de una imagen,se puede hacer creer al usuario que se encuentra en un dominio legitimo.
  60. 60. Agenda • Modelo de permisos en Android e iOS • Seguridad en aplicaciones • Prevención y detección de malware • Phishing en aplicaciones móviles • Riesgos en aplicaciones móviles • Buenas prácticas de desarrollo seguro • Seguridad en la empresa mediante BYOD y MDM • Conclusiones
  61. 61. Riesgos Riesgos en disp móviles
  62. 62. Moble Thread Model APPS OS Web Coporate Networks Web Services WebsitesApp StoresCloud Storage SMS Voice - Carrie Network - Local Network (Wifi, VPN, etc) Hardware extensions
  63. 63. OWASP Mobile Project • OWASP inició en 2010 un proyecto de seguridad móvil • Objetivo: Proporcionar a desarrolladores y profesionales de seguridad recursos para asegurar aplicaciones móviles • Hitos: OWASP Top 10 riesgos móviles Guías de desarrollo y pruebas de seguridad Proyecto OWASP GoatDroid https://www.owasp.org/index.php/OWASP_Mobile_Security_Project
  64. 64. OWASP Mobile Top 10 Risks
  65. 65. OWASP Mobile Top 10 Risks 1- Almacenamient o de datos inseguro 2- Controles débiles en el lado del servidor 3- Protección insuficiente en la capa de transporte 4- Inyección en el lado del cliente 5- Sistema pobre de autenticación y autorización 6- Gestión inadecuada de la sesión 7- Decisiones de seguridad a partir de entradas inseguras 8- Canal lateral de fuga de datos 9- Rotura de la criptografía 10- Divulgación de información confidencial
  66. 66. Riesgos • Tienda de aplicaciones(appstore) • Permisos de las aplicaciones • Malware móvil • App sandboxingJailBreaking /Rooting • Cifrado de dispositivo y aplicaciones • Actualizaciones del sistema y aplicaciones • Problemas de privacidad(Geolocalización) • Seguridad de las comunicaciones • Robo del dispositivo
  67. 67. JailBreak/Root Risks • Las aplicaciones pueden acceder a la capas más bajas del sistema • Se podría acceder a datos sensibles de aplicaciones que tengas instaladas(gmail,evernote)
  68. 68. Factores de riesgo • Permisos en androidManifest.xml • Verificar la firma de la aplicación • Origen de la aplicación • Dispositivo rooteado • Depuración habilitada en androidManifest • Ayuda a un atacante a aprender el funcionamiento de la App
  69. 69. Librerías de terceros • Analizar posibles vulnerabilidades • PhoneGap • Apache Cordova
  70. 70. Permisos • Usuario: Aplicar sentido común • Desarrollador: No abusar de la solicitud de permisos (overprivileged) • Principio de mínimo privilegio
  71. 71. Permisos  Minimizar el número de permisos que se piden  33% aplicaciones piden más permisos de los necesarios  ¿Es necesario android.permission.CAMERA?
  72. 72. Permisos
  73. 73. Almacenamiento en Android • Ficheros o Almacenamiento interno o Almacenamiento externo(SDCARD) • Base de datos SQLite • Preferencias de usuario(Shared Preferences) • Web Cache
  74. 74. Almacenamiento inseguro
  75. 75. Ficheros SQLite • Caché y consultas offline por parte de las aplicaciones • Gmail almacena la información de emails para acceder cuando el usuario no tiene conexión • BD muy rápida que no requiere config • No soporta encriptación
  76. 76. LogCat Android
  77. 77. Vectores de ataque • Manipulación de datos:  Modificación por otra aplicación  JailBreak /root del dispositivo • Pérdida de datos:  Pérdida del dispositivo  Intento de acceder de forma física • Malware:  Virus y rootkits
  78. 78. Amenazas Amenazas basadas en aplicaciones • Malware /• Spyware • Amenazas de privacidad • Vulnerabilidades en aplicaciones Amenazas basadas en la web • Phishing • Drive-by-downloads • Exploits en navegadores Amenazas basadas en las redes • Exploits para protocolos de red • Wi-fi sniffing Amenazas físicas • Pérdida o robo del dispositivo
  79. 79. Soluciones antiVirus
  80. 80. Localizar dispositivo https://preyproject.com
  81. 81. Localizar dispositivo
  82. 82. Mensajería segura WhisperSystems
  83. 83. Mensajería segura https://github.com/WhisperSystems/TextSecure
  84. 84. Mensajería segura
  85. 85. Surespot
  86. 86. Telegram • Protección nativa con contraseña • Mensajes privados con cifrado • Auto destrucción de mensajes.
  87. 87. Telegram(Source Code + Api)
  88. 88. Connan Mobile para Android  https://play.google.com/store/apps/details?id=es.inteco.conanmobile  Configuración segura del dispositivo  Permisos de aplicaciones  Servicios proactivos de seguridad  Desarrollada por el INCIBE(Instituto Nacional de Ciberseguridad)  https://www.osi.es/es/conan-mobile
  89. 89. Connan Mobile para Android
  90. 90. Connan Mobile para Android
  91. 91. Escanner de vulnerabilidades
  92. 92. X-Ray • Aplicación que realiza un escaneo del dispositivo para determinar si hay vulnerabilidades o falta de parches en el sistema • Presenta una lista de vulnerabilidades que permiten identificar y revisar la presencia de cada vulnerabildiad en el dispositivo
  93. 93. Android Vulnerability test suite https://github.com/nowsecure/android-vts
  94. 94. Agenda • Modelo de permisos en Android e iOS • Seguridad en aplicaciones • Prevención y detección de malware • Phishing en aplicaciones móviles • Riesgos en aplicaciones móviles • Buenas prácticas de desarrollo seguro • Seguridad en la empresa mediante BYOD y MDM • Conclusiones
  95. 95. Buenas prácticas de desarrollo • Análisis estático • Análisis dinámico • Encriptación de datos • Ofuscación • Anti-debug • Anti-patching
  96. 96. Android Lint
  97. 97. Android Lint
  98. 98. Android Inspect Code
  99. 99. Android Sonar plugin https://github.com/SonarCommunity/sonar-android
  100. 100. Sonar security plugin
  101. 101. Androwarn python androwarn.py -i my_apk.apk -r html -v 3 Telephony identifiers exfiltration: IMEI, IMSI, MCC, MNC, LAC, CID, operator's name... Device settings exfiltration: software version, usage statistics, system settings, logs... Geolocation information leakage: GPS/WiFi geolocation... Connection interfaces information exfiltration: WiFi credentials Telephony services abuse: premium SMS sending, phone call composition... Audio/video flow interception: call recording, video capture... Remote connection establishment: socket open call, Bluetooth pairing, APN settings edit... PIM data leakage: contacts, calendar, SMS, mails... External memory operations: file access on SD card... PIM data modification: add/delete contacts, calendar events... Arbitrary code execution: native code using JNI, UNIX command, privilege escalation... Denial of Service: event notification deactivation, file deletion, process killing, virtual keyboard disable, terminal shutdown/reboot...
  102. 102. Análisis estático apps • dex2jar http://code.google.com/p/dex2jar • Java Deceomplier / JD-GUI http://java.decompiler.free.fr
  103. 103. Análisis estático apps https://code.google.com/p/android-apktool
  104. 104. Análisis estático
  105. 105. Análisis de código fuente • Siempre es buen punto de inicio listar todas las llamadas a funciones que podrían ser usadas de forma insegura como: • putString • setJavaScriptEnabled(true) • getExternalStorageDirectory() • getBundleExtra() • sharedPreferences
  106. 106. Script-Droid
  107. 107. Análisis dinámico apps  Cobertura de código  Hashes para los paquetes analizados  Datos de red mediante herramientas como wireShark para analizar los paquetes de red  Información de debug  Operaciones de lectura/escritura en ficheros  Operaciones de criptografía utilizando la API de Android  Envío de SMS y llamadas de teléfono
  108. 108. Análisis dinámico apps • Wireshark / NetWorkMiner https://www.wireshark.org http://www.netresec.com/?page=NetworkMiner • Drozer https://www.mwrinfosecurity.com/products/drozer • DroidBox / introSpy https://github.com/iSECPartners/Introspy-Android
  109. 109. Análisis dinámico • WireShark / Ficheros pcap
  110. 110. Cifrado aplicaciones • 256-bit AES Encrypt SQLite database • http://sqlcipher.net/sqlcipher-for-android
  111. 111. Cifrado aplicaciones • Secure-Preferences • http://github.com/scottyab/secure-preferences
  112. 112. Almacenamiento ficheros WORLD_READABLE / WORLD_WRITABLE Otras apps podrían leer el fichero si conocen la ruta Los ficheros deberían crearse en MODE_PRIVATE FileOutputStream fos = openFileOutput(“MyFile", Context.MODE_PRIVATE); fos.write(“contenido”.getBytes()); fos.close();
  113. 113. WebView
  114. 114. Encrypt /Decrypt Android public String encrypt(String cleartext, String password) { byte[] encryptedText = null; String result = ""; try { // Get key based on user-provided password PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray(), salt, PBE_ITERATION_COUNT, 256); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(PBE_ALGORITHM); SecretKey tmp = keyFactory.generateSecret(keySpec); // Encrypt SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES"); Cipher encryptionCipher = Cipher.getInstance(CIPHER_ALGORITHM); IvParameterSpec ivspec = new IvParameterSpec(initVector); encryptionCipher.init(Cipher.ENCRYPT_MODE, secret, ivspec); encryptedText = encryptionCipher.doFinal(cleartext.getBytes()); // Encode encrypted bytes to Base64 text to save in text file result = Base64.encodeToString(encryptedText, Base64.DEFAULT); } catch (Exception e) { e.printStackTrace(); } return result; }
  115. 115. Encrypt /Decrypt Android public String decrypt(String encryptedText, String password) { byte[] encryptedText = null; String result = ""; try { // Decode Base64 text back to encrypted bytes byte[] toDecrypt = Base64.decode(encryptedText, Base64.DEFAULT); // Get key based on user-provided password PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray(), salt, PBE_ITERATION_COUNT, 256); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(PBE_ALGORITHM); SecretKey tmp = keyFactory.generateSecret(keySpec); // Decrypt SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES"); Cipher decryptionCipher = Cipher.getInstance(CIPHER_ALGORITHM); IvParameterSpec ivspec = new IvParameterSpec(initVector); decryptionCipher.init(Cipher.DECRYPT_MODE, secret, ivspec); byte[] decryptedText = decryptionCipher.doFinal(toDecrypt); result = new String(decryptedText); } catch (Exception e) { e.printStackTrace(); } return result; }
  116. 116. Android root
  117. 117. Android root public class RootUtil { public static boolean isDeviceRooted() { return checkRootMethod1() || checkRootMethod2() || checkRootMethod3(); } private static boolean checkRootMethod1() { String buildTags = android.os.Build.TAGS; return buildTags != null && buildTags.contains("test-keys"); } private static boolean checkRootMethod2(){ String[] paths = { "/system/app/Superuser.apk", "/sbin/su", "/system/bin/su", "/system/xbin/su", "/data/local/xbin/su", "/data/local/bin/su", "/system/sd/xbin/su", "/system/bin/failsafe/su", "/data/local/su" }; for (String path : paths) { if (new File(path).exists()) return true; } return false; } private static boolean checkRootMethod3() { Process process = null; try { process = Runtime.getRuntime().exec(new String[] { "/system/xbin/which", "su" }); BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream())); if (in.readLine() != null) return true; return false; } catch (Throwable t) { return false; } finally { if (process != null) process.destroy(); } } }
  118. 118. Seguridad certificados
  119. 119. xCode  Static Analyzer  Detect memory leaks  ARC(Automatic Reference Counting)
  120. 120. Ofuscar el código http://proguard.sourceforge.net
  121. 121. Ofuscar el código Proguard • Clase gratuita que optimiza, ofusca el código. Detectando y eliminando las clases no utilizadas, campos, métodos y atributos. Se optimiza el código en bytes y elimina las instrucciones que no estén siendo utilizadas. Se cambia el nombre de las clases restantes, campos, métodos por nombres cortos sin sentido aparente. • Por defecto al instalar el SDK de Android viene incluido. • Sólo debemos de activarlo modificando el fichero project.properties y activar el flag proguard.config=proguard.cfg • Todas las opciones que queramos incluir las escribiremos en el fichero proguard.cfg • Cuando exportemos la aplicación automáticamente nos generara el fichero APK con el código de la misma ofuscado
  122. 122. Ofuscar el código
  123. 123. Testear seguridad aplicaciones Análisis estático Código fuente • Code Review Binario • Ingeniería inversa Análisis dinámico • Debug en tiempo de ejecución • Capturar logs y tráfico que generan • Llamadas a servicios remotos • Peticiones de red Análisis forense • Permisos en ficheros • Análisis del contenido de ficheros
  124. 124. Forensics en Android http://www.andriller.com
  125. 125. Patrón de Bloqueo en Android
  126. 126. Patrón de Bloqueo en Android adb shell cd /data/data/com.android.providers.settings/databases sqlite3 settings.db update system set value=0 where name='lock_pattern_autolock'; update system set value=0 where name='lockscreen.lockedoutpermanently'; adb shell rm /data/system/gesture.key
  127. 127. Santoku linux
  128. 128. Kali linux
  129. 129. Agenda • Modelo de permisos en Android e iOS • Seguridad en aplicaciones • Prevención y detección de malware • Phishing en aplicaciones móviles • Riesgos en aplicaciones móviles • Buenas prácticas de desarrollo seguro • Seguridad en la empresa mediante BYOD y MDM • Conclusiones
  130. 130. Retos actuales en movilidad • Información sin cifrar(store+ request) • Diversidad de dispositivos (BYOD) • Internet of things(IoT) • Seguridad en la nube • Sistemas de pago seguro
  131. 131. Riesgos de seguridad en la empresa Riesgo Posible solución Sin control sobre los dispositivos (robo o pérdida) Encriptar Dispositivos externos (BYOD / Bring Your Own Device) MDM Conexión a redes no confiables VPN Aplicaciones no conables en dispositivos de empresa Concienciar y formar a los usuarios Contenido de origen desconocido (QR con página maliciosa) Antivirus / Antimalware y estar en alerta Rastreo por GPS Desconexión de GPS cuando sea posible
  132. 132. BYOD • Bring Your Own Device • Política que permite a los empleados llevar sus dispositivos al trabajo • Espías y hackers podrían captar esta información si no se implantan los sistemas de seguridad adecuados para impedirlo. • Controlar las aplicaciones que se instala el usuario. Tanto aplicaciones pasa uso personal como aplicaciones que se usan para incrementar la productividad en el trabajo.
  133. 133. 1 • Protección del acceso password, reconocimiento dactilar o facial 2 • Control de la conectividad WiFi , GPS o Bluetooth 3 • Controlar el acceso y permisos de la aplicaciones debemos considerarlo durante la instalación 4 • Mantener el firmware y S.O. actualizado considerar las actualizaciones del fabricante 5 • Mantener copia de los datos sobre los datos críticos, personales y de la empresa 6 • Borrar datos si el dispositivo se pierde algunos servicios permiten el borrado de datos de forma remota 7 • No almacene información privada datos como tarjetas de crédito y passwords 8 • Cuidado con las aplicaciones gratuitas pueden haber sido alteradas o contener spyware 9 • Use antivirus y herramientas de escaneo tenerlos actualizados 10 • Use software MDM configuran y monitorizan el acceso
  134. 134. Medidas para empresas • Definir estándares de seguridad independientemente de la plataforma. • Utilizar los sistemas de administración centralizada (Mobile Device Manager) para las plataformas implementadas:  Habilitar borrado remoto  Habilitar bloqueo remoto  Geolocalización del equipo  Aplicación de Políticas (OTA)
  135. 135. MDM • MDM ayuda a implementar directivas en toda la empresa para reducir costos de soporte,discontinuidad del negocio y riesgos de seguridad. • Ayuda a los administradores de sistema a implementar y administrar aplicaciones de software por todos los dispositivos de la empresa para asegurar y monitorizar dispositivos móviles(smartphones,tablets) • Puede ser utilizado para administrar dispositivos de la organización y personales • Permite al personal de TI realizar de forma remota acciones de registro y rastreo de los dispositivos
  136. 136. Políticas de seguridad MDM • Autenticar el accesos a los datos para usuarios y dispositivos. • Proporcionar seguridad en la conexiones. • Formar a los usuarios. • Instalación de herramientas para la detección de malware. • Centralizar la seguridad de los dispositivos móviles.
  137. 137. MDM
  138. 138. Administrar MDM Se instala un agente en cada terminal y permite la gestión desde un servidor centralizado.  Complejidad de las contraseñas  Tiempos de bloqueo de pantalla  VPNs  Desinstalar funciones específicas  Instalar,actualizar y desinstalar aplicaciones  Localizar dispositivos con GPS  Borrar información de forma remota
  139. 139. Soluciones MDM • Citrix XenMobile MDM http://www.citrix.com/products/xenmobile/overview.html • Airwatch http://www.air-watch.com • WSO2 Enterprise Mobility Manager http://wso2.com/products/enterprise-mobility-manager
  140. 140. Administrador de dispositivos Diseñado para la gestión de dispositivos móviles (MDM) de la empresa
  141. 141. Aplicaciones  Checkear el estado de la red  Fing(NetWork Discovery,TCP SCan,Ping,traceroute)  Wireless Network Watcher(NetWork Discovery)  Aplicaciones para obtener información sobre paquetes capturados  WireShark / tcpdump  NetWorkMiner
  142. 142. NetWorkMiner
  143. 143. DroidWall • Funciona como un firewall para las aplicaciones a la hora de acceder a la red(wifi,3G) ROOT
  144. 144. Protocolos WIFI • WEPVulnerable.En pocos minutos se puede sacar una password • WPATambién vulnerable frente ataques por fuerza fruta mediante diccionario • WPA2+PSKCifrado AES de 256 bits.Actualmente el método más robusto • Uso de contraseñas seguras para evitar ataques por diccionario
  145. 145. Comunicaciones seguras • Confidencialidad, integridad, autenticación, no repudio • Establecer canales seguros en medios inseguros • HTTPS • VPN • WiFi cifrada con WPA2 • Bluetooth no descubrible • Uso de PKI
  146. 146. Cifrado
  147. 147. Analizando el tráfico de red • Es importante analizar el tráfico de red que fluye entre el cliente / servidor en una aplicación. • Busque credenciales, tokens de autenticación, las claves API que se transmiten a través de canales http no seguro. • El tráfico puede ser analizada utilizando una herramienta de proxy como BurpSuite
  148. 148. Analizando el tráfico de red • Configurar Burp Proxy para empezar a escuchar el tráfico.
  149. 149. Encriptación en Android Rendimiento 1h3.0
  150. 150. Segundo factor de autenticación https://accounts.google.com/smsauthconfig
  151. 151. Segundo factor de autenticación
  152. 152. Segundo factor de autenticación
  153. 153. Conclusiones Lograr un equilibrio entre la seguridad del dispositivo y la funcionalidad para el usuario Funcionalidad Seguridad
  154. 154. Conclusiones
  155. 155. Conclusiones Leer permisos Leer comentarios de usuarios Instalar sólo de market oficial
  156. 156. Books
  157. 157. Books
  158. 158. Referencias y blogs  Open Android Security Assessment Methodology  http://oasam.org/es/oasam  Developer.android.com  https://developer.android.com/training/articles/security-tips.html  https://source.android.com/devices/tech/security  http://globbsecurity.com  http://www.securitybydefault.com  http://blog.s21sec.com  http://hacking-etico.com
  159. 159. questions?

×