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

Seguridad dispositivos móviles

jmortegac
September 24, 2015

Seguridad dispositivos móviles

Android and iOS security applications and devices

jmortegac

September 24, 2015
Tweet

More Decks by jmortegac

Other Decks in Technology

Transcript

  1. Seguridad en dispositivos móviles
    José Manuel Ortega
    @jmortegac

    View Slide

  2. Intereses

    View Slide

  3. About me
    https://about.me/jmortegac
    https://medium.com/@jmortegac

    View Slide

  4. About me

    View Slide

  5. Conferencias de seguridad

    View Slide

  6.  https://speakerdeck.com/jmortega
    Presentaciones

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  10. Top 15 permisos
    https://github.com/android/platform_frameworks_base/blob/master/core/res/AndroidManifest.xml

    View Slide

  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

    View Slide

  12. Ejemplos

    View Slide

  13. Android Permisos
    http://privacygrade.org

    View Slide

  14. Permisos en Android M
    • Permisos en tiempo de ejecución

    View Slide

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

    View Slide

  16. Privacidad

    View Slide

  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

    View Slide

  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.

    View Slide

  19. Aplicaciones en Android

    View Slide

  20. Obtener apk
     Apk extractor
     http://apps.evozi.com/apk-downloader

    View Slide

  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

    View Slide

  22. Firma aplicaciones

    View Slide

  23. iOS architecture

    View Slide

  24. Seguridad en iOS

    View Slide

  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)

    View Slide

  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

    View Slide

  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

    View Slide

  28. Aplicaciones Root en Android

    View Slide

  29. Acceso Root en Android

    View Slide

  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

    View Slide

  31. Malware iOS
    http://forensics.spreitzenbarth.de/current-ios-malware

    View Slide

  32. Malware Android
    http://forensics.spreitzenbarth.de/android-malware

    View Slide

  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

    View Slide

  34. Verificación de apps

    View Slide

  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.

    View Slide

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

    View Slide

  37. Wifi free

    View Slide

  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.

    View Slide

  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

    View Slide

  40. SMS Premium
    android.permission.RECEIVE_SMS
    android.permission.SEND_SMS

    View Slide

  41. Malware/troyan manifest

    View Slide

  42. Anti-malware

    View Slide

  43. Anti-malware

    View Slide

  44. Análisis de malware
    • Informes de virusTotal
    • Permisos
    • Services
    • Receivers
    • ContentProviders
    • Librerías externas(monetización)

    View Slide

  45. Análisis en la nube

    View Slide

  46. Análisis en la nube

    View Slide

  47. Análisis en la nube
    https://anubis.iseclab.org

    View Slide

  48. Análisis en la nube
    http://foresafe.com/submit

    View Slide

  49. Análisis en la nube
    http://andrototal.org/scan

    View Slide

  50. Análisis en la nube

    View Slide

  51. Análisis en la nube
    http://www.visualthreat.com

    View Slide

  52. Análisis en la nube
    http://apkscan.nviso.be

    View Slide

  53. Análisis en la nube

    View Slide

  54. Análisis en la nube
    http://sanddroid.xjtu.edu.cn

    View Slide

  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

    View Slide

  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

    View Slide

  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.

    View Slide

  58. Ataques de ingeniería social

    View Slide

  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.

    View Slide

  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

    View Slide

  61. Riesgos
    Riesgos en disp
    móviles

    View Slide

  62. Moble Thread Model
    APPS
    OS
    Web
    Coporate
    Networks
    Web Services
    Websites
    App Stores
    Cloud
    Storage
    SMS
    Voice
    - Carrie Network
    - Local Network
    (Wifi, VPN, etc)
    Hardware
    extensions

    View Slide

  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

    View Slide

  64. OWASP Mobile Top 10 Risks

    View Slide

  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

    View Slide

  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

    View Slide

  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)

    View Slide

  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

    View Slide

  69. Librerías de terceros
    • Analizar posibles vulnerabilidades
    • PhoneGap
    • Apache Cordova

    View Slide

  70. Permisos
    • Usuario: Aplicar sentido común
    • Desarrollador: No abusar de la solicitud
    de permisos (overprivileged)
    • Principio de mínimo privilegio

    View Slide

  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?

    View Slide

  72. Permisos

    View Slide

  73. Almacenamiento en Android
    • Ficheros
    o Almacenamiento interno
    o Almacenamiento externo(SDCARD)
    • Base de datos SQLite
    • Preferencias de usuario(Shared Preferences)
    • Web Cache

    View Slide

  74. Almacenamiento inseguro

    View Slide

  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

    View Slide

  76. LogCat Android

    View Slide

  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

    View Slide

  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

    View Slide

  79. Soluciones antiVirus

    View Slide

  80. Localizar dispositivo
    https://preyproject.com

    View Slide

  81. Localizar dispositivo

    View Slide

  82. Mensajería segura
    WhisperSystems

    View Slide

  83. Mensajería segura
    https://github.com/WhisperSystems/TextSecure

    View Slide

  84. Mensajería segura

    View Slide

  85. Surespot

    View Slide

  86. Telegram
    • Protección nativa con contraseña
    • Mensajes privados con cifrado
    • Auto destrucción de mensajes.

    View Slide

  87. Telegram(Source Code + Api)

    View Slide

  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

    View Slide

  89. Connan Mobile para Android

    View Slide

  90. Connan Mobile para Android

    View Slide

  91. Escanner de vulnerabilidades

    View Slide

  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

    View Slide

  93. Android Vulnerability test suite
    https://github.com/nowsecure/android-vts

    View Slide

  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

    View Slide

  95. View Slide

  96. Buenas prácticas de desarrollo
    • Análisis estático
    • Análisis dinámico
    • Encriptación de datos
    • Ofuscación
    • Anti-debug
    • Anti-patching

    View Slide

  97. Android Lint

    View Slide

  98. Android Lint

    View Slide

  99. Android Inspect Code

    View Slide

  100. Android Sonar plugin
    https://github.com/SonarCommunity/sonar-android

    View Slide

  101. Sonar security plugin

    View Slide

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

    View Slide

  103. Análisis estático apps
    • dex2jar
    http://code.google.com/p/dex2jar
    • Java Deceomplier / JD-GUI
    http://java.decompiler.free.fr

    View Slide

  104. Análisis estático apps
    https://code.google.com/p/android-apktool

    View Slide

  105. Análisis estático

    View Slide

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

    View Slide

  107. Script-Droid

    View Slide

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

    View Slide

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

    View Slide

  110. Análisis dinámico
    • WireShark / Ficheros pcap

    View Slide

  111. Cifrado aplicaciones
    • 256-bit AES Encrypt SQLite database
    • http://sqlcipher.net/sqlcipher-for-android

    View Slide

  112. Cifrado aplicaciones
    • Secure-Preferences
    • http://github.com/scottyab/secure-preferences

    View Slide

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

    View Slide

  114. WebView

    View Slide

  115. 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;
    }

    View Slide

  116. 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;
    }

    View Slide

  117. Android root

    View Slide

  118. 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(); } }
    }

    View Slide

  119. Seguridad certificados

    View Slide

  120. xCode
     Static Analyzer
     Detect memory leaks
     ARC(Automatic Reference Counting)

    View Slide

  121. Ofuscar el código
    http://proguard.sourceforge.net

    View Slide

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

    View Slide

  123. Ofuscar el código

    View Slide

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

    View Slide

  125. Forensics en Android
    http://www.andriller.com

    View Slide

  126. Patrón de Bloqueo en Android

    View Slide

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

    View Slide

  128. Santoku linux

    View Slide

  129. Kali linux

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

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

    View Slide

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

    View Slide

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

    View Slide

  138. MDM

    View Slide

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

    View Slide

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

    View Slide

  141. Administrador de dispositivos
    Diseñado para la gestión de dispositivos móviles (MDM) de la empresa

    View Slide

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

    View Slide

  143. NetWorkMiner

    View Slide

  144. DroidWall
    • Funciona como un firewall
    para las aplicaciones a la hora
    de acceder a la red(wifi,3G)
    ROOT

    View Slide

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

    View Slide

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

    View Slide

  147. Cifrado

    View Slide

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

    View Slide

  149. Analizando el tráfico de red
    • Configurar Burp Proxy para empezar a escuchar el
    tráfico.

    View Slide

  150. Encriptación en Android
    Rendimiento
    1h
    3.0

    View Slide

  151. Segundo factor de autenticación
    https://accounts.google.com/smsauthconfig

    View Slide

  152. Segundo factor de autenticación

    View Slide

  153. Segundo factor de autenticación

    View Slide

  154. Conclusiones
    Lograr un equilibrio entre la seguridad del
    dispositivo y la funcionalidad para el usuario
    Funcionalidad
    Seguridad

    View Slide

  155. Conclusiones

    View Slide

  156. Conclusiones
    Leer
    permisos
    Leer
    comentarios
    de usuarios
    Instalar sólo
    de market
    oficial

    View Slide

  157. Books

    View Slide

  158. Books

    View Slide

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

    View Slide

  160. questions?

    View Slide