Está en la página 1de 102

Preparación del entorno

de pruebas
Introducción
Unidad 0
Contenidos

1 Introducción a los laboratorios de pruebas


Análisis de seguridad
El laboratorio de pruebas móviles
2 Simulación de Android
3 Simulación de iOS
4 Otros entornos y herramientas profesionales
Windows Phone
BlackBerry
5 Test de evaluación

2
Introducción a los laboratorios de
pruebas
Introducción a los laboratorios de pruebas
La necesidad de un laboratorio de seguridad
 El ciclo de vida del software, independientemente de la plataforma, requiere del
constante uso de procesos y herramientas de ingeniería.
 En particular, el ámbito de la seguridad ofrece, entre otras cosas:
 Modelos de amenazas.
 Requisitos de seguridad.
 Políticas.
 Plataformas y definición de test.
 Métricas de seguridad.
 Herramientas de simulación.
 Guías y procesos de programación segura.
 El laboratorio de seguridad es una herramienta de soporte a los anteriores
procesos.

4
Introducción a los laboratorios de pruebas
El laboratorio de seguridad
 El laboratorio de seguridad no es un
sistema estático y universal.
 Los estándares y normativas non son los
mismos para todos los ámbitos y
tecnologías.
 Los requisitos de seguridad no son iguales
para todos los productos y organizaciones.
 Dependen de:
 Tipo de producto.
 La organización en la que se desarrolla.
 Clientes.
 Legislación.
 Al igual que el resto de procesos de
ingeniería, el laboratorio de seguridad
debe estar adaptado a las necesidades.

5
Introducción a los laboratorios de pruebas
Objetivos de un laboratorio de seguridad para móviles
 Un laboratorio de seguridad para dispositivos móviles debe permitir:
 Analizar la seguridad y determinar los riesgos generados por:
□ El software instalado en el mismo.
– Aplicaciones de terceros (con o sin código fuente disponible).
– Aplicaciones oficiales (instaladas por operadores o fabricantes).
– Sistema operativo.
– …
□ Su hardware.
– Interfaces inalámbricos.
– Almacenamiento externo.
– Conexiones por cable.
– …
□ Su configuración.
– Políticas de contraseñas y cuentas.
– …

 Extraer información relevante de un terminal móvil.

6
Introducción a los laboratorios de pruebas
Objetivos de un laboratorio de seguridad para móviles
 Las tareas realizadas con ayuda del laboratorio de seguridad permiten:
 Asegurar la conformidad de un dispositivo o una aplicación.
 Asegurar un nivel de seguridad específico.
 Identificar las amenazas y contramedidas existentes en un sistema.
 Convertir a los usuarios y órganos de decisión de la organización en partes efectivas
de la seguridad de la organización.
 El laboratorio de seguridad también depende del nivel de complejidad que se
requiera en los diferentes análisis.
 Cuanto más completo se requiere el análisis, la complejidad del laboratorio y su coste
material y humano crece.
□ El análisis de elementes de bajo nivel (firmware, etc.) de un dispositivo requiere un laboratorio
más complejo que uno centrado en el análisis de aplicaciones de terceros.

7
Análisis de seguridad
Análisis de seguridad
Tipos
 Un laboratorio de seguridad permite realizar distintos tipos de análisis.
 Dependiendo del procedimiento del análisis:
□ Análisis estático
□ Análisis dinámico.

 Dependiendo de los sistemas que participan en el análisis:


□ Análisis en dispositivo.
□ Análisis en emulador/máquina virtual.
□ Análisis en la nube.

 Dependiendo de la interacción con el analista:


□ Análisis automático.
□ Análisis manual.

 Es recomendable utilizar todas las aproximaciones posibles.

9
Análisis de seguridad
Análisis estático I
 Estudia características de las aplicaciones
sin ejecutarlas.
 Elementos analizables:
 Código:
□ Fuente original o compilado.
 Permisos y manifiestos de aplicaciones
(manifest).
 Imágenes y otros recursos utilizados por la
aplicación.
 Técnicas utilizadas:
 Análisis de flujo de información y taint
analysis.
□ Realiza una simulación de la ejecución de
ciertos elementos de la aplicación.
 Grafos de control de flujo.
□ Generan una representación gráfica del
orden de ejecución.

10
Análisis de seguridad
Análisis estático II
 Ventajas:
 Es automatizable muy fácilmente.
 Es muy eficaz en la detección de ciertos tipos de vulnerabilidades.
□ Buffer overflows.
□ Inyección de código.

 Algunas herramientas de desarrollo lo incluyen como una característica adicional.


 Desventajas:
 Posibilidad de un alto número de falsos positivos.
□ Resultados tienen que ser revisados manualmente.

 Algunas vulnerabilidades son difíciles de detectar automáticamente.


□ Cifrado débil.
□ Protocolos vulnerables.
□ Problemas de configuración.

11
Análisis de seguridad
Análisis dinámico I
 Estudia la seguridad de una
aplicación mediante su ejecución.
 Elementos analizables:
 Memoria de los procesos.
 Uso de recursos (CPU, red, batería).
 Llamadas al sistema.
 Resultados de funciones ante la
manipulación de parámetros.
 Técnicas utilizadas
 Ejecución en sandbox monitorizada.
 Fuzzing (generación de entradas
aleatorias).
 Inyección de código de
monitorización.
 Escaneo de vulnerabilidades.

12
Análisis de seguridad
Análisis dinámico II
 Ventajas
 Permite comprobar el comportamiento real de una aplicación.
 Acceso a información no accesible con otras técnicas.
 Entorno controlado.
 Desventajas
 Es, generalmente, más lento que el análisis estático.
□ Requiere ejecutar el programa durante un tiempo determinado.

 No siempre es posible realizar el análisis en una máquina virtual o simulador.


□ El resultado puede depender de la máquina en la que se ejecuta la aplicación.

 La interacción con la aplicación es un punto crítico.


□ Ciertas entradas como un acelerómetro u otro tipo de sensor son difíciles de generar.

 Es más difícil de automatizar.

13
Análisis de seguridad
Sistemas que participan
a

Dispositivo: Nube: Máquina virtual:

Pruebas con dispositivo Permite reducir costes


y datos reales. del análisis.
Outsourcing de muchas
tareas de análisis.

Otorga mayor control


En ocasiones la única sobre el elemento
opción posible. analizado.

Manejo de datos muy


sensibles por parte de Los resultados pueden
terceros. diferir ante un sistema
Más costoso.
real.

14
Análisis de seguridad
Análisis automático vs analista
s

 Permite tratar gran cantidad de datos.


Automático  Se puede añadir a las herramientas de
desarrollo.
 Costes de implantación bajos.

 Es capaz de detectar problemas complejos.


Analista  Puede hacer uso de herramientas automáticas.
 Puede detectar amenazas no conocidas.

15
El laboratorio de pruebas móviles
El laboratorio de pruebas móviles
Componentes
c
Terminales

Red
monitorizable

Servidores

Estaciones
de trabajo

17
El laboratorio de pruebas móviles
Terminales móviles
 Serán necesarios diferentes modelos
y sistemas operativos.
 Dependiendo de la complejidad del
laboratorio.
 Pueden ser sustituidos en algunos
casos por emuladores/máquinas
virtuales.
 Ejecución de aplicaciones a analizar.
 Cargadas desde las estaciones de
trabajo.
 Análisis dinámico de cada aplicación.
□ Dependiendo de la plataforma puede
requerir de jailbreak/rooting para
analizar ciertas aplicaciones.
 Permiten la realización de análisis
forense.
□ Logs de aplicaciones.

18
El laboratorio de pruebas móviles
Estaciones de trabajo
 Permiten cargar aplicaciones en los
terminales a través de las herramientas de
desarrollo oficiales.
 En algunas plataformas, las herramientas
oficiales están restringidas a
combinaciones de hardware y sistema
operativo (iOS y Windows Phone).
 Realizan análisis estático:
 A través de herramientas oficiales y de
terceros.
 Realizan análisis dinámico:
 A través de simuladores o máquinas
virtuales.
 Se pueden configurar para hacer de proxy
para analizar el tráfico de red de los
terminales.

19
El laboratorio de pruebas móviles
Infraestructura de red
 Conecta los terminales con el mundo exterior y
permite analizar el tráfico generado por el
terminal móvil.
 Es necesario configurarlo para que el tráfico sea
accesible. Existen dos soluciones:
 Redirección de todo el tráfico recibido por el router
a otro dispositivo.
□ Depende del modelo de router.
 Seguridad inalámbrica que permita la captura de
tráfico por parte de una estación de trabajo.
□ ¡Ojo! Otros equipos también podrán acceder al
tráfico.

 El tráfico a través de conexiones SSL


convenientemente protegidas no podrá ser
inspeccionado.
 Solución:
□ Acceso directamente desde el terminal mediante
análisis dinámico.

20
El laboratorio de pruebas móviles
Servicios de red y herramientas proxy
 Los servicios de red:
 Sirven para emular servicios ofrecidos
a los terminales y aplicaciones.
 Ofrecen logs y trazas que pueden ser
útiles para el análisis de seguridad.
 Las herramientas proxy:
 Permiten capturar parte del tráfico
enviado para su análisis.
 En algunos casos se pueden instalar
en las propias estaciones de trabajo.

21
Simulación de Android
Simulación de Android
Introducción
• Originalmente desarrollado por Distribución de versiones
Android Inc. (comprada por Google en
2005). 29,5
0,2

• Su desarrollo actual es gestionado por 0,5


3,4
el Android Open Source Project 2,9
(AOSP), mantenido por Google y
promocionado por la Open Handset 26,9
Alliance desde 2007.
• Es un sistema de código abierto que
es generalmente personalizado con
software propietario de fabricantes y 36,6
operadores. Froyo (2.2)
GingerBread(2.3.3-7)
Ice Cream Sandwich (4.0.3-4)
Jelly Bean (4.1-3)
KitKat (4.4)
Lollipop (5.0-1)
Marshmallow (6.0)
Diciembre 2015

23
Simulación de Android
Laboratorio de pruebas I
Entorno de pruebas

El entorno de pruebas para el sistema operativo Android de este curso permite:


• Desarrollar aplicaciones.
• Instalar y ejecutar aplicaciones en dispositivos.
• Instrumentalizar diferentes características de una aplicación durante su ejecución.
• Análisis estático.
• Análisis dinámico.
• Análisis forense.

24
Simulación de Android
Laboratorio de pruebas II
Entorno de pruebas

El entorno de pruebas para el sistema operativo Android está compuesto:


• Kit de desarrollo oficial de Google.
• Herramientas de terceros para el análisis estático.
• Herramientas de terceros para el análisis dinámico.
• Aplicaciones Android para el aprendizaje sobre vulnerabilidades, programación
segura y servicios de seguridad de Android.
• Herramientas para la extracción de información.

25
Simulación de Android
Kit de desarrollo oficial de Google
 Es un conjunto de herramientas que permiten el desarrollo, instalación,
ejecución, depuración y distribución de aplicaciones para el sistema operativo
Android.
 Permite la creación de aplicaciones para cualquier versión de Android.
 Smartphones: para teléfonos inteligentes y tabletas.
 Wear: para dispositivos “wearables” como pulseras inteligentes.
 TV: para televisores inteligentes.
 Auto: para vehículos.
 Aplicaciones escritas en Java
 Ciertas tareas que requieran de acceso a bajo nivel del dispositivo pueden
programarse en C con el NDK (Native Development Kit).

26
Simulación de Android
Componentes del kit de desarrollo oficial de Google
 El kit de desarrollo de Google está compuesto por diversas herramientas.
 Integrated Develpment Environment (IDE) o Entorno de desarrollo integrado:
 Entorno gráfico para creación y depuración de aplicaciones.
 En Android hay dos opciones oficiales.
□ Android Studio (oficial desde el 2014).
□ Eclipse (con plugin previo a 2014).

 Software Development Kit (SDK):


 Herramientas que permiten compilar y depurar aplicaciones de Android.
 El IDE automatiza su uso, pero no es necesario.
 Incluye:
□ Herramientas de compilación, depuración y comunicación con dispositivos.
□ Librerías del sistema para su uso por parte de aplicaciones de terceros.
□ Emuladores para ejecutar y depurar aplicaciones.
□ Herramientas de gestión del propio SDK.

27
Simulación de Android
Herramientas – Android SDK
 El SDK de Android incluye un conjunto de herramientas que facilitan la creación
de aplicaciones para el sistema operativo Android.
 Las herramientas del SDK se clasifican en dos grupos:
 SDK tools:
□ Son independientes de la versión de Android.
□ Se actualizan independientemente de las platform tools.
□ Incluyen:
– Virtual Device Manager y emulador.
– Development tools (entorno gráfico y consola).
– Debugging tools.
– Building tools.

 Platform tools:
□ Son específicas para la versión de Android para la que se están desarrollando aplicaciones.

28
Simulación de Android
Android SDK – Virtual Device Manager (AVD)
• Herramienta gráfica para la creación de dispositivos virtuales.
• Permite crear múltiples dispositivos con diferentes características:
• Sistema operativo.
• Hardware.

29
Simulación de Android
Android SDK – Emulator
• Permite ejecutar los dispositivos
creados en el AVD Manager.
• Se puede ejecutar por consola (la
utilidad emulator) o a través de
Android Studio.
• Puede configurarse mediante
parámetros al ejecutarse.
• No puede realizar llamadas.
• Puede simular la recepción de
llamadas y mensajes de texto.

Emulador de Android

30
Simulación de Android
Android SDK – Development Tools
 Cuenta con dos tipos de
herramientas:
 Herramientas de consola:
□ android: herramienta para la gestión
del SDK por consola.
□ lint: herramienta de análisis estático
para la detección de errores y
optimizaciones.
□ sqlite3: herramienta para acceder a
ficheros sqlite que contengan datos de
aplicaciones.
 Herramientas gráficas:
□ SDK Manager: interfaz gráfico para
gestionar la instalación de versiones
de la API, imágenes de sistema para
los emuladores y documentación.

31
Simulación de Android
Android SDK – Debugging Tools
 Herramientas para la depuración de
aplicaciones.
 Android Monitor: herramienta gráfica
que permite medir el uso de recursos
del sistema (CPU, memoria, red, etc.)
que utiliza una aplicación. También
permite acceder a los logs del
sistema.
 DDMS (Dalvik Debug Monitor Server):
permite realizar capturas de pantalla,
obtener información de la memoria
del dispositivo y simular eventos en el
dispositivo (llamadas, mensajes,
localización, etc.).

32
Simulación de Android
Android SDK – Building Tools
 Herramientas para la construcción de
binarios.
 ProGuard: reduce, optimiza y ofusca
el código de una aplicación. Para ello
elimina el código no utilizado y
renombra las clases, atributos y
métodos con nombres sin significado.
 zipalign: optimiza la compresión de
los ficheros de aplicación (apk)
generados para que sea más rápida y
menos costosa su ejecución.

33
Simulación de Android
Android SDK – Platform Tools
 Son herramientas que se actualizan
con cada versión del SDK de Android,
pero permanecen compatibles con
versiones anteriores.
• adb: Android Debug Bridge (adb) es
una herramienta de consola que
permite comunicarse con una
instancia de emulador ejecutándose o
un dispositivo físico conectado.
También permite el acceso a la shell
del emulador o dispositivo.
• logcat: ofrece un mecanismo para
recuperar y visualizar los logs del
dispositivo o emulador.

34
Simulación de Android
Android SDK – Android Studio
 Android Studio es el IDE oficial para Android.
 Está basado en un IDE desarrollado por IntelliJ llamado IDEA.
 Ofrece, entre otras características:
 Acceso a través del propio IDE a las herramientas del SDK de Android.
 Plantillas de código para añadir funcionalidad común a las aplicaciones.
 Edición gráfica de interfaces de usuario.
 Sistema automático de compilación y testeo basado en Gradle.
□ Facilita la inclusión de librerías externas.

 Firmado de aplicaciones y generación de APK para distribución.


 Ofuscación del código a través de Google ProGuard.
 Soporte para integrar las aplicaciones desarrolladas directamente con los servicios de
Google.
 http://developer.android.com/tools/studio/index.html

35
Simulación de Android
Android Studio – Instalación
1. Instala el JDK 7 de Java.
 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-
1880260.html
2. Navega a la página: http://developer.android.com/sdk/index.html
3. Descarga la versión correspondiente a tu sistema operativo.
 Si no aparece automáticamente, encontrarás una tabla bajando en la página.

36
Vídeo
Descarga de Android Studio

37
Simulación de Android
Android Studio – Instalación
4. Acepta las condiciones de la licencia de software.
5. Ejecuta Android Studio.

6. Sigue las instrucciones para la instalación del SDK para la última versión.

38
Simulación de Android
Herramientas – Android Studio

Estructura de
la aplicación
Editor

Android Monitor

39
Simulación de Android
Herramientas – Android Studio

Estructura de
la aplicación
Editor

Android Monitor

4040
Simulación de Android
Santoku Linux – Instalación
 Distribución de Linux especializada en análisis de seguridad en dispositivos
móviles.
 Disponible en: http://santoku-linux.com/download/
1. Instalar VirtualBox, si no está instalado (https://www.virtualbox.org).
2. Descargar la imagen ISO de Santoku Linux.
3. Iniciar VirtualBox.

41
Simulación de Android
Santoku Linux – Instalación
4. Crear una nueva máquina virtual.

42
Simulación de Android
Santoku Linux – Instalación
5. Crear una nueva máquina.
• Tipo: Linux.
• Versión: Ubuntu 64.
• RAM: 2GB Mín.

43
Simulación de Android
Santoku Linux – Instalación
6. Crear un disco duro virtual.
• Se recomienda que el tamaño del disco sea de 40GB.

44
Simulación de Android
Santoku Linux – Instalación
 7. Una vez creada, seleccionar la máquina y pinchar en:
• Settings -> Storage -> Optical Drive -> Choose Virtual Optical Disk File.
• Seleccionar la ISO descargada.

4
3

45
Vídeo
Creación VM

46
Simulación de Android
Santoku Linux – Instalación
8. Iniciar la máquina virtual e instalar el sistema operativo.
9. Durante el inicio de la máquina, seleccionar la opción “Install”.
10. Seleccionar ”Erase disk and install Santoku”.
11. Reiniciar una vez finalizada la instalación.
12. Una vez reiniciada la instalación, en la barra superior de la aplicación
seleccionar:
 Devices -> Insert Guest Additions CD.
 Si el sistema pide la instalación de las “Guest Additions”, aceptar.
 Si no se inicia de forma automática:
□ Navegar al directorio del CD.
□ Ejecutar (hace falta recordar el password de administrador).
□ sudo sh VBoxLinuxAdditions.run

47
Vídeo
Instalación Guest Additions

48
Vídeo
Puesta en marcha

49
Simulación de Android
Santoku Linux – Instalación
• Para algunas de las tareas será necesario que Santoku Linux tenga acceso
directo a la red física.
• Para ello, debemos configurar Virtualbox con una interfaz del tipo brigded.
• En la parte inferior izquierda de la ventana de la máquina virtual.

50
Vídeo
Cambio de configuración de red

51
Simulación de Android
Herramientas – Santoku Linux
• Santoku incluye multitud de
herramientas que serán de utilidad
para la realización de análisis
dinámico y estático.
• En nuestro caso, utilizaremos las
siguientes
• Apktool.
• Androguard.
• Wireshark.
• Burp Proxy.

52
Simulación de Android
Herramientas – Apktool
 Herramienta para el desempaquetado de aplicaciones de Android.
 Permite obtener en una carpeta con todos los recursos de la aplicación
incluyendo:
 El manifest en formato legible.
 El código fuente en formato smali.
 Las imágenes y demás recursos utilizados por la aplicación.
 También permite volver a empaquetar los archivos en un archivo apk para su
ejecución.
 Los ficheros generados necesitan ser firmados con un certificado para poder ser
ejecutados en un dispositivo.
 Santoku incluye la versión 1.5 de apktool.
 Para poder desempaquetar aplicaciones recientes debemos actualizarlo.

53
Simulación de Android
Herramientas – Apktool – Actualización
 Descarga el fichero “jar” más reciente de la web de apktool.
 https://bitbucket.org/iBotPeaches/apktool/downloads
 Cópialo a /usr/share/apktool y renómbralo a apktool.jar.
> sudo mv path_apktool/apktool_version.jar usr/share/apktool.jar

54
Simulación de Android
Herramientas – Androguard
 Es un proyecto de código abierto para el análisis de aplicaciones de Android.
 Es capaz de acceder a multitud de elementos de una aplicación:
 Código: clases, métodos, instrucciones, etc.
 Manifest: permisos, actividades, servicios, etc.
 Recursos: imágenes, ficheros de bases de datos.
 Permite obtener representaciones del flujo de una aplicación.
 Smali (representación legible del lenguaje ensamblador de Android).
 Grafos de llamadas.
 Es fácilmente extendible.
 En Santoku, se puede abrir su consola a través del terminal.
> androlyze -s

55
Simulación de Android
Herramientas – Wireshark
• Es un programa para la captura e inspección de tráfico de red.
• En Santoku está instalado por defecto.
• > wireshark

56
Simulación de Android
Herramientas – Burp Suite Free Proxy
 Se trata de un proxy web que utilizaremos para interceptar conexiones a
servidores web.
 Permite capturar y modificar tráfico sin cifrar pero también cifrado con SSL.
 Mediante la generación de un certificado SSL.
 Permite la modificación de peticiones o respuestas HTTP.
> burpsuite

57
Simulación de Android
Herramientas – Sqliteman
 Aplicación para la inspección y modificación de ficheros sqlite.
 Está disponible en Santoku.
> sqliteman

58
Simulación de Android
Herramientas – Qark
 Qark es una herramienta desarrollada
por LinkedIn que realiza un análisis
automático de ficheros APK.
 Muestra algunas de las posibles
vulnerabilidades que pueden afectar a
la aplicación y es capaz de generar
exploits para demostrarlas.
 Qark está disponible en Github:
https://github.com/linkedin/qark
 No viene incluido por defecto en
Santoku Linux.
 En las siguientes páginas, se muestra
el proceso para su instalación y
ejecución.

59
Simulación de Android
Herramientas – Qark – Instalación
 En Santoku crea una carpeta llamada qark:
> mkdir qark
> cd qark
 Dentro del directorio de qark clona el repositorio de Github:
> git clone https://github.com/linkedin/qark.git
 Accede a la carpeta qark y ejecuta el script:
> cd qark
> python qark.py
 Se te preguntará si quieres descargar el SDK de Android.
 Aunque ya está instalado, para no interferir con la instalación anterior
aceptamos.

60
Vídeo
Instalación Qark

61
Simulación de iOS
Simulación de iOS
Introducción
 Es el sistema operativo de Apple para Distribución de versiones
sus dispositivos iPhone, iPad y iPod
Touch. 21

 Fue lanzado en 2007, permitiendo 8


únicamente la ejecución de
aplicaciones a través del navegador.
 Es un sistema de cerrado y solo se
71
pueden instalar aplicaciones desde la
tienda oficial que hayan sido
previamente aprobadas por Apple
(salvo excepciones).

iOS 9 iOS 8 Más antiguos

63
Diciembre 2015
Simulación de iOS
Laboratorio de pruebas I
 El entorno de pruebas para el sistema
operativo iOS de este curso permite:
 Desarrollar de aplicaciones.
 Instalar y ejecutar de aplicaciones en
dispositivos.
 Instrumentalizar diferentes
características de una aplicación
durante su ejecución.
 Análisis estático (limitado en
dispositivos sin jailbreak).
 Análisis dinámico (limitado en
dispositivos sin jailbreak).
 Análisis forense (limitado en
dispositivos sin jailbreak).

64
Simulación de iOS
Laboratorio de pruebas II
 El entorno de pruebas para el sistema
operativo iOS está compuesto por:
 Kit de desarrollo oficial de Apple.
 Herramientas de terceros para el
análisis estático.
 Herramientas de terceros para el
análisis dinámico.
 Aplicaciones iOS para el aprendizaje
sobre vulnerabilidades, programación
segura y servicios de seguridad de
Android.
 Herramientas para la extracción de
información de un dispositivo iOS.

65
Simulación de iOS
Kit de desarrollo oficial de Apple
 El kit de desarrollo oficial de Apple es un conjunto de herramientas que permiten
el desarrollo, instalación, ejecución, depuración y distribución de aplicaciones
para el sistema operativo iOS.
 El kit de desarrollo oficial de Apple permite la creación de aplicaciones para iOS
y el Apple Watch.
 El lenguaje de programación utilizado puede ser Objective-C o Swift.
 Las aplicaciones creadas pueden ser retrocompatibles con algunas versiones:
 Apple puede imponer restricciones en las versiones disponibles para las nuevas
aplicaciones.
 Las aplicaciones subidas a la App Store deben ser aprobadas por Apple.
 Dos excepciones:
□ Instalación a través de un programa de empresa.
□ Instalación a través del IDE oficial sin cuenta de desarrollador.
– A partir de la última versión.

66
Simulación de iOS
Componentes del kit de desarrollo oficial de Apple
 El kit de desarrollo de Apple está compuesto de las siguientes herramientas:
 Integrated Develpment Environment (IDE) o Entorno de desarrollo integrado:
□ Entorno gráfico para creación y depuración de aplicaciones.
□ XCode 7 (Diciembre 2015).
– Disponible a través de la Apple App Store.

 Software Development Kit (SDK) Tools:


□ Herramientas que permiten compilar y depurar aplicaciones iOS.
□ El IDE automatiza su uso.
□ Incluye:
– Herramientas de compilación, depuración y comunicación con dispositivos.
– Librerías del sistema para su uso por parte de aplicaciones de terceros.
– Simulador para ejecutar y depurar aplicaciones.
– Herramientas de gestión del propio SDK.

67
Simulación de iOS
Herramientas – XCode
 IDE de Apple para desarrollo de aplicaciones.
 Se obtiene desde la Mac App Store de Apple.
 Permite desarrollar aplicaciones para:
 iOS.
 Apple Watch.
 OSX.
 Ofrece, entre otras características:
 Plantillas de código para añadir funcionalidad común a las aplicaciones.
 Edición gráfica de interfaces de usuario.
 Librería de piezas de código recurrentes.
 Firmado de aplicaciones .
 Simulador de iOS y Apple Watch.

68
Simulación de iOS
Herramientas – XCode
a

Características
Estructura
del proyecto
de la
aplicación

Barra de
ayuda

69
Simulación de iOS
Herramientas – Xcode – Editor
a

Estructur
a de la
aplicación

Barra de
ayuda

70
Simulación de iOS
Herramientas – Xcode – Interface Builder
a

71
Simulación de iOS
Herramientas – Simulador
 No es un emulador completo.
 Incluye las librerías de iOS, pero
compiladas para Intel.
 Arquitectura de OSX.
 Permite simular ciertas funciones:
 Toque huella dactilar.
 Airplay.
 Memory Warnings.
 Pero testear ciertas funciones
requiere un dispositivo físico.

72
Simulación de iOS
Herramientas – Instruments
 Analiza diferentes características de una aplicación

73
Simulación de iOS
Herramientas – Hopper
 Herramienta de desensamblado y modificación de ficheros binarios para iOS y
Mac OS X.
 Disponible en (solo para Mac OS X):
 http://www.hopperapp.com
 Es de pago, pero la versión demo permite abrir ficheros binarios e investigar su
contenido durante 30 minutos.
 Genera árboles de control de flujo de programas.
 Es capaz de crear pseudocódigo de una aplicación para facilitar la legibilidad del
código.
 Permite realizar búsquedas por etiquetas (nombre de clases, métodos, etc.) y
strings.
 La versión de pago permite depurar aplicaciones y modificar los ficheros
ejecutables para su re-empaquetado.

74
Simulación de iOS
Herramientas – Hopper
a

75
Simulación de iOS
Herramientas jailbreak
 Muchas de las tareas de análisis en iOS no se pueden realizar sobre el
simulador ya que no emula un sistema completo.
 Por ejemplo, para obtener un binario ejecutable no basta con descargar el
fichero IPA correspondiente ya que el ejecutable se encuentra cifrado.
 Es necesario extraerlo de un dispositivo iOS en el que haya sido instalado. Esta
operación requiere de la instalación de utilidades de terceros que necesitan un
dispositivo con jailbreak.
 A continuación vamos a presentar las herramientas imprescindibles para la
realización de análisis cuando se dispone de un dispositivo con jailbreak.
 En este curso, vamos a describir los pasos necesarios para configurar el
dispositivo para la extracción de binarios y su análisis, pero no se cubren los
métodos para realizar el jailbreak al dispositivo.

76
Simulación de iOS
Herramientas jailbreak – SSH
 Debemos utilizar Cydia para la instalación de todas las herramientas.

 Procedemos a instalar el paquete. Una vez terminado, Cydia reiniciará el


SpringBoard (entorno gráfico).
77
Simulación de iOS
Herramientas jailbreak – SSH – Configuración
 Ahora vamos a proceder a conectarnos por terminal al dispositivo.
 Para ello, en primer lugar debemos averiguar la IP del mismo. Para ello puedes
ir a Ajustes.

78
Simulación de iOS
Herramientas jailbreak – SSH – Configuración
 Desde Santoku, o nuestro equipo si es un Linux o Mac.
 La contraseña por defecto del dispositivo es alpine se recomienda modificarla en la
primera conexión.

 Para modificar la contraseña basta con ejecutar el comando passwd.

79
Simulación de iOS
Herramientas jailbreak – BigBooss tools
 Realizamos la misma operación para instalar “BigBoss Recommended tools”.

 Procedemos a instalar el paquete. Una vez terminado, Cydia reiniciará el


SpringBoard (entorno gráfico).
80
Simulación de iOS
Herramientas jailbreak – Clutch
 Clutch es una herramienta para el descifrado de binarios en iOS.
 Para descifrar el binario, ejecuta la aplicación y realiza volcados de la memoria
de la zona de memoria de la propia aplicación.
 Su instalación se realiza a través de SSH.
 Descargamos la última versión de la herramienta Clutch de la siguiente URL y
copiamos el binario a /usr/bin en el dispositivo iOS.
 https://github.com/KJCracks/Clutch/releases
> scp Clutch-2.0-RC7 root@192.168.0.3:/usr/bin/Clutch

81
Simulación de iOS
Herramientas jailbreak – iNalyzer
 iNalyzer es una herramienta de AppSec Labs para el análisis estático y dinámico
de aplicaciones de iOS.
 En esta unidad nos centraremos sólo en el análisis estático.
 Para instalar iNalyzer basta con añadir el repositorio http://appsec-
labs.com/cydia a los repositorios de Cydia, siguiendo las mismas instrucciones
que se han seguido para instalar repositorios anteriores.
 Una vez cargado el repositorio, se accede a la consola del sistema por SSH.
> cd /Applications/iNalyzer5.app
> ./iNalyzer
 Para ver los resultados de la ejecución debemos acceder a través del navegador
a: http://ip_iphone:5544

82
Simulación de iOS
Herramientas jailbreak – Snoop-it
 Snoop-it es una herramienta de
NESO Security labs para el análisis
automático de aplicaciones de iOS.
 Muestra algunas de las posibles
vulnerabilidades que pueden afectar a
la aplicación a través de un interfaz
web creado por la misma aplicación.
 Para instalar Snoop-it basta con
añadir el respositorio
http://repo.nesolabs.de a los
repositorios de Cydia, siguiendo las
mismas instrucciones que se han
seguido para instalar repositorios
anteriores.

83
Simulación de iOS
Otras herramientas – iFunBox
 No requiere jailbreak.
 Disponible en:
 http://www.i-funbox.com
 Permite instalar aplicaciones desde
ficheros IPA:
 Tienen que haber sido desarrollados con el
programa para empresas.
 Permite acceder a las imágenes
almacenadas en un dispositivo.
 Puede utilizar el dispositivo como un disco
extraíble.
 Puede acceder al sistema de ficheros de
cada aplicación dentro del Sandbox.
 Y al sistema de ficheros completo de iOS.

84
Simulación de iOS
Otras herramientas – iFunBox
a

85
Otros entornos y herramientas
profesionales
Otros entornos
Introducción
 iOS y Android son las plataformas
más importantes a nivel de cuota de
mercado.
 Otras plataformas con menos cuota
en usuarios domésticos son muy
utilizadas en el mundo empresarial.
 Windows Phone
□ Fácil integración con otras soluciones
en el mundo empresarial que están
muy extendidas.
 BlackBerry
□ Primera compañía en desarrollar
teléfonos inteligentes con conexión
permanente y tarifas competitivas para
empresas.

87
Windows Phone
Windows Phone
Introducción
 Sucesor de Windows Mobile.
 Muy utilizado en PDAs a inicios del
2000.
 Primera versión estable lanzada como
Windows Phone 7 en 2010.
 En su última versión, 10, ha perdido el
apelativo ”Phone” para pasar a
llamarse Windows 10 Mobile.
 Está fuertemente integrado con los
servicios de Microsoft.
 Office.
 Skype.
 Xbox.

89
Windows Phone
SDK
 Windows ofrece un SDK universal
que cubre todas sus plataformas.
 Escritorio.
 Tablets.
 Smartphone.
 Xbox.
 Tres herramientas principales,
dependiendo del desarrollador:
 Visual Studio Community.
 Visual Studio Professional.
 Visual Studio Enterprise.

90
Windows Phone
Visual Studio Community
 IDE gratuito de Microsoft.
 Descargable desde:
 https://www.visualstudio.com/post-download-vs?sku=community&clcid=0x409
 Ideado para grupos de desarrolladores pequeños.
 Incluye:
 El simulador de Windows Phone.
 Debugger.
 Herramientas de análisis estático.
□ Disponible en versiones Professional y Enterprise

 Herramientas específicas de Microsoft para testing.


 Herramientas de integración continuas y colaboración de equipos.

91
Windows Phone
Visual Studio Community – Instalación
 Accede a la web de Visual Studio (sólo para Windows).
 Haz scroll hasta la sección de Visual Studio Community.
 Ejecuta el archivo descargado para instalar Visual Studio.

92
Windows Phone
Emulador para Windows 10 Mobile
 Aplicación de escritorio que emula un dispositivo ejecutando Windows 10.
 Viene incluido en el SDK de Windows 10.
 Similar en funcionamiento al simulador de iOS.
 Permite simular:
 Datos del acelerómetro.
 Tarjetas SD.
 Localizaciones.
 Redes inalámbricas.
 Comunicaciones mediante NFC.

93
BlackBerry
BlackBerry
Introducción
 Marca de la compañía canadiense, Research in Motion (RIM), que fabrica
dispositivos con su propio sistema operativo.
 Ganó popularidad en el mundo empresarial debido a las opciones de
comunicación que ofrecían sus terminales.
 Sus principales clientes siguen siendo organizaciones en detrimento de usuarios
domésticos.
 Actualmente tiene tres líneas de dispositivos con sistemas operativos diferentes:
 BlackBerry OS.
 BlackBerry Playbook.
 BlackBerry 10.

95
BlackBerry
BlackBerry OS
 Sistema operativo para dispositivos BlackBerry hasta 2012 (versión 7.1).
 La primera versión,1.0, fue lanzada en 1997 para la BlackBerry 850 (un busca).
 Permite desarrollar aplicaciones mediante dos tecnologías:
 Javascript/CSS/HTML5:
□ Utiliza BlackBerry WebWorks para acceso a APIs nativas del dispositivo.
□ Es compatible con la utilización de Cordova para la portabilidad a otros sistemas como
Android e iOS.
 Java:
□ Utiliza un SDK específico, el BlackBerry Java SDK.
□ Desarrollo a través de Eclipse mediante un plugin:
– Incluye un simulador.
□ Incluye una API criptográfica especialmente desarrollada por RIM:
– Cifrado de ficheros.
– Librerías para comunicaciones mediante TLS y SSL.

96
BlackBerry
BlackBerry Playbook
 Sistema operativo específico de la tableta BlackBerry Playbook (2011).
 Permite el desarrollo de apps mediante 4 tecnologías:
 Native SDK
□ Plataforma nativa del dispositivo en C/C++.
□ Incluye IDE, compilador y demás herramientas necesarias para el desarrollo de apps.

 Javascript/CSS/HTML5.
 Adobe Air:
□ Permite portar aplicaciones creadas con herramientas de Adobe.
– http://developer.BlackBerry.com/air/download/#playbook

 Android:
□ Playbook OS puede ejecutar aplicaciones de Android 2.3.3 con limitaciones.

 El simulador de Playbook es ofrecido como una máquina virtual de VMWare:


 http://developer.BlackBerry.com/playbook/native/download

97
BlackBerry
BlackBerry 10
 Sistema operativo para dispositivos BlackBerry lanzado en 2013.
 Evolución del sistema operativo de la compañía QNX (comprada en 2010).
 Integración de multitud de componentes de Playbook OS.
 De nuevo, 4 formas de ejecutar aplicaciones:
 Native SDK.
□ Nuevo SDK e IDE (Momentics, basado en Eclipse).

 Javascript/CSS/HTML5.
□ SDK WebWorks para BlackBerry 10, basado en Cordova (descarga).

 Adobe Air (descontinuado en últimas versiones).


 Android.
□ Permite el repackaging de apps para su ejecución en BlackBerry 10.
□ Desde las versiones 10.2 y 10.3 BlackBerry 10 ofrece acceso a Google Play y al Amazon
Store para apps con versión máxima Android 4.3.

98
BlackBerry
SDK – Instalación
1. Navega a la siguiente página y descarga la versión de Momentics para tu
sistema operativo: http://developer.BlackBerry.com/native/downloads/
2. Instala Momentics siguiendo las instrucciones en pantalla.
3. Ejecuta Momentics y selecciona un espacio de trabajo.
4. Cuando aparezca el dialogo de instalación del SDK:
 Selecciona “No Device” y descargar Simulador.

99
BlackBerry
SDK – Instalación
5. Selecciona el nivel de API recomendado:
 Más adelante instalaremos otro simulador y nivel de API.

100
Test de evaluación
Gracias por su atención

102

También podría gustarte