$30 off During Our Annual Pro Sale. View Details »

Seguridad móvil

Seguridad móvil

Seguridad móvil

jmortegac

April 26, 2015
Tweet

More Decks by jmortegac

Other Decks in Technology

Transcript

  1. Seguridad en dispositivos móviles 10 Abril 2015 José Manuel Ortega

    @jmortegac
  2. 2 https://speakerdeck.com/jmortega

  3. 3

  4. 4 Congreso de Internet en Alicante 24,25 Abril http://internet30.es

  5. Agenda • Situación actual • Seguridad en aplicaciones Android e

    iOS • Prevención y detección de malware • Phishing en aplicaciones móviles • Riesgos en aplicaciones móviles • Buenas prácticas de desarrollo • Seguridad en la empresa mediante los enfoques BYOD y MDM • Conclusiones 5
  6. Agenda • Situación actual • Seguridad en aplicaciones Android e

    iOS • 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 los enfoques BYOD y MDM • Conclusiones 6
  7. Situación actual 7

  8. Agenda • Situación actual • Seguridad en aplicaciones Android e

    iOS • 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 los enfoques BYOD y MDM • Conclusiones 8
  9. Android 9 /system/ Corresponde al sistema operativo Contiene aplicaciones preinstaladas

    /data/ Almacena los datos de usuario y aplicaciones /data/app/ Almacena aplicaciones /data/data/ Almacena datos de las aplicaciones Incluye un subdirectorio por aplicación, con los permisos de esa aplicación root
  10. Permisos en Android 10 Solicitud de permisos en el AndroidManifest.xml

    Información personal (calendario, contactos,…) Información del dispositivo(Datos de red, SMS,..) Hay que tratar de minimizar los permisos que se solicitan
  11. Permisos en Android 11

  12. Android Permisos 12

  13. Android Permisos 13

  14. Aplicaciones en Android 14  Empaqueta todo el contenido de

    las aplicaciones Android bajo un mismo fichero  Es un archivo comprimido.zip con extensión APK  Es posible descomprimirlo utilizando software archivador de ficheros Contiene: • Assets • META-INF • res • resources.asrc • AndroidManifest.xml • classes.dex
  15. Aplicaciones en Android 15

  16. Aplicaciones en Android 16 Apk extractor  http://apps.evozi.com/apk-downloader

  17. Firmar aplicaciones en Android 17 Firma de aplicaciones Almacén de

    claves por defecto
  18. Firmar aplicaciones en Android 18 Firma de aplicaciones Generar nuestro

    propio certificado cuando queramos subir la aplicación
  19. Firmar aplicaciones en Android 19

  20. iOS 20  Las aplicaciones se cifran con el certificado

    que proporciona Apple  El iPhone descifra las aplicaciones a la hora de ejecutarlas  Desarrolladas en el lenguaje de programación Objetive-C /Swift  Las aplicaciones se distribuyen e instalan bajo el formato.ipa
  21. iOS 21 Objective - C (in Xcode) Compiled to ARM

    and encrypted Packaged as IPA file with resources Deployed to phone file system as .app directory
  22. iOS Permisos 22 Info.plist Permite asegurar la compatibilidad del dispositivo

  23. iOS Permisos 23 Privacy Analysis Tools for iOs Applications patia.unileon.es

  24. Permisos Android 24 http://privacygrade.org

  25. Privacidad 25 Permission Manager

  26. Privacidad Android 26

  27. Agenda • Situación actual • Seguridad en aplicaciones Android e

    iOS • 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 los enfoques BYOD y MDM • Conclusiones 27
  28. 28  Debemos tener en cuenta que no es necesario,

    que el atacante, acceda al dispositivo móvil físicamente. Las formas más habituales son las siguientes:  Spyware, capaces de obtener una trazabilidad, sobre nuestros contactos, emails, llamadas, SMS y enviarlos al atacante.  Malware, que realizan compras, obtienen acceso a servicios de pago a cargo de su tarjeta.  Phishing, que en apariencia se confunden con aplicaciones legítimas, como entidades bancarias o redes sociales, para robar las credenciales  Procesos en background, que vigilan lo que sucede en los dispositivos, esperando su oportunidad.
  29. Recomendaciones para evitar malware 29  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.
  30. VPN 30 https://www.tunnelbear.com 500MB free/month

  31. 31 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. Recomendaciones para evitar malware
  32. Antivirus /Antimalware Android 32

  33. Antivirus /Antimalware Android 33

  34. CONAN mobile for Android 34  https://play.google.com/store/apps/details?id=es.inteco.conanmobile  Configuración segura

    del dispositivo  Aplicaciones instaladas  Permisos de aplicaciones  Servicios proactivos de seguridad  Desarrollada por el INCIBE(Instituto Nacional de Ciberseguridad)  https://www.osi.es/es/conan-mobile
  35. CONAN mobile for Android 35

  36. CONAN mobile for Android 36

  37. Herramientas online 37  “Dexter” online service  https://dexter.bluebox.com 

    “virustotal.com” online service  https://www.virustotal.com/es  foresafe.com/scan  andrototal.org
  38. Herramientas online 38  http://anubis.iseclab.org  http://mobilesandbox.org  http://www.visualthreat.com 

    http://dunkelheit.com.br/amat/analysis  http://apkscan.nviso.be
  39. Herramientas online 39

  40. Malware 40 http://forensics.spreitzenbarth.de/android-malware http://forensics.spreitzenbarth.de/current-ios-malware

  41. Mensajería segura(alternativas a whatsApp) 41  Mejoran el cifrado y

    al seguridad de las comunicaciones  SafeSlinger (Open Source)  Disponible en Android e iOS  https://www.cylab.cmu.edu/safeslinger/index.html  Surespot encrypted messenger  https://surespot.me  Telegram(Open source)  API for developers  https://telegram.org
  42. Telegram(Source Code+ API) 42

  43. Herramientas online 43

  44. Android rooted 44

  45. Check Android rooted 45

  46. IPhone jailbreak 46  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)
  47. Check iOS JailBreak 47

  48. Agenda • Situación actual • Seguridad en aplicaciones Android e

    iOS • 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 los enfoques BYOD y MDM • Conclusiones 48
  49. Phishing 49  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.
  50. Phishing en app móviles 50  Aplicaciones falsas:  Similares

    a las aplicaciones legitimas  Robo de información  Para evitarlo:  Descargar aplicaciones únicamente de los markets oficiales  Verificar el desarrollador  Verificar los permisos solicitados  Uso de antivirus / antispyware  Aplicar el sentido común
  51. Phishing en app móviles 51

  52. Phishing en app móviles 52  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.
  53. Phishing en app móviles 53

  54. Agenda • Situación actual • Seguridad en aplicaciones Android e

    iOS • 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 los enfoques BYOD y MDM • Conclusiones 54
  55. Riesgos en dispositivos móviles 55 Riesgos en disp móviles

  56. Riesgos en aplicaciones móviles 56  https://www.owasp.org/index.php/OWASP_Mobile_Security_Project

  57. Riesgos en aplicaciones móviles 57 1- Almacenamiento 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
  58. Almacenamiento de datos 58 Encriptación de datos Nunca almacenar credenciales

    del usuario Usar herramientas como SQLCipher, para almacenar datos en BBDD internas No otorgar permisos globales a las aplicaciones, usar el principio de “privilegio más bajo”
  59. Autenticación y autorización 59 Utilizar sistemas de autenticación adecuados, como

    las claves de acceso, o los patrones en los dispositivos móviles. Apoyarse en sistemas de autenticación como Oauth.
  60. Agenda • Situación actual • Seguridad en aplicaciones Android e

    iOS • 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 los enfoques BYOD y MDM • Conclusiones 60
  61. Buenas prácticas desarrollo 61 Pruebas de caja blanca Análisis estático

    del código Pruebas de caja negra Análisis en tiempo de ejecución
  62. Buenas prácticas desarrollo 62 Logs Almacenamiento en la SDCard [los

    datos no se protegen] JavaScript and Webview SQLite Conexiones HTTP Debuggable Shared preferences Análisis estático de aplicaciones
  63. Buenas prácticas desarrollo 63  Logs

  64. Buenas prácticas desarrollo 64  Webview

  65. Buenas prácticas desarrollo 65 Tener cuidado con librerías de terceros

  66. Buenas prácticas desarrollo 66 SQLite La mayoría de las aplicaciones

    emplean sqlite para almacenar los datos de las aplicaciones en el dispositivo Sqlite no tiene soporte para cifrar los datos
  67. Buenas prácticas desarrollo 67

  68. Buenas prácticas desarrollo 68 Cifrado de BD SQLite Support iOS

    / Android https://www.zetetic.net/sqlcipher/open-source 256-bit AES Encrypt SQLite database
  69. Buenas prácticas desarrollo 69  Shared Preferences

  70. Buenas prácticas desarrollo 70  Shared Preferences  Librería para

    securizar este fichero  https://github.com/scottyab/secure-preferences
  71. Buenas prácticas desarrollo 71 Almacenamiento interno en 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();
  72. Buenas prácticas desarrollo 72 Android Lint Inspect Profile

  73. Buenas prácticas desarrollo 73

  74. Buenas prácticas desarrollo 74

  75. Buenas prácticas desarrollo 75 Script que permita detectar funciones peligrosas

    relacionadas con: SharedPreferences TapJacking(Ejecutar código sin que el usuario se dé cuenta cuando realiza una acción) Almacenamiento Algoritmos de cifrado Tráfico inseguro Flag de depuración
  76. Buenas prácticas desarrollo 76

  77. Buenas prácticas desarrollo 77  https://github.com/maaaaz/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, Bluetooth MAC adress... 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...
  78. Buenas prácticas desarrollo 78 Análisis dinámico en tiempo de ejecución

     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
  79. Buenas prácticas desarrollo 79 Ofuscar la aplicación para dificultar al

    máximo la posibilidad de realizar ingeniería inversa
  80. Buenas prácticas desarrollo 80 http://proguard.sourceforge.net

  81. Buenas prácticas desarrollo 81

  82. Buenas prácticas desarrollo 82 xCode  Static Analyzer  Detect

    memory leaks
  83. Buenas prácticas desarrollo 83 ARC(Automatic Reference Counting)

  84. Buenas prácticas desarrollo 84 Almacenamiento inseguro  Todos los archivos

    del SD card pueden ser leídos por cualquier aplicación.  Programadores erróneamente guardan información sensible.  SharedPrefs es un simple archivo XML que puede ser extraído  /data/data/nombre.de.paquete/: • cache • databases • lib • shared_prefs root
  85. Agenda • Situación actual • Seguridad en aplicaciones Android e

    iOS • Prevención y detección de malware • Phishing en aplicaciones móviles • Buenas prácticas de desarrollo seguro • Seguridad en la empresa mediante los enfoques BYOD y MDM • Conclusiones 85
  86. BYOD(Bring Your Own Device) 86  Consiste en una política

    empresarial en la que los empleados llevan sus propios dispositivos al lugar de trabajo, para acceder a recursos de la empresa.  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.  Modelos BYOT (Bring Your Own Technology), BYOA (Bring Your Own Application), CYOD (Connect Your Own Device),
  87. BYOD(Bring Your Own Device) 87 Riesgos  Movilidad del usuario

     Uso de dispositivos rooteados o con jailbreak  Redes inseguras o con una mala configuración  Interconexión con otros sistemas  Uso de servicios de localización
  88. 88 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
  89. MDM(Mobile Device Management) 89  Software que permite asegurar, monitorear

    y administrar dispositivos móviles sin importar el operador o proveedor de servicios  Instalación masiva de aplicaciones  Políticas de control sobre las aplicaciones  Localización y rastreo de dispositivos  Sincronización de archivos, reportes de datos y acceso a dispositivos  Bloqueo de funciones (activar o desactivar cámara, micrófono, USB, etc.)  Control de gastos (duración de llamadas, consumo de datos, etc.)  Borrado remoto en caso de pérdida o robo  Aplicar contraseña desde el servidor (configurando la longitud, el tipo, si es alfanumérica o numérica, el número de intentos, etc.)
  90. MDM(Mobile Device Management) 90 Componentes  Servidor centralizado  Software-cliente

    instalado en cada dispositivo móvil  Base de datos centralizada con el estado de cada dispositivo conectado a la red  Modelo de comunicación entre el servidor centralizado y cada uno de los dispositivos móviles. Por ejemplo una OTA capaz de configurar de forma remota cada dispositivo a nivel de actualizaciones de aplicaciones y S.O, escaneo de forma remota de los dispositivos en busca de malware
  91. MDM(Mobile Device Management) 91

  92. Políticas de Seguridad Móvil empresarial 92  Autenticar el acceso

    a los datos para usuarios y dispositivos  Proporcionar seguridad en la conexiones  Concienciar y formar a los usuarios  Instalación de herramientas para la detección de malware  Centralizar la seguridad de los dispositivos móviles
  93. Acceso al dispositivo iOS 93  Protección mediante código de

    desbloqueo(Passcode).  Aumento del tiempo de reintento tras código incorrecto.  Configuración de la complejidad del código mediante MDM  MDM (Mobile Device Management) permite aplicar una serie de contramedidas de seguridad, como borrar remotamente la información en caso de pérdida, o desconectar los dispositivos de la red corporativa si se detectase una intrusión
  94. Acceso al dispositivo Android 94

  95. Encriptación en Android 95 Soportado desde Android 3.0 Lleva 1h

    encriptar los datos Implica una reducción del rendimiento No se puede deshabilitar
  96. Encriptación en Android 96

  97. Consejos 97  No rootear el dispositivo al menos que

    sea estrictamente necesario(por ejemplo instalar una custom room o desinstalar algunas aplicaciones que traen por defecto)  No instalar aplicaciones desde fuentes desconocidas  Leer los permisos antes de instalar  Leer opiniones de la gente en los market
  98. Consejos 98

  99. 99 Gracias ?