SlideShare una empresa de Scribd logo
by Sergio Arcos Sebastián




Destripando y protegiendo
   aplicaciones Android


Destripando y protegiendo aplicaciones Android ~   1
Índice
●
    Introducción
●
    Marco de seguridad en el diseño de Android
●
    App1 – Difamación
●
    App2 – Invasión
●
    App3 – Recopilación
●
    App4 – Suplantación
●
    Consejos y conclusiones


Destripando y protegiendo aplicaciones Android ~   2
Disclaimer


  1) No aprendáis de mis aplicaciones...
                ... vosotros programáis mejor :)
  2) No sé si durará 1 hora o 3 horas...
               ... ¡ups!
  3) No sé si será Master.class...
                ... pero esperemos que sí sea divertida.

Destripando y protegiendo aplicaciones Android ~       3
¿Quién soy?
●
    Poca memoria
●
    Autodidácta
●
    Consultor de
    seguridad
    informática en
    www.blueliv.com
●
    Miembro del equipo
    técnico de
    www.pirata.cat
Destripando y protegiendo aplicaciones Android ~   4
Mi primera APP
●
    Lector RSS, Google
    Calendar, Sistema de
    participación, ...
●
    Permite autenticarse
    y votar
●
    Actualmente v2.3
●
    Falta mejorar tanto
    su usabilidad como
    su seguridad
    (pname:cat.pirata.activities)
Destripando y protegiendo aplicaciones Android ~   5
¿Porqué esta presentación?




              “Se aprende enseñando”
Destripando y protegiendo aplicaciones Android ~   6
¿Qué es la seguridad?




    "Algo es seguro hasta que deja de serlo"

                 (Definición cutre pero real)




Destripando y protegiendo aplicaciones Android ~   7
Son suculentos. ¿Por qué?
●
    Bastante potencia de CPU
●
    Muchas cuentas de muchas plataformas juntas
●
    Conexión permanente 3G
●
    Funciones de llamada y SMS
●
    Poco tiempo en el mercado
●
    Baja frecuencia de actualización


    ... pero ninguno de estos es el mayor problema...
Destripando y protegiendo aplicaciones Android ~    8
Esta autoadministrado :(




Destripando y protegiendo aplicaciones Android ~   9
¿Qué podemos controlar?
●
    Legitimidad del software                       (fiabilidad)
●
    Información y transparencia                    (confianza)
●
    Comunicaciones seguras                         (protección)
●
    Datos protegidos                               (privacidad)
●
    Actualizaciones constantes                     (soporte)
●
    Buenas prácticas de uso                        (consciencia)



Destripando y protegiendo aplicaciones Android ~                  10
Objetivo

     mitigar posibles futuros daños elevando el
          numero de capas de protección
     implementadas en el sistema/aplicaciones

                                    ¿Cómo?

                                Capa oculta

         (Interacción Humano-Computador Segura, ¡te invocó!)


Destripando y protegiendo aplicaciones Android ~               11
Nota informativa


    Como mis conocimientos de la `Interacción
    Humano-Computador Segura´ son bastante
    introductorios, usaremos otro método:
●



●
    A palos. (lease: a base de precedentes)
●


                                        ●
                                            "La letra con sangre entra", Goya


Destripando y protegiendo aplicaciones Android ~                           12
Índice
●
    Introducción
●
    Marco de seguridad en el diseño de Android
●
    App1 – Difamación
●
    App2 – Invasión
●
    App3 – Recopilación
●
    App4 – Suplantación
●
    Consejos y conclusiones


Destripando y protegiendo aplicaciones Android ~   13
Hardware ~ ARMvX
●
    Instrucciones RISC 32 bits, Bi-Endian
●
    Uso de Registros
●
    ARM-Thumb

●
    Syscalls = x86
●
    Modulos para
    Metasploit
    http://dev.metasploit.com/redmine/attachments/459/exec.rb


Destripando y protegiendo aplicaciones Android ~                14
Hardware ~ Memoria

    Interna:                                  Externa:
●
    ROM & RAM                             ●
                                              SDCard – NAND
●
    FileSystem: YAFFS                     ●
                                              FileSystem: FAT32
                                              (por defecto [mksdcard])
●
    Varias particiones
                                          ●
                                              "Única" partición
●
    # df -h
                                          ●
                                              # fdisk -l
●
    /dev/block/dm-X                           /dev/block/mmcblk0
    -> /mnt/asec/App/
                                          ●
                                              Parecido a /tmp (-t)
                                              (sticky bit)

Destripando y protegiendo aplicaciones Android ~                         15
Hardware ~ Memoria – App 1
●
    Espacio compartido
●
    Leer/ejecutar no
    requiere permisos
●
    Escribir requiere
    android.permission.WRITE_
    EXTERNAL_STORAGE
●
    Poco espacio en
    memoria interna
●
    Común y natural!!

Destripando y protegiendo aplicaciones Android ~   16
Wooops!.. [Never happened]




Destripando y protegiendo aplicaciones Android ~   17
Hardware ~ Memoria – App 2




Destripando y protegiendo aplicaciones Android ~   18
Hardware ~ Comunicación
●
    Mini-USB
●
    Wireless
●
    Bluetooth
●
    SDCard
●
    Tarjeta SIM
●
    Pantalla
●
    Otros (infrarojos, ...)


Destripando y protegiendo aplicaciones Android ~   19
Android ~ Estadísticas 1
●
      Mayo 2009 – 30,000 por día
●
      Mayo 2010 – 100,000 por día
●
      Agosto 2010 – 200,000 por día
●
      Diciembre 2010 – 300,000 por día
●
      Mayo 2011 – 400,000 por día
●
      Junio 2011 – 500,000 por día

●
    4.500.000.000 aplicaciones descargadas
Destripando y protegiendo aplicaciones Android ~   20
Android ~ Estadísticas 2




Destripando y protegiendo aplicaciones Android ~   21
Android ~ basado en Linux 1




Destripando y protegiendo aplicaciones Android ~   22
Android ~ basado en Linux 2




Destripando y protegiendo aplicaciones Android ~   23
Android ~ Google
●
    ro.secure = {0,1}
●
    El Market es $deity
●
    Base de datos con las firmas
●
    Reporte de infracciones
●
    Permite instalar apps a
    través de su web
●
    Mejora las funciones (wipe,
    encriptar, ...)
●
    Posibles condiciones a los proveedores.
Destripando y protegiendo aplicaciones Android ~   24
Android ~ Particiones
●
    /boot              -> bootloader + kernel
●
    /system            -> sistema operativo + apps (de sistema)
●
    /recovery          -> boot alternativo
●
    /data              -> datos del usuario + apps
●
    /cache             -> datos reaprovechables
●
    /misc              -> configuraciones (hardware)
●
    /sdcard            -> Environment.getExternalStorageDirectory();
●
    /sd-ext            -> APP2SD+ / data2ext                 ¿y /var/log?
                                                             ¿y encriptar?
Destripando y protegiendo aplicaciones Android ~                     25
Android ~ VirtualMachine
●
    Todo corre en diferentes Sandbox (falsooo!)
●
    Sistema basado en PRIVILEGIOS
    A) Ejecutamos código nativo (JNI)
        –   Se hizo una charla GTUG de esto :) (buscad NDK)
    B) Ejecutamos código DalvikEXecutable (DEX)
        –   Similar a Java; optimizado y reducido para perifericos
●
    Protecciones de datos entre diferentes
    instancias (ej: navegador->Webview)
●
    Zygote: sistema de padres-hijos
Destripando y protegiendo aplicaciones Android ~                     26
Android ~ Usuarios
    ¿mono-usuario por ser mono-propietario?




Destripando y protegiendo aplicaciones Android ~   27
Android ~ APK 1
●
    Usando adb
      > adb install /path/pkg.apk
●
    En la shell
      $ am start -a android.intent.action.VIEW -d file:///path/pkg.apk -t text
      -n com.android.packageinstaller/.PackageInstallerActivity
●
    Con el navegador iendo a file:///path/pkg.apk
●
    Con la cuenta de Google desde Google Market




Destripando y protegiendo aplicaciones Android ~                            28
Android ~ APK 2
●
    Mover a /system/app
●
    Solapar una app ya existente /data/app
    ●
        El sistema comprueba firmas en 2 ocasiones:
        –   Instalando una aplicación
        –   Reiniciando el sistema
●
    # pm install -t /path/pkg.apk
●
    Usando un paquete `update.zip´ (firmado) a
    través del modo de arranque /recovery


Destripando y protegiendo aplicaciones Android ~      29
Android ~ APK 3
●
    Necesitan estar
    firmadas
    (Modo debug o no)

●
    APK = ZIP + jarsigner
    + zalign

●
    Objetivo: Control
    absoluto de la app
Destripando y protegiendo aplicaciones Android ~   30
Android ~ Permisos 1
●
    Regular, peligroso, sistema y firmados (116)
●
    Consultar Settings.Secure (import android.provider.Settings;)
●
    Combinaciones más que peligrosas. Ej:
       PHONE_STATE + RECORD_AUDIO + INTERNET
●
    Filosofia: "O todo o nada"

●
    06-29 21:33:38.540: WARN/InputDispatcher(162): Permission denied: injecting event from pid
    13267 uid 10122 to window with input channel 40a21648
    com.android.packageinstaller/com.android.packageinstaller.PackageInstallerActivity (server)
    owned by uid 10046

    (Error obtenido AÚN habiendo asignado el permiso INJECT_EVENT. ¡Mola!)
●
    Existe el permiso "BRICK" (9 apps en el market). ¡No mola!
Destripando y protegiendo aplicaciones Android ~                                           31
Android ~ Permisos 2




Destripando y protegiendo aplicaciones Android ~   32
Android ~ Cuentas




Destripando y protegiendo aplicaciones Android ~   33
Manos a la obra!!




Destripando y protegiendo aplicaciones Android ~   34
Índice
●
    Introducción
●
    Marco de seguridad en el diseño de Android
●
    App1 – Difamación
●
    App2 – Invasión
●
    App3 – Recopilación
●
    App4 – Suplantación
●
    Consejos y conclusiones


Destripando y protegiendo aplicaciones Android ~   35
Objetivos
●
    Aplicación común
    (Webview) sin
    ofuscar
●
    Análisis del APK
●
    Apktool, dex2jar,
    dexdump
●
    Código dinámico
●
    Análisis del
    DroidDread
Destripando y protegiendo aplicaciones Android ~   36
Índice
●
    Introducción
●
    Marco de seguridad en el diseño de Android
●
    App1 – Difamación
●
    App2 – Invasión
●
    App3 – Recopilación
●
    App4 – Suplantación
●
    Consejos y conclusiones


Destripando y protegiendo aplicaciones Android ~   37
Objetivos
●
    Aplicación común
    (Webview) ofuscada
    con Proguard
●
    Uso de AndroGuard
●
    Intrusión web
●
    Retrace de Proguard
●
    Keystore y las claves
    seguras


Destripando y protegiendo aplicaciones Android ~   38
Índice
●
    Introducción
●
    Marco de seguridad en el diseño de Android
●
    App1 – Difamación
●
    App2 – Invasión
●
    App3 – Recopilación
●
    App4 – Suplantación
●
    Consejos y conclusiones


Destripando y protegiendo aplicaciones Android ~   39
Objetivos
●
    Aplicación nativa con
    autenticación SSL
    mediante webservice
●
    Ataque del Hotspot
●
    Introducción al
    sniffing vía wireless
●
    AndroidAuditTools
●
    WhisperSys tools


Destripando y protegiendo aplicaciones Android ~   40
Índice
●
    Introducción
●
    Marco de seguridad en el diseño de Android
●
    App1 – Difamación
●
    App2 – Invasión
●
    App3 – Recopilación
●
    App4 – Suplantación
●
    Consejos y conclusiones


Destripando y protegiendo aplicaciones Android ~   41
Objetivos
●
    Autenticación por
    lista blanca de
    móviles
●
    Técnicas anti-debug
●
    Introducción al
    emulador como
    herramienta de
    reversing
●
    DroidBox &
    TaintDroid
Destripando y protegiendo aplicaciones Android ~   42
Índice
●
    Introducción
●
    Marco de seguridad en el diseño de Android
●
    App1 – Difamación
●
    App2 – Invasión
●
    App3 – Recopilación
●
    App4 – Suplantación
●
    Consejos y conclusiones


Destripando y protegiendo aplicaciones Android ~   43
Derivados...




Destripando y protegiendo aplicaciones Android ~   44
Consejos
●
    Guarda muy bien los
    ficheros:                                        Sois el
    ●
        Keystore de firmar                          objetivo
        Mapping.txt
                                                   número 1
    ●


●
    Recuerda:
    ●
        Mínimos permisos                             de las
        SSL verificado
                                                   mafias de
    ●


    ●
        Datos en la Sdcard
    ●
        Tenla actualizada                          malware
Destripando y protegiendo aplicaciones Android ~           45
Conclusiones




Destripando y protegiendo aplicaciones Android ~   46
Retos interesantes




Destripando y protegiendo aplicaciones Android ~   47
Preguntas, dudas,
comentarios < /dev/random




                  Sergio Arcos Sebastián
Destripando y protegiendo aplicaciones Android ~   48

Más contenido relacionado

PPTX
David Reguera & Yago Jesus - Rootkit Busters ES [rooted2019]
PDF
Amenazas en la red: ataques, ciberespionaje y malware
PPTX
Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]
PPTX
Rubén Rodenas & Rubén Garrote - TLOTA - The lord of the ATMs [rooted2017]
PDF
Deep dive into digital forensics and incident response - (ISC)2 latam congres...
PDF
Javier Rodríguez & David Sánchez - ¿Otra vez tú, Tovarich? [rooted2018]
PPTX
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
PPTX
Elias Grande - Dagda [rootedvlc4]
David Reguera & Yago Jesus - Rootkit Busters ES [rooted2019]
Amenazas en la red: ataques, ciberespionaje y malware
Elías Grande & Jorge Nuñez - Medusa, El nacimiento de los ICS [rooted2019]
Rubén Rodenas & Rubén Garrote - TLOTA - The lord of the ATMs [rooted2017]
Deep dive into digital forensics and incident response - (ISC)2 latam congres...
Javier Rodríguez & David Sánchez - ¿Otra vez tú, Tovarich? [rooted2018]
Jose M Mejia - Usando computación paralela GPU en malware y herramientas de h...
Elias Grande - Dagda [rootedvlc4]

Similar a Destripando y protegiendo aplicaciones android (20)

DOCX
Android de la A a la Z - Unidad 8
PDF
"Android de la A a la Z" -- Unidad 8
PPT
13 Administración Android - Seguridad
PDF
Malware intelligence ppt-slides
PPTX
Seguridad en android.ppt
PPTX
Seguridad en android.ppt
DOCX
Proteccion android
PPTX
Análisis forense de dispositivos android 01
PPTX
Cristian Barrientos - Auditando Aplicaciones Android [rooted2018]
PPTX
Seguridad en Android
PDF
Sebastián Guerrero - Pimp your Android [RootedCON 2012]
ODP
Presentacion Android
PDF
Seminario Android (Parte 1) - movilforum
PDF
Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]
PDF
Pimp your Android. Rooted CON 2012.
PDF
Estrategias para utilizar android con seguridad
PPTX
Hackeando plataformas móviles
PDF
Testing Android Security
PDF
116 owasp mobile-top_10_security_risks
PPTX
Csa Summit 2017 - Obteniendo información de tu organización a través de aplic...
Android de la A a la Z - Unidad 8
"Android de la A a la Z" -- Unidad 8
13 Administración Android - Seguridad
Malware intelligence ppt-slides
Seguridad en android.ppt
Seguridad en android.ppt
Proteccion android
Análisis forense de dispositivos android 01
Cristian Barrientos - Auditando Aplicaciones Android [rooted2018]
Seguridad en Android
Sebastián Guerrero - Pimp your Android [RootedCON 2012]
Presentacion Android
Seminario Android (Parte 1) - movilforum
Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]
Pimp your Android. Rooted CON 2012.
Estrategias para utilizar android con seguridad
Hackeando plataformas móviles
Testing Android Security
116 owasp mobile-top_10_security_risks
Csa Summit 2017 - Obteniendo información de tu organización a través de aplic...
Publicidad

Último (20)

PPTX
Curso de generación de energía mediante sistemas solares
PPTX
El uso de las TIC en la vida cotidiana..
PDF
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
PDF
Maste clas de estructura metálica y arquitectura
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
clase auditoria informatica 2025.........
PDF
CyberOps Associate - Cisco Networking Academy
PDF
capacitación de aire acondicionado Bgh r 410
DOCX
Guía 5. Test de orientación Vocacional 2.docx
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
modulo seguimiento 1 para iniciantes del
PPTX
Propuesta BKP servidores con Acronis1.pptx
Curso de generación de energía mediante sistemas solares
El uso de las TIC en la vida cotidiana..
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
Maste clas de estructura metálica y arquitectura
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Historia Inteligencia Artificial Ana Romero.pptx
Influencia-del-uso-de-redes-sociales.pdf
Presentación PASANTIAS AuditorioOO..pptx
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Zarate Quispe Alex aldayir aplicaciones de internet .docx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
MANUAL de recursos humanos para ODOO.pdf
clase auditoria informatica 2025.........
CyberOps Associate - Cisco Networking Academy
capacitación de aire acondicionado Bgh r 410
Guía 5. Test de orientación Vocacional 2.docx
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
modulo seguimiento 1 para iniciantes del
Propuesta BKP servidores con Acronis1.pptx
Publicidad

Destripando y protegiendo aplicaciones android

  • 1. by Sergio Arcos Sebastián Destripando y protegiendo aplicaciones Android Destripando y protegiendo aplicaciones Android ~ 1
  • 2. Índice ● Introducción ● Marco de seguridad en el diseño de Android ● App1 – Difamación ● App2 – Invasión ● App3 – Recopilación ● App4 – Suplantación ● Consejos y conclusiones Destripando y protegiendo aplicaciones Android ~ 2
  • 3. Disclaimer 1) No aprendáis de mis aplicaciones... ... vosotros programáis mejor :) 2) No sé si durará 1 hora o 3 horas... ... ¡ups! 3) No sé si será Master.class... ... pero esperemos que sí sea divertida. Destripando y protegiendo aplicaciones Android ~ 3
  • 4. ¿Quién soy? ● Poca memoria ● Autodidácta ● Consultor de seguridad informática en www.blueliv.com ● Miembro del equipo técnico de www.pirata.cat Destripando y protegiendo aplicaciones Android ~ 4
  • 5. Mi primera APP ● Lector RSS, Google Calendar, Sistema de participación, ... ● Permite autenticarse y votar ● Actualmente v2.3 ● Falta mejorar tanto su usabilidad como su seguridad (pname:cat.pirata.activities) Destripando y protegiendo aplicaciones Android ~ 5
  • 6. ¿Porqué esta presentación? “Se aprende enseñando” Destripando y protegiendo aplicaciones Android ~ 6
  • 7. ¿Qué es la seguridad? "Algo es seguro hasta que deja de serlo" (Definición cutre pero real) Destripando y protegiendo aplicaciones Android ~ 7
  • 8. Son suculentos. ¿Por qué? ● Bastante potencia de CPU ● Muchas cuentas de muchas plataformas juntas ● Conexión permanente 3G ● Funciones de llamada y SMS ● Poco tiempo en el mercado ● Baja frecuencia de actualización ... pero ninguno de estos es el mayor problema... Destripando y protegiendo aplicaciones Android ~ 8
  • 9. Esta autoadministrado :( Destripando y protegiendo aplicaciones Android ~ 9
  • 10. ¿Qué podemos controlar? ● Legitimidad del software (fiabilidad) ● Información y transparencia (confianza) ● Comunicaciones seguras (protección) ● Datos protegidos (privacidad) ● Actualizaciones constantes (soporte) ● Buenas prácticas de uso (consciencia) Destripando y protegiendo aplicaciones Android ~ 10
  • 11. Objetivo mitigar posibles futuros daños elevando el numero de capas de protección implementadas en el sistema/aplicaciones ¿Cómo? Capa oculta (Interacción Humano-Computador Segura, ¡te invocó!) Destripando y protegiendo aplicaciones Android ~ 11
  • 12. Nota informativa Como mis conocimientos de la `Interacción Humano-Computador Segura´ son bastante introductorios, usaremos otro método: ● ● A palos. (lease: a base de precedentes) ● ● "La letra con sangre entra", Goya Destripando y protegiendo aplicaciones Android ~ 12
  • 13. Índice ● Introducción ● Marco de seguridad en el diseño de Android ● App1 – Difamación ● App2 – Invasión ● App3 – Recopilación ● App4 – Suplantación ● Consejos y conclusiones Destripando y protegiendo aplicaciones Android ~ 13
  • 14. Hardware ~ ARMvX ● Instrucciones RISC 32 bits, Bi-Endian ● Uso de Registros ● ARM-Thumb ● Syscalls = x86 ● Modulos para Metasploit http://dev.metasploit.com/redmine/attachments/459/exec.rb Destripando y protegiendo aplicaciones Android ~ 14
  • 15. Hardware ~ Memoria Interna: Externa: ● ROM & RAM ● SDCard – NAND ● FileSystem: YAFFS ● FileSystem: FAT32 (por defecto [mksdcard]) ● Varias particiones ● "Única" partición ● # df -h ● # fdisk -l ● /dev/block/dm-X /dev/block/mmcblk0 -> /mnt/asec/App/ ● Parecido a /tmp (-t) (sticky bit) Destripando y protegiendo aplicaciones Android ~ 15
  • 16. Hardware ~ Memoria – App 1 ● Espacio compartido ● Leer/ejecutar no requiere permisos ● Escribir requiere android.permission.WRITE_ EXTERNAL_STORAGE ● Poco espacio en memoria interna ● Común y natural!! Destripando y protegiendo aplicaciones Android ~ 16
  • 17. Wooops!.. [Never happened] Destripando y protegiendo aplicaciones Android ~ 17
  • 18. Hardware ~ Memoria – App 2 Destripando y protegiendo aplicaciones Android ~ 18
  • 19. Hardware ~ Comunicación ● Mini-USB ● Wireless ● Bluetooth ● SDCard ● Tarjeta SIM ● Pantalla ● Otros (infrarojos, ...) Destripando y protegiendo aplicaciones Android ~ 19
  • 20. Android ~ Estadísticas 1 ● Mayo 2009 – 30,000 por día ● Mayo 2010 – 100,000 por día ● Agosto 2010 – 200,000 por día ● Diciembre 2010 – 300,000 por día ● Mayo 2011 – 400,000 por día ● Junio 2011 – 500,000 por día ● 4.500.000.000 aplicaciones descargadas Destripando y protegiendo aplicaciones Android ~ 20
  • 21. Android ~ Estadísticas 2 Destripando y protegiendo aplicaciones Android ~ 21
  • 22. Android ~ basado en Linux 1 Destripando y protegiendo aplicaciones Android ~ 22
  • 23. Android ~ basado en Linux 2 Destripando y protegiendo aplicaciones Android ~ 23
  • 24. Android ~ Google ● ro.secure = {0,1} ● El Market es $deity ● Base de datos con las firmas ● Reporte de infracciones ● Permite instalar apps a través de su web ● Mejora las funciones (wipe, encriptar, ...) ● Posibles condiciones a los proveedores. Destripando y protegiendo aplicaciones Android ~ 24
  • 25. Android ~ Particiones ● /boot -> bootloader + kernel ● /system -> sistema operativo + apps (de sistema) ● /recovery -> boot alternativo ● /data -> datos del usuario + apps ● /cache -> datos reaprovechables ● /misc -> configuraciones (hardware) ● /sdcard -> Environment.getExternalStorageDirectory(); ● /sd-ext -> APP2SD+ / data2ext ¿y /var/log? ¿y encriptar? Destripando y protegiendo aplicaciones Android ~ 25
  • 26. Android ~ VirtualMachine ● Todo corre en diferentes Sandbox (falsooo!) ● Sistema basado en PRIVILEGIOS A) Ejecutamos código nativo (JNI) – Se hizo una charla GTUG de esto :) (buscad NDK) B) Ejecutamos código DalvikEXecutable (DEX) – Similar a Java; optimizado y reducido para perifericos ● Protecciones de datos entre diferentes instancias (ej: navegador->Webview) ● Zygote: sistema de padres-hijos Destripando y protegiendo aplicaciones Android ~ 26
  • 27. Android ~ Usuarios ¿mono-usuario por ser mono-propietario? Destripando y protegiendo aplicaciones Android ~ 27
  • 28. Android ~ APK 1 ● Usando adb > adb install /path/pkg.apk ● En la shell $ am start -a android.intent.action.VIEW -d file:///path/pkg.apk -t text -n com.android.packageinstaller/.PackageInstallerActivity ● Con el navegador iendo a file:///path/pkg.apk ● Con la cuenta de Google desde Google Market Destripando y protegiendo aplicaciones Android ~ 28
  • 29. Android ~ APK 2 ● Mover a /system/app ● Solapar una app ya existente /data/app ● El sistema comprueba firmas en 2 ocasiones: – Instalando una aplicación – Reiniciando el sistema ● # pm install -t /path/pkg.apk ● Usando un paquete `update.zip´ (firmado) a través del modo de arranque /recovery Destripando y protegiendo aplicaciones Android ~ 29
  • 30. Android ~ APK 3 ● Necesitan estar firmadas (Modo debug o no) ● APK = ZIP + jarsigner + zalign ● Objetivo: Control absoluto de la app Destripando y protegiendo aplicaciones Android ~ 30
  • 31. Android ~ Permisos 1 ● Regular, peligroso, sistema y firmados (116) ● Consultar Settings.Secure (import android.provider.Settings;) ● Combinaciones más que peligrosas. Ej: PHONE_STATE + RECORD_AUDIO + INTERNET ● Filosofia: "O todo o nada" ● 06-29 21:33:38.540: WARN/InputDispatcher(162): Permission denied: injecting event from pid 13267 uid 10122 to window with input channel 40a21648 com.android.packageinstaller/com.android.packageinstaller.PackageInstallerActivity (server) owned by uid 10046 (Error obtenido AÚN habiendo asignado el permiso INJECT_EVENT. ¡Mola!) ● Existe el permiso "BRICK" (9 apps en el market). ¡No mola! Destripando y protegiendo aplicaciones Android ~ 31
  • 32. Android ~ Permisos 2 Destripando y protegiendo aplicaciones Android ~ 32
  • 33. Android ~ Cuentas Destripando y protegiendo aplicaciones Android ~ 33
  • 34. Manos a la obra!! Destripando y protegiendo aplicaciones Android ~ 34
  • 35. Índice ● Introducción ● Marco de seguridad en el diseño de Android ● App1 – Difamación ● App2 – Invasión ● App3 – Recopilación ● App4 – Suplantación ● Consejos y conclusiones Destripando y protegiendo aplicaciones Android ~ 35
  • 36. Objetivos ● Aplicación común (Webview) sin ofuscar ● Análisis del APK ● Apktool, dex2jar, dexdump ● Código dinámico ● Análisis del DroidDread Destripando y protegiendo aplicaciones Android ~ 36
  • 37. Índice ● Introducción ● Marco de seguridad en el diseño de Android ● App1 – Difamación ● App2 – Invasión ● App3 – Recopilación ● App4 – Suplantación ● Consejos y conclusiones Destripando y protegiendo aplicaciones Android ~ 37
  • 38. Objetivos ● Aplicación común (Webview) ofuscada con Proguard ● Uso de AndroGuard ● Intrusión web ● Retrace de Proguard ● Keystore y las claves seguras Destripando y protegiendo aplicaciones Android ~ 38
  • 39. Índice ● Introducción ● Marco de seguridad en el diseño de Android ● App1 – Difamación ● App2 – Invasión ● App3 – Recopilación ● App4 – Suplantación ● Consejos y conclusiones Destripando y protegiendo aplicaciones Android ~ 39
  • 40. Objetivos ● Aplicación nativa con autenticación SSL mediante webservice ● Ataque del Hotspot ● Introducción al sniffing vía wireless ● AndroidAuditTools ● WhisperSys tools Destripando y protegiendo aplicaciones Android ~ 40
  • 41. Índice ● Introducción ● Marco de seguridad en el diseño de Android ● App1 – Difamación ● App2 – Invasión ● App3 – Recopilación ● App4 – Suplantación ● Consejos y conclusiones Destripando y protegiendo aplicaciones Android ~ 41
  • 42. Objetivos ● Autenticación por lista blanca de móviles ● Técnicas anti-debug ● Introducción al emulador como herramienta de reversing ● DroidBox & TaintDroid Destripando y protegiendo aplicaciones Android ~ 42
  • 43. Índice ● Introducción ● Marco de seguridad en el diseño de Android ● App1 – Difamación ● App2 – Invasión ● App3 – Recopilación ● App4 – Suplantación ● Consejos y conclusiones Destripando y protegiendo aplicaciones Android ~ 43
  • 44. Derivados... Destripando y protegiendo aplicaciones Android ~ 44
  • 45. Consejos ● Guarda muy bien los ficheros: Sois el ● Keystore de firmar objetivo Mapping.txt número 1 ● ● Recuerda: ● Mínimos permisos de las SSL verificado mafias de ● ● Datos en la Sdcard ● Tenla actualizada malware Destripando y protegiendo aplicaciones Android ~ 45
  • 46. Conclusiones Destripando y protegiendo aplicaciones Android ~ 46
  • 47. Retos interesantes Destripando y protegiendo aplicaciones Android ~ 47
  • 48. Preguntas, dudas, comentarios < /dev/random Sergio Arcos Sebastián Destripando y protegiendo aplicaciones Android ~ 48