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

Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 

Último (20)

Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 

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