viernes, 11 de noviembre de 2016

Crear un laboratorio para analizar malware en apps de Android/iOS

0. Prólogo 

Existen multitud de herramientas automáticas para el análisis de ficheros binarios de forma estática que se encargan de automatizar muchas de las tareas de análisis. Al igual que en otros entornos, los resultados por estas herramientas no tienen porque ser correctos al 100%, pueden haber:
- Falsos negativos: Fallos no detectados.
  + La herramienta no está preparada para ellos.
  + La herramienta puede detectarlos, pero no lo hace correctamente.
- Falsos positivos: Fallos que la herramienta marca como existentes pero que realmente no existen.

¡No podemos limitar el análisis de seguridad a la ejecución de estas herramientas. Debemos verificar que cada problema detectado existe realmente.!

1. Introducción

Mobile Security Framework (MobSF) es una aplicación todo-en-uno de código abierto para móviles (Android / iOS) capaz de realizar el análisis estático y dinámico automatizado.

Puede ser utilizado para el análisis de seguridad eficaz y rápida de Android y iOS Aplicaciones y es compatible con los binarios (APK y IPA) y el código fuente comprimido. MobSF también puede realizar la Web API Pruebas de seguridad con su Fuzzer API que puede hacer de recopilación de información, análisis de cabeceras de seguridad, identificar vulnerabilidades específicas de la API móvil como la XXE, FRSS, de traspaso de rutas, IDOR, y otras cuestiones lógicas relacionadas con la Sesión y la API de limitación de velocidad.

Mobile Security Framework realiza dos tipos de análisis:

    El analizador estático es capaz de realizar: la revisión de código automático, detección de permisos y configuraciones inseguras, detectar código inseguro SSL, derivación SSL, cifrado débil, códigos ofuscados, permisos incorrectos, secretos codificados, el uso indebido de APIs peligrosas, fugas de  información sensible y el almacenamiento de archivos inseguros.

    El analizador dinámico ejecuta la aplicación en una máquina virtual o en un dispositivo configurado y detecta los problemas en tiempo de ejecución. Se realiza un análisis más detallado en los paquetes de red capturados descifrando: el tráfico HTTPS, los informes de registros, informes de error, la información de depuración y seguimiento de la pila. Sobre los activos de aplicaciones como: archivos de configuración, las preferencias y bases de datos.

Mobile Security Framework es altamente escalable, permite agregar  reglas personalizadas con facilidad. Permite generar al final del test de penetración informes de una forma rápida y concisa.

2. Instalación

Antes de nada, recomiendo mirar el proyecto en github.
En esta entrada vamos a instalar MobSF con docker (Solo análisis estático), os dejo el link del dockerfile. Si queremos instalarlo sin docker os dejo la documentación oficial que explica paso a paso el proceso.

2.1 Requisitos

2.1.1 Instalar Docker

$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
$ echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" > sudo tee -a /etc/apt/sources.list.d/docker.list
$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo usermod -aG docker $USER #Deberás cerrar sesión para que se apliquen los cambios
$ docker --version
Docker version 1.12.1, build 23cf638

2.1.2 Descargar Imagen MobSF

$ docker pull opensecurity/mobsf

3.Uso

 Para iniciarlo simplemente usaremos el siguiente comando:
$ docker run -i -t -p 8000:8000 opensecurity/mobsf:latest

Si queremos hacer un análisis dinámico podremos ver como se configura en la documentación oficial del proyecto.
Ahora nos vamos al navegador web ponemos la IP:PUERTO y ya estaremos preparados para analizar APKS.

Podremos llevarnos la imagen de docker exportandola (docker save opensecurity/mobsf > mobsf.tar) e importandola (docker load -i mobsf.tar) en otra máquina con docker.

4. Vídeo DEMO: 

 

El análisis estático puede ofrecer información sobre las conexiones y URL a las que se conecta una aplicación, pero no se pueden extraer conclusiones definitivas hasta que no se ejecuta la misma, es necesario complementar con un análisis dinámico de la aplicación.

Previous Post
Next Post

post written by:

0 comentarios: