$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

    View Slide

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

    View Slide

  3. 3

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  7. Situación actual
    7

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  11. Permisos en Android
    11

    View Slide

  12. Android Permisos
    12

    View Slide

  13. Android Permisos
    13

    View Slide

  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

    View Slide

  15. Aplicaciones en Android
    15

    View Slide

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

    View Slide

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

    View Slide

  18. Firmar aplicaciones en Android
    18
    Firma de aplicaciones
    Generar nuestro propio certificado
    cuando queramos subir la aplicación

    View Slide

  19. Firmar aplicaciones en Android
    19

    View Slide

  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

    View Slide

  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

    View Slide

  22. iOS Permisos
    22
    Info.plist
    Permite asegurar la compatibilidad del dispositivo

    View Slide

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

    View Slide

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

    View Slide

  25. Privacidad
    25
    Permission Manager

    View Slide

  26. Privacidad Android
    26

    View Slide

  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

    View Slide

  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.

    View Slide

  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.

    View Slide

  30. VPN
    30
    https://www.tunnelbear.com
    500MB free/month

    View Slide

  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

    View Slide

  32. Antivirus /Antimalware Android
    32

    View Slide

  33. Antivirus /Antimalware Android
    33

    View Slide

  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

    View Slide

  35. CONAN mobile for Android
    35

    View Slide

  36. CONAN mobile for Android
    36

    View Slide

  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

    View Slide

  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

    View Slide

  39. Herramientas online
    39

    View Slide

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

    View Slide

  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

    View Slide

  42. Telegram(Source Code+ API)
    42

    View Slide

  43. Herramientas online
    43

    View Slide

  44. Android rooted
    44

    View Slide

  45. Check Android rooted
    45

    View Slide

  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)

    View Slide

  47. Check iOS JailBreak
    47

    View Slide

  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

    View Slide

  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.

    View Slide

  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

    View Slide

  51. Phishing en app móviles
    51

    View Slide

  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.

    View Slide

  53. Phishing en app móviles
    53

    View Slide

  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

    View Slide

  55. Riesgos en dispositivos móviles
    55
    Riesgos en
    disp móviles

    View Slide

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

    View Slide

  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

    View Slide

  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”

    View Slide

  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.

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  63. Buenas prácticas desarrollo
    63
     Logs

    View Slide

  64. Buenas prácticas desarrollo
    64
     Webview

    View Slide

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

    View Slide

  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

    View Slide

  67. Buenas prácticas desarrollo
    67

    View Slide

  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

    View Slide

  69. Buenas prácticas desarrollo
    69
     Shared Preferences

    View Slide

  70. Buenas prácticas desarrollo
    70
     Shared Preferences
     Librería para securizar este fichero
     https://github.com/scottyab/secure-preferences

    View Slide

  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();

    View Slide

  72. Buenas prácticas desarrollo
    72
    Android Lint
    Inspect Profile

    View Slide

  73. Buenas prácticas desarrollo
    73

    View Slide

  74. Buenas prácticas desarrollo
    74

    View Slide

  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

    View Slide

  76. Buenas prácticas desarrollo
    76

    View Slide

  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...

    View Slide

  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

    View Slide

  79. Buenas prácticas desarrollo
    79
    Ofuscar la aplicación para dificultar al máximo la
    posibilidad de realizar ingeniería inversa

    View Slide

  80. Buenas prácticas desarrollo
    80
    http://proguard.sourceforge.net

    View Slide

  81. Buenas prácticas desarrollo
    81

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  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),

    View Slide

  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

    View Slide

  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

    View Slide

  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.)

    View Slide

  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

    View Slide

  91. MDM(Mobile Device Management)
    91

    View Slide

  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

    View Slide

  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

    View Slide

  94. Acceso al dispositivo Android
    94

    View Slide

  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

    View Slide

  96. Encriptación en Android
    96

    View Slide

  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

    View Slide

  98. Consejos
    98

    View Slide

  99. 99
    Gracias
    ?

    View Slide