SlideShare una empresa de Scribd logo
1 de 48
Descargar para leer sin conexión
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

Similar a Destripando y protegiendo aplicaciones android

Introducción a las Herramientas de Desarrollo para Android
Introducción a las Herramientas de Desarrollo para AndroidIntroducción a las Herramientas de Desarrollo para Android
Introducción a las Herramientas de Desarrollo para AndroidIsmael Reyes
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweetsJorge Soro
 
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDKSysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDKJosé Ignacio Álvarez Ruiz
 
Thinking of CPU and Memory (2.0)
Thinking of CPU and Memory (2.0)Thinking of CPU and Memory (2.0)
Thinking of CPU and Memory (2.0)Oriol Jiménez
 
Programación de Apps con Android – Avanzado por Jorge Pintado
Programación de Apps con Android – Avanzado por Jorge PintadoProgramación de Apps con Android – Avanzado por Jorge Pintado
Programación de Apps con Android – Avanzado por Jorge PintadoCongresoWeb
 
Fundamentos del Desarrollo de Aplicaciones para Android
Fundamentos del Desarrollo de Aplicaciones para AndroidFundamentos del Desarrollo de Aplicaciones para Android
Fundamentos del Desarrollo de Aplicaciones para AndroidSantiago Márquez Solís
 
Seminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforumSeminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforumvideos
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdfJosé Moreno
 
Taller De Hardware y software
Taller De Hardware y softwareTaller De Hardware y software
Taller De Hardware y softwareJuanInformatica03
 
Taller de Hardware y Software
Taller de Hardware y SoftwareTaller de Hardware y Software
Taller de Hardware y SoftwareDDDB
 
Manuela salazar
Manuela salazarManuela salazar
Manuela salazarAna Ocampo
 

Similar a Destripando y protegiendo aplicaciones android (20)

Introducción a las Herramientas de Desarrollo para Android
Introducción a las Herramientas de Desarrollo para AndroidIntroducción a las Herramientas de Desarrollo para Android
Introducción a las Herramientas de Desarrollo para Android
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweets
 
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDKSysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
 
Thinking of CPU and Memory (2.0)
Thinking of CPU and Memory (2.0)Thinking of CPU and Memory (2.0)
Thinking of CPU and Memory (2.0)
 
Programación de Apps con Android – Avanzado por Jorge Pintado
Programación de Apps con Android – Avanzado por Jorge PintadoProgramación de Apps con Android – Avanzado por Jorge Pintado
Programación de Apps con Android – Avanzado por Jorge Pintado
 
Fundamentos del Desarrollo de Aplicaciones para Android
Fundamentos del Desarrollo de Aplicaciones para AndroidFundamentos del Desarrollo de Aplicaciones para Android
Fundamentos del Desarrollo de Aplicaciones para Android
 
kde on windows
kde on windowskde on windows
kde on windows
 
PREGUNTAS
PREGUNTAS PREGUNTAS
PREGUNTAS
 
Seminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforumSeminario Android (Parte 1) - movilforum
Seminario Android (Parte 1) - movilforum
 
Portafolio
PortafolioPortafolio
Portafolio
 
Taller hardware y sotware
Taller hardware y sotwareTaller hardware y sotware
Taller hardware y sotware
 
Tema 4.1 Introduccion Android
Tema 4.1 Introduccion AndroidTema 4.1 Introduccion Android
Tema 4.1 Introduccion Android
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdf
 
Jaime
JaimeJaime
Jaime
 
Taller De Hardware y software
Taller De Hardware y softwareTaller De Hardware y software
Taller De Hardware y software
 
Taller de Hardware y Software
Taller de Hardware y SoftwareTaller de Hardware y Software
Taller de Hardware y Software
 
Manuela salazar
Manuela salazarManuela salazar
Manuela salazar
 
Manuela salazar
Manuela salazarManuela salazar
Manuela salazar
 
Java 2010: presente, límites y futuro
Java 2010: presente, límites y futuroJava 2010: presente, límites y futuro
Java 2010: presente, límites y futuro
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a Android
 

Último

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 

Último (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 

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