Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Seguridad móvil

Seguridad móvil

Seguridad móvil

jmortegac

April 26, 2015
Tweet

More Decks by jmortegac

Other Decks in Technology

Transcript

  1. 3

  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. Firmar aplicaciones en Android 18 Firma de aplicaciones Generar nuestro

    propio certificado cuando queramos subir la aplicación
  9. 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
  10. 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
  11. 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
  12. 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.
  13. 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.
  14. 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
  15. 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
  16. Herramientas online 37  “Dexter” online service  https://dexter.bluebox.com 

    “virustotal.com” online service  https://www.virustotal.com/es  foresafe.com/scan  andrototal.org
  17. 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
  18. 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)
  19. 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
  20. 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.
  21. 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
  22. 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.
  23. 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
  24. 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
  25. 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”
  26. 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.
  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 60
  28. 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
  29. 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
  30. 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
  31. 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
  32. Buenas prácticas desarrollo 70  Shared Preferences  Librería para

    securizar este fichero  https://github.com/scottyab/secure-preferences
  33. 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();
  34. 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
  35. 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...
  36. 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
  37. Buenas prácticas desarrollo 79 Ofuscar la aplicación para dificultar al

    máximo la posibilidad de realizar ingeniería inversa
  38. 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
  39. 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
  40. 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),
  41. 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
  42. 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
  43. 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.)
  44. 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
  45. 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
  46. 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
  47. 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
  48. 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