Sunteți pe pagina 1din 102

Preparacin del entorno

de pruebas
Introduccin
Unidad 0
Contenidos

1 Introduccin a los laboratorios de pruebas


Anlisis de seguridad
El laboratorio de pruebas mviles
2 Simulacin de Android
3 Simulacin de iOS
4 Otros entornos y herramientas profesionales
Windows Phone
BlackBerry
5 Test de evaluacin

2
Introduccin a los laboratorios de
pruebas
Introduccin 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 ingeniera.
En particular, el mbito de la seguridad ofrece, entre otras cosas:
Modelos de amenazas.
Requisitos de seguridad.
Polticas.
Plataformas y definicin de test.
Mtricas de seguridad.
Herramientas de simulacin.
Guas y procesos de programacin segura.
El laboratorio de seguridad es una herramienta de soporte a los anteriores
procesos.

4
Introduccin a los laboratorios de pruebas
El laboratorio de seguridad
El laboratorio de seguridad no es un
sistema esttico y universal.
Los estndares y normativas non son los
mismos para todos los mbitos y
tecnologas.
Los requisitos de seguridad no son iguales
para todos los productos y organizaciones.
Dependen de:
Tipo de producto.
La organizacin en la que se desarrolla.
Clientes.
Legislacin.
Al igual que el resto de procesos de
ingeniera, el laboratorio de seguridad
debe estar adaptado a las necesidades.

5
Introduccin a los laboratorios de pruebas
Objetivos de un laboratorio de seguridad para mviles
Un laboratorio de seguridad para dispositivos mviles debe permitir:
Analizar la seguridad y determinar los riesgos generados por:
El software instalado en el mismo.
Aplicaciones de terceros (con o sin cdigo fuente disponible).
Aplicaciones oficiales (instaladas por operadores o fabricantes).
Sistema operativo.

Su hardware.
Interfaces inalmbricos.
Almacenamiento externo.
Conexiones por cable.

Su configuracin.
Polticas de contraseas y cuentas.

Extraer informacin relevante de un terminal mvil.

6
Introduccin a los laboratorios de pruebas
Objetivos de un laboratorio de seguridad para mviles
Las tareas realizadas con ayuda del laboratorio de seguridad permiten:
Asegurar la conformidad de un dispositivo o una aplicacin.
Asegurar un nivel de seguridad especfico.
Identificar las amenazas y contramedidas existentes en un sistema.
Convertir a los usuarios y rganos de decisin de la organizacin en partes efectivas
de la seguridad de la organizacin.
El laboratorio de seguridad tambin depende del nivel de complejidad que se
requiera en los diferentes anlisis.
Cuanto ms completo se requiere el anlisis, la complejidad del laboratorio y su coste
material y humano crece.
El anlisis de elementes de bajo nivel (firmware, etc.) de un dispositivo requiere un laboratorio
ms complejo que uno centrado en el anlisis de aplicaciones de terceros.

7
Anlisis de seguridad
Anlisis de seguridad
Tipos
Un laboratorio de seguridad permite realizar distintos tipos de anlisis.
Dependiendo del procedimiento del anlisis:
Anlisis esttico
Anlisis dinmico.

Dependiendo de los sistemas que participan en el anlisis:


Anlisis en dispositivo.
Anlisis en emulador/mquina virtual.
Anlisis en la nube.

Dependiendo de la interaccin con el analista:


Anlisis automtico.
Anlisis manual.

Es recomendable utilizar todas las aproximaciones posibles.

9
Anlisis de seguridad
Anlisis esttico I
Estudia caractersticas de las aplicaciones
sin ejecutarlas.
Elementos analizables:
Cdigo:
Fuente original o compilado.
Permisos y manifiestos de aplicaciones
(manifest).
Imgenes y otros recursos utilizados por la
aplicacin.
Tcnicas utilizadas:
Anlisis de flujo de informacin y taint
analysis.
Realiza una simulacin de la ejecucin de
ciertos elementos de la aplicacin.
Grafos de control de flujo.
Generan una representacin grfica del
orden de ejecucin.

10
Anlisis de seguridad
Anlisis esttico II
Ventajas:
Es automatizable muy fcilmente.
Es muy eficaz en la deteccin de ciertos tipos de vulnerabilidades.
Buffer overflows.
Inyeccin de cdigo.

Algunas herramientas de desarrollo lo incluyen como una caracterstica adicional.


Desventajas:
Posibilidad de un alto nmero de falsos positivos.
Resultados tienen que ser revisados manualmente.

Algunas vulnerabilidades son difciles de detectar automticamente.


Cifrado dbil.
Protocolos vulnerables.
Problemas de configuracin.

11
Anlisis de seguridad
Anlisis dinmico I
Estudia la seguridad de una
aplicacin mediante su ejecucin.
Elementos analizables:
Memoria de los procesos.
Uso de recursos (CPU, red, batera).
Llamadas al sistema.
Resultados de funciones ante la
manipulacin de parmetros.
Tcnicas utilizadas
Ejecucin en sandbox monitorizada.
Fuzzing (generacin de entradas
aleatorias).
Inyeccin de cdigo de
monitorizacin.
Escaneo de vulnerabilidades.

12
Anlisis de seguridad
Anlisis dinmico II
Ventajas
Permite comprobar el comportamiento real de una aplicacin.
Acceso a informacin no accesible con otras tcnicas.
Entorno controlado.
Desventajas
Es, generalmente, ms lento que el anlisis esttico.
Requiere ejecutar el programa durante un tiempo determinado.

No siempre es posible realizar el anlisis en una mquina virtual o simulador.


El resultado puede depender de la mquina en la que se ejecuta la aplicacin.

La interaccin con la aplicacin es un punto crtico.


Ciertas entradas como un acelermetro u otro tipo de sensor son difciles de generar.

Es ms difcil de automatizar.

13
Anlisis de seguridad
Sistemas que participan
a

Dispositivo: Nube: Mquina virtual:

Pruebas con dispositivo Permite reducir costes


y datos reales. del anlisis.
Outsourcing de muchas
tareas de anlisis.

Otorga mayor control


En ocasiones la nica sobre el elemento
opcin posible. analizado.

Manejo de datos muy


sensibles por parte de Los resultados pueden
terceros. diferir ante un sistema
Ms costoso.
real.

14
Anlisis de seguridad
Anlisis automtico vs analista
s

Permite tratar gran cantidad de datos.


Automtico Se puede aadir a las herramientas de
desarrollo.
Costes de implantacin bajos.

Es capaz de detectar problemas complejos.


Analista Puede hacer uso de herramientas automticas.
Puede detectar amenazas no conocidas.

15
El laboratorio de pruebas mviles
El laboratorio de pruebas mviles
Componentes
c
Terminales

Red
monitorizable

Servidores

Estaciones
de trabajo

17
El laboratorio de pruebas mviles
Terminales mviles
Sern necesarios diferentes modelos
y sistemas operativos.
Dependiendo de la complejidad del
laboratorio.
Pueden ser sustituidos en algunos
casos por emuladores/mquinas
virtuales.
Ejecucin de aplicaciones a analizar.
Cargadas desde las estaciones de
trabajo.
Anlisis dinmico de cada aplicacin.
Dependiendo de la plataforma puede
requerir de jailbreak/rooting para
analizar ciertas aplicaciones.
Permiten la realizacin de anlisis
forense.
Logs de aplicaciones.

18
El laboratorio de pruebas mviles
Estaciones de trabajo
Permiten cargar aplicaciones en los
terminales a travs de las herramientas de
desarrollo oficiales.
En algunas plataformas, las herramientas
oficiales estn restringidas a
combinaciones de hardware y sistema
operativo (iOS y Windows Phone).
Realizan anlisis esttico:
A travs de herramientas oficiales y de
terceros.
Realizan anlisis dinmico:
A travs de simuladores o mquinas
virtuales.
Se pueden configurar para hacer de proxy
para analizar el trfico de red de los
terminales.

19
El laboratorio de pruebas mviles
Infraestructura de red
Conecta los terminales con el mundo exterior y
permite analizar el trfico generado por el
terminal mvil.
Es necesario configurarlo para que el trfico sea
accesible. Existen dos soluciones:
Redireccin de todo el trfico recibido por el router
a otro dispositivo.
Depende del modelo de router.
Seguridad inalmbrica que permita la captura de
trfico por parte de una estacin de trabajo.
Ojo! Otros equipos tambin podrn acceder al
trfico.

El trfico a travs de conexiones SSL


convenientemente protegidas no podr ser
inspeccionado.
Solucin:
Acceso directamente desde el terminal mediante
anlisis dinmico.

20
El laboratorio de pruebas mviles
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 anlisis de seguridad.
Las herramientas proxy:
Permiten capturar parte del trfico
enviado para su anlisis.
En algunos casos se pueden instalar
en las propias estaciones de trabajo.

21
Simulacin de Android
Simulacin de Android
Introduccin
Originalmente desarrollado por Distribucin 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 cdigo 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
Simulacin 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 caractersticas de una aplicacin durante su ejecucin.
Anlisis esttico.
Anlisis dinmico.
Anlisis forense.

24
Simulacin 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 anlisis esttico.
Herramientas de terceros para el anlisis dinmico.
Aplicaciones Android para el aprendizaje sobre vulnerabilidades, programacin
segura y servicios de seguridad de Android.
Herramientas para la extraccin de informacin.

25
Simulacin de Android
Kit de desarrollo oficial de Google
Es un conjunto de herramientas que permiten el desarrollo, instalacin,
ejecucin, depuracin y distribucin de aplicaciones para el sistema operativo
Android.
Permite la creacin de aplicaciones para cualquier versin de Android.
Smartphones: para telfonos inteligentes y tabletas.
Wear: para dispositivos wearables como pulseras inteligentes.
TV: para televisores inteligentes.
Auto: para vehculos.
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
Simulacin 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 grfico para creacin y depuracin 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 compilacin, depuracin y comunicacin con dispositivos.
Libreras del sistema para su uso por parte de aplicaciones de terceros.
Emuladores para ejecutar y depurar aplicaciones.
Herramientas de gestin del propio SDK.

27
Simulacin de Android
Herramientas Android SDK
El SDK de Android incluye un conjunto de herramientas que facilitan la creacin
de aplicaciones para el sistema operativo Android.
Las herramientas del SDK se clasifican en dos grupos:
SDK tools:
Son independientes de la versin de Android.
Se actualizan independientemente de las platform tools.
Incluyen:
Virtual Device Manager y emulador.
Development tools (entorno grfico y consola).
Debugging tools.
Building tools.

Platform tools:
Son especficas para la versin de Android para la que se estn desarrollando aplicaciones.

28
Simulacin de Android
Android SDK Virtual Device Manager (AVD)
Herramienta grfica para la creacin de dispositivos virtuales.
Permite crear mltiples dispositivos con diferentes caractersticas:
Sistema operativo.
Hardware.

29
Simulacin de Android
Android SDK Emulator
Permite ejecutar los dispositivos
creados en el AVD Manager.
Se puede ejecutar por consola (la
utilidad emulator) o a travs de
Android Studio.
Puede configurarse mediante
parmetros al ejecutarse.
No puede realizar llamadas.
Puede simular la recepcin de
llamadas y mensajes de texto.

Emulador de Android

30
Simulacin de Android
Android SDK Development Tools
Cuenta con dos tipos de
herramientas:
Herramientas de consola:
android: herramienta para la gestin
del SDK por consola.
lint: herramienta de anlisis esttico
para la deteccin de errores y
optimizaciones.
sqlite3: herramienta para acceder a
ficheros sqlite que contengan datos de
aplicaciones.
Herramientas grficas:
SDK Manager: interfaz grfico para
gestionar la instalacin de versiones
de la API, imgenes de sistema para
los emuladores y documentacin.

31
Simulacin de Android
Android SDK Debugging Tools
Herramientas para la depuracin de
aplicaciones.
Android Monitor: herramienta grfica
que permite medir el uso de recursos
del sistema (CPU, memoria, red, etc.)
que utiliza una aplicacin. Tambin
permite acceder a los logs del
sistema.
DDMS (Dalvik Debug Monitor Server):
permite realizar capturas de pantalla,
obtener informacin de la memoria
del dispositivo y simular eventos en el
dispositivo (llamadas, mensajes,
localizacin, etc.).

32
Simulacin de Android
Android SDK Building Tools
Herramientas para la construccin de
binarios.
ProGuard: reduce, optimiza y ofusca
el cdigo de una aplicacin. Para ello
elimina el cdigo no utilizado y
renombra las clases, atributos y
mtodos con nombres sin significado.
zipalign: optimiza la compresin de
los ficheros de aplicacin (apk)
generados para que sea ms rpida y
menos costosa su ejecucin.

33
Simulacin de Android
Android SDK Platform Tools
Son herramientas que se actualizan
con cada versin 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 ejecutndose o
un dispositivo fsico conectado.
Tambin 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
Simulacin 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 caractersticas:
Acceso a travs del propio IDE a las herramientas del SDK de Android.
Plantillas de cdigo para aadir funcionalidad comn a las aplicaciones.
Edicin grfica de interfaces de usuario.
Sistema automtico de compilacin y testeo basado en Gradle.
Facilita la inclusin de libreras externas.

Firmado de aplicaciones y generacin de APK para distribucin.


Ofuscacin del cdigo a travs de Google ProGuard.
Soporte para integrar las aplicaciones desarrolladas directamente con los servicios de
Google.
http://developer.android.com/tools/studio/index.html

35
Simulacin de Android
Android Studio Instalacin
1. Instala el JDK 7 de Java.
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-
1880260.html
2. Navega a la pgina: http://developer.android.com/sdk/index.html
3. Descarga la versin correspondiente a tu sistema operativo.
Si no aparece automticamente, encontrars una tabla bajando en la pgina.

36
Vdeo
Descarga de Android Studio

37
Simulacin de Android
Android Studio Instalacin
4. Acepta las condiciones de la licencia de software.
5. Ejecuta Android Studio.

6. Sigue las instrucciones para la instalacin del SDK para la ltima versin.

38
Simulacin de Android
Herramientas Android Studio

Estructura de
la aplicacin
Editor

Android Monitor

39
Simulacin de Android
Herramientas Android Studio

Estructura de
la aplicacin
Editor

Android Monitor

4040
Simulacin de Android
Santoku Linux Instalacin
Distribucin de Linux especializada en anlisis de seguridad en dispositivos
mviles.
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
Simulacin de Android
Santoku Linux Instalacin
4. Crear una nueva mquina virtual.

42
Simulacin de Android
Santoku Linux Instalacin
5. Crear una nueva mquina.
Tipo: Linux.
Versin: Ubuntu 64.
RAM: 2GB Mn.

43
Simulacin de Android
Santoku Linux Instalacin
6. Crear un disco duro virtual.
Se recomienda que el tamao del disco sea de 40GB.

44
Simulacin de Android
Santoku Linux Instalacin
7. Una vez creada, seleccionar la mquina y pinchar en:
Settings -> Storage -> Optical Drive -> Choose Virtual Optical Disk File.
Seleccionar la ISO descargada.

4
3

45
Vdeo
Creacin VM

46
Simulacin de Android
Santoku Linux Instalacin
8. Iniciar la mquina virtual e instalar el sistema operativo.
9. Durante el inicio de la mquina, seleccionar la opcin Install.
10. Seleccionar Erase disk and install Santoku.
11. Reiniciar una vez finalizada la instalacin.
12. Una vez reiniciada la instalacin, en la barra superior de la aplicacin
seleccionar:
Devices -> Insert Guest Additions CD.
Si el sistema pide la instalacin de las Guest Additions, aceptar.
Si no se inicia de forma automtica:
Navegar al directorio del CD.
Ejecutar (hace falta recordar el password de administrador).
sudo sh VBoxLinuxAdditions.run

47
Vdeo
Instalacin Guest Additions

48
Vdeo
Puesta en marcha

49
Simulacin de Android
Santoku Linux Instalacin
Para algunas de las tareas ser necesario que Santoku Linux tenga acceso
directo a la red fsica.
Para ello, debemos configurar Virtualbox con una interfaz del tipo brigded.
En la parte inferior izquierda de la ventana de la mquina virtual.

50
Vdeo
Cambio de configuracin de red

51
Simulacin de Android
Herramientas Santoku Linux
Santoku incluye multitud de
herramientas que sern de utilidad
para la realizacin de anlisis
dinmico y esttico.
En nuestro caso, utilizaremos las
siguientes
Apktool.
Androguard.
Wireshark.
Burp Proxy.

52
Simulacin de Android
Herramientas Apktool
Herramienta para el desempaquetado de aplicaciones de Android.
Permite obtener en una carpeta con todos los recursos de la aplicacin
incluyendo:
El manifest en formato legible.
El cdigo fuente en formato smali.
Las imgenes y dems recursos utilizados por la aplicacin.
Tambin permite volver a empaquetar los archivos en un archivo apk para su
ejecucin.
Los ficheros generados necesitan ser firmados con un certificado para poder ser
ejecutados en un dispositivo.
Santoku incluye la versin 1.5 de apktool.
Para poder desempaquetar aplicaciones recientes debemos actualizarlo.

53
Simulacin de Android
Herramientas Apktool Actualizacin
Descarga el fichero jar ms reciente de la web de apktool.
https://bitbucket.org/iBotPeaches/apktool/downloads
Cpialo a /usr/share/apktool y renmbralo a apktool.jar.
> sudo mv path_apktool/apktool_version.jar usr/share/apktool.jar

54
Simulacin de Android
Herramientas Androguard
Es un proyecto de cdigo abierto para el anlisis de aplicaciones de Android.
Es capaz de acceder a multitud de elementos de una aplicacin:
Cdigo: clases, mtodos, instrucciones, etc.
Manifest: permisos, actividades, servicios, etc.
Recursos: imgenes, ficheros de bases de datos.
Permite obtener representaciones del flujo de una aplicacin.
Smali (representacin legible del lenguaje ensamblador de Android).
Grafos de llamadas.
Es fcilmente extendible.
En Santoku, se puede abrir su consola a travs del terminal.
> androlyze -s

55
Simulacin de Android
Herramientas Wireshark
Es un programa para la captura e inspeccin de trfico de red.
En Santoku est instalado por defecto.
> wireshark

56
Simulacin 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 trfico sin cifrar pero tambin cifrado con SSL.
Mediante la generacin de un certificado SSL.
Permite la modificacin de peticiones o respuestas HTTP.
> burpsuite

57
Simulacin de Android
Herramientas Sqliteman
Aplicacin para la inspeccin y modificacin de ficheros sqlite.
Est disponible en Santoku.
> sqliteman

58
Simulacin de Android
Herramientas Qark
Qark es una herramienta desarrollada
por LinkedIn que realiza un anlisis
automtico de ficheros APK.
Muestra algunas de las posibles
vulnerabilidades que pueden afectar a
la aplicacin 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 pginas, se muestra
el proceso para su instalacin y
ejecucin.

59
Simulacin de Android
Herramientas Qark Instalacin
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 instalacin anterior
aceptamos.

60
Vdeo
Instalacin Qark

61
Simulacin de iOS
Simulacin de iOS
Introduccin
Es el sistema operativo de Apple para Distribucin de versiones
sus dispositivos iPhone, iPad y iPod
Touch. 21

Fue lanzado en 2007, permitiendo 8


nicamente la ejecucin de
aplicaciones a travs 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 Ms antiguos

63
Diciembre 2015
Simulacin 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
caractersticas de una aplicacin
durante su ejecucin.
Anlisis esttico (limitado en
dispositivos sin jailbreak).
Anlisis dinmico (limitado en
dispositivos sin jailbreak).
Anlisis forense (limitado en
dispositivos sin jailbreak).

64
Simulacin 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
anlisis esttico.
Herramientas de terceros para el
anlisis dinmico.
Aplicaciones iOS para el aprendizaje
sobre vulnerabilidades, programacin
segura y servicios de seguridad de
Android.
Herramientas para la extraccin de
informacin de un dispositivo iOS.

65
Simulacin de iOS
Kit de desarrollo oficial de Apple
El kit de desarrollo oficial de Apple es un conjunto de herramientas que permiten
el desarrollo, instalacin, ejecucin, depuracin y distribucin de aplicaciones
para el sistema operativo iOS.
El kit de desarrollo oficial de Apple permite la creacin de aplicaciones para iOS
y el Apple Watch.
El lenguaje de programacin 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:
Instalacin a travs de un programa de empresa.
Instalacin a travs del IDE oficial sin cuenta de desarrollador.
A partir de la ltima versin.

66
Simulacin 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 grfico para creacin y depuracin de aplicaciones.
XCode 7 (Diciembre 2015).
Disponible a travs 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 compilacin, depuracin y comunicacin con dispositivos.
Libreras del sistema para su uso por parte de aplicaciones de terceros.
Simulador para ejecutar y depurar aplicaciones.
Herramientas de gestin del propio SDK.

67
Simulacin 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 caractersticas:
Plantillas de cdigo para aadir funcionalidad comn a las aplicaciones.
Edicin grfica de interfaces de usuario.
Librera de piezas de cdigo recurrentes.
Firmado de aplicaciones .
Simulador de iOS y Apple Watch.

68
Simulacin de iOS
Herramientas XCode
a

Caractersticas
Estructura
del proyecto
de la
aplicacin

Barra de
ayuda

69
Simulacin de iOS
Herramientas Xcode Editor
a

Estructur
a de la
aplicacin

Barra de
ayuda

70
Simulacin de iOS
Herramientas Xcode Interface Builder
a

71
Simulacin de iOS
Herramientas Simulador
No es un emulador completo.
Incluye las libreras 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 fsico.

72
Simulacin de iOS
Herramientas Instruments
Analiza diferentes caractersticas de una aplicacin

73
Simulacin de iOS
Herramientas Hopper
Herramienta de desensamblado y modificacin 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 versin demo permite abrir ficheros binarios e investigar su
contenido durante 30 minutos.
Genera rboles de control de flujo de programas.
Es capaz de crear pseudocdigo de una aplicacin para facilitar la legibilidad del
cdigo.
Permite realizar bsquedas por etiquetas (nombre de clases, mtodos, etc.) y
strings.
La versin de pago permite depurar aplicaciones y modificar los ficheros
ejecutables para su re-empaquetado.

74
Simulacin de iOS
Herramientas Hopper
a

75
Simulacin de iOS
Herramientas jailbreak
Muchas de las tareas de anlisis 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
operacin requiere de la instalacin de utilidades de terceros que necesitan un
dispositivo con jailbreak.
A continuacin vamos a presentar las herramientas imprescindibles para la
realizacin de anlisis cuando se dispone de un dispositivo con jailbreak.
En este curso, vamos a describir los pasos necesarios para configurar el
dispositivo para la extraccin de binarios y su anlisis, pero no se cubren los
mtodos para realizar el jailbreak al dispositivo.

76
Simulacin de iOS
Herramientas jailbreak SSH
Debemos utilizar Cydia para la instalacin de todas las herramientas.

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


SpringBoard (entorno grfico).
77
Simulacin de iOS
Herramientas jailbreak SSH Configuracin
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
Simulacin de iOS
Herramientas jailbreak SSH Configuracin
Desde Santoku, o nuestro equipo si es un Linux o Mac.
La contrasea por defecto del dispositivo es alpine se recomienda modificarla en la
primera conexin.

Para modificar la contrasea basta con ejecutar el comando passwd.

79
Simulacin de iOS
Herramientas jailbreak BigBooss tools
Realizamos la misma operacin para instalar BigBoss Recommended tools.

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


SpringBoard (entorno grfico).
80
Simulacin de iOS
Herramientas jailbreak Clutch
Clutch es una herramienta para el descifrado de binarios en iOS.
Para descifrar el binario, ejecuta la aplicacin y realiza volcados de la memoria
de la zona de memoria de la propia aplicacin.
Su instalacin se realiza a travs de SSH.
Descargamos la ltima versin 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
Simulacin de iOS
Herramientas jailbreak iNalyzer
iNalyzer es una herramienta de AppSec Labs para el anlisis esttico y dinmico
de aplicaciones de iOS.
En esta unidad nos centraremos slo en el anlisis esttico.
Para instalar iNalyzer basta con aadir 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 ejecucin debemos acceder a travs del navegador
a: http://ip_iphone:5544

82
Simulacin de iOS
Herramientas jailbreak Snoop-it
Snoop-it es una herramienta de
NESO Security labs para el anlisis
automtico de aplicaciones de iOS.
Muestra algunas de las posibles
vulnerabilidades que pueden afectar a
la aplicacin a travs de un interfaz
web creado por la misma aplicacin.
Para instalar Snoop-it basta con
aadir el respositorio
http://repo.nesolabs.de a los
repositorios de Cydia, siguiendo las
mismas instrucciones que se han
seguido para instalar repositorios
anteriores.

83
Simulacin 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 imgenes
almacenadas en un dispositivo.
Puede utilizar el dispositivo como un disco
extrable.
Puede acceder al sistema de ficheros de
cada aplicacin dentro del Sandbox.
Y al sistema de ficheros completo de iOS.

84
Simulacin de iOS
Otras herramientas iFunBox
a

85
Otros entornos y herramientas
profesionales
Otros entornos
Introduccin
iOS y Android son las plataformas
ms importantes a nivel de cuota de
mercado.
Otras plataformas con menos cuota
en usuarios domsticos son muy
utilizadas en el mundo empresarial.
Windows Phone
Fcil integracin con otras soluciones
en el mundo empresarial que estn
muy extendidas.
BlackBerry
Primera compaa en desarrollar
telfonos inteligentes con conexin
permanente y tarifas competitivas para
empresas.

87
Windows Phone
Windows Phone
Introduccin
Sucesor de Windows Mobile.
Muy utilizado en PDAs a inicios del
2000.
Primera versin estable lanzada como
Windows Phone 7 en 2010.
En su ltima versin, 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 pequeos.
Incluye:
El simulador de Windows Phone.
Debugger.
Herramientas de anlisis esttico.
Disponible en versiones Professional y Enterprise

Herramientas especficas de Microsoft para testing.


Herramientas de integracin continuas y colaboracin de equipos.

91
Windows Phone
Visual Studio Community Instalacin
Accede a la web de Visual Studio (slo para Windows).
Haz scroll hasta la seccin de Visual Studio Community.
Ejecuta el archivo descargado para instalar Visual Studio.

92
Windows Phone
Emulador para Windows 10 Mobile
Aplicacin 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 acelermetro.
Tarjetas SD.
Localizaciones.
Redes inalmbricas.
Comunicaciones mediante NFC.

93
BlackBerry
BlackBerry
Introduccin
Marca de la compaa canadiense, Research in Motion (RIM), que fabrica
dispositivos con su propio sistema operativo.
Gan popularidad en el mundo empresarial debido a las opciones de
comunicacin que ofrecan sus terminales.
Sus principales clientes siguen siendo organizaciones en detrimento de usuarios
domsticos.
Actualmente tiene tres lneas de dispositivos con sistemas operativos diferentes:
BlackBerry OS.
BlackBerry Playbook.
BlackBerry 10.

95
BlackBerry
BlackBerry OS
Sistema operativo para dispositivos BlackBerry hasta 2012 (versin 7.1).
La primera versin,1.0, fue lanzada en 1997 para la BlackBerry 850 (un busca).
Permite desarrollar aplicaciones mediante dos tecnologas:
Javascript/CSS/HTML5:
Utiliza BlackBerry WebWorks para acceso a APIs nativas del dispositivo.
Es compatible con la utilizacin de Cordova para la portabilidad a otros sistemas como
Android e iOS.
Java:
Utiliza un SDK especfico, el BlackBerry Java SDK.
Desarrollo a travs de Eclipse mediante un plugin:
Incluye un simulador.
Incluye una API criptogrfica especialmente desarrollada por RIM:
Cifrado de ficheros.
Libreras para comunicaciones mediante TLS y SSL.

96
BlackBerry
BlackBerry Playbook
Sistema operativo especfico de la tableta BlackBerry Playbook (2011).
Permite el desarrollo de apps mediante 4 tecnologas:
Native SDK
Plataforma nativa del dispositivo en C/C++.
Incluye IDE, compilador y dems 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 mquina virtual de VMWare:


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

97
BlackBerry
BlackBerry 10
Sistema operativo para dispositivos BlackBerry lanzado en 2013.
Evolucin del sistema operativo de la compaa QNX (comprada en 2010).
Integracin 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 ejecucin 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 versin mxima Android 4.3.

98
BlackBerry
SDK Instalacin
1. Navega a la siguiente pgina y descarga la versin 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 instalacin del SDK:
Selecciona No Device y descargar Simulador.

99
BlackBerry
SDK Instalacin
5. Selecciona el nivel de API recomendado:
Ms adelante instalaremos otro simulador y nivel de API.

100
Test de evaluacin
Gracias por su atencin

102

S-ar putea să vă placă și