Mostrando entradas con la etiqueta MDM. Mostrar todas las entradas
Mostrando entradas con la etiqueta MDM. Mostrar todas las entradas

sábado, enero 11, 2020

mASAPP CI: Cómo Integrar el análisis de vulnerabilidades en el ciclo de desarrollo seguro en las apps móviles que creas

Si has seguido este blog durante los últimos años, o has estado en el mundo de la ciberseguridad siguiendo las noticias que más nos han alertado en estos tiempos, sabrás que las apps en los markets oficiales de Google Play o App Store no son siempre trigo limpio, y los equipos de seguridad tanto de Apple, como de Google, como de la comunidad de ciberseguridad formada por researches y empresas como ElevenPaths han estado aportando conocimiento constantemente para luchar contra estas amenazas.

Figura 1: mASAPP CI: Cómo Integrar el análisis de vulnerabilidades
en el ciclo de desarrollo seguro en las apps móviles que creas

Si extendemos el número de markets, y llevamos a otros markets no oficiales de Google y Apple donde también se publican apps que son consumidas por personas y, como no, los propios empleados de empresas que llevan sus terminales personales en iniciativas BYOD.

- API Keys: Seguir el rastro a los "adwares" de Android con Tacyt
- Apps en Apps: Ficheros APK y EXE en apps de Android
- Dorking & Pentesting con Tacyt: Dominios, IPs y Puertos

Para analizar esto, hace tiempo comenzamos a construir nuestra plataforma Tacyt de análisis de apps en markets oficiales y no oficiales, y podéis leer muchos artículos en este blog sobre ella - os dejo algunos enlazados -, además de tener un resumen de lo que se puede hacer en la charla que hizo Chema Alonso en Argentina hace ya muchos años.


Figura 2: Chema Alonso hablando de Tacyt en Argentina

Mucho del conocimiento en análisis de malware, lo plasmó uno de los ingenieros e investigadores que estuvo trabajando en la construcción de Tacyt, y que publicó en este libro de 0xWord de "Malware en Android: Discovering, Reversing & Forensics", donde habla del ciclo completo de ciberinteligencia en el mundo de apps maliciosas para el sistema operativo de Google.

Figura 3: Malware en Android: Discovering, Reversing & Forensics

Mucho ha avanzado la plataforma Tacyt - que tuvo de Codename el famoso Path 5 - en estos años, y sobre ella construimos mASAPP - también conocida como Codename Path 6 -, pero las amenazas siguen estando en los markets. Realizando una serie de consultas en nuestra herramienta de ciberinteligencia, Tacyt, podemos ver lo siguiente.

Figura 4: Buscando apps añadidas en un día concreto con más de 2 vulnerabilidades "High"

En la imagen anterior, se puede ver que, en un día concreto, fueron añadidas casi 500 aplicaciones con más de dos vulnerabilidades de nivel de criticidad alta a uno de los markets de apps más utilizados.

Figura 5: Consulta para ver cuántas apps tienen 1 o más vulnerabilidades críticas
con más de 1 Millón de descargas

Esta consulta, que recoge que existen más de 23.000 apps descargadas más de 1 millón de veces cada una con más de una vulnerabilidad con Criticidad High, demuestra que incluso los grandes pueden cometer errores lanzando apps inseguras a los entornos productivos, como hemos visto en el pasado con muchas empresas de renombre.

El mensaje que queremos transmitir es claro, la seguridad debe ser una preocupación en el desarrollo de apps tanto en las más grandes empresas como en desarrolladores independientes, pero también en la aprobación de apps que pueden ser instaladas en el parque de dispositivos móviles de tu empresa. ¿Cómo garantizas que una app que se va a instalar un empleado tuyo es segura o no? Lo suyo es que pudieras consultar la seguridad de esa app cada vez que se vaya a instalar.

Figura 6: Libro de SecDevOps de 0xWord

Pero... ¿cómo garantizas que tus propias apps no están inyectado problemas en tus clientes o empleados. Es decir, si yo hago apps, ¿cómo sé que no estoy haciendo algo mal? Evidentemente los desarrolladores están formados en seguridad, pero no pueden saber todo, por eso existen los equipos de seguridad, y los procesos de SecDevOps que ayudan a controlar y auditar la seguridad en todo momento.

En los dos casos, en el caso de querer validar que una app es segura para instalarse en el parque de nuestros dispositivos móviles integrando las políticas de seguridad dentro del SMDM de la compañía, como en el ciclo de desarrollo seguro de apps, el contar con Tacyt como plataforma de información o análisis es una buena ayuda. 

Figura 7: mASAPP Online

Y ¿cómo integro el conocimiento y el motor de análisis de seguridad de apps que tiene Tacyt en el ciclo de desarrollo continuo de mi empresas. Pues todo, tiene solución, y si esta es fácil y se puede automatizar, ¡mucho mejor! Para ello creamos tiempo atrás mASAPP  y su versión mASAPP Online - el famosos Codename Path 6 - que son productos de ElevenPaths que se encargan de realizar análisis de vulnerabilidades y comportamientos de las aplicaciones móviles y es una herramienta de trabajo para los administradores de seguridad que pueden:
a) Monitorizar que las apps que desarrollamos no tienen nuevas vulnerabilidades descubiertas y forzar una actualización al equipo de desarrollo, usando mASAPP Online.
b) Analizar la seguridad de las apps que aprueba el SMDM para decidir qué se puede instalar y qué no se puede en los terminales móviles de la empresa, y hacerlo de forma continua que las apps pueden volverse maliciosas, usando mASAPP.
Estas potentes herramientas, nos ofrecerán un exhaustivo análisis de la seguridad de las apps que desarrollamos e instalamos y permiten su utilización vía consola web, que puedes ver en este vídeo, pero también puede ser utilizado mediante API remota, lo que permite infinitas posibilidades de integración.


Figura 8: mASAPP de ElevenPaths

Y ahora vamos a ver cómo podemos integrar mASAPP Online en el ciclo de desarrollo de las apps de nuestra empresa para que sea un simple "check" más a la hora del ciclo SecDevOps de nuestro proceso de creación de tecnología. Y usaremos mSAPP CI.

mASAPP CI

mASAPP CI es una herramienta de código abierto, cuyo código se puede consultar en GitHub y que se puede descargar desde PyPI, surgida con el objetivo de incorporar la seguridad al ciclo de desarrollo de aplicaciones móviles de manera automatizada. mASAPP CI es la combinación de dos utilidades:
masappcli: Comando hecho en Python que se podrá instalar con tan solo la ejecución de la siguiente sentencia en un entorno con el sistema de gestión de paquetes PIP correctamente configurado: pip install masappcli. 
Esta herramienta utiliza el API de mASAPP para el análisis de las aplicaciones y las compara en base a unos estándares que el usuario haya fijado. En caso de que estos estándares se superen en la aplicación analizada, masappcli imprimirá un error. El desarrollador puede fijar dos tipos de estándares:
◦ Máximo nivel de riesgo para su app, que será un valor numérico decimal entre 0 y 10. 
◦ Número máximo de vulnerabilidades y comportamientos desglosados por nivel de riesgo.
• masappstage: Plantilla pensada para su utilización como un stage dentro de un pipeline de Jenkins que controlará masappcli para analizar la aplicación generada por el usuario. Nota: Se admiten colaboraciones para ampliar la cobertura de masappstage a otras herramientas de integración continua :) .
Cómo implantar mASAPP CI

Paso 1: Obtén tus credenciales del API de mASAPP Online. Si no tienes una cuenta todavía, podrás registrarte en la plataforma y mediante un pago seguro vía PayPal obtendrás acceso al análisis de aplicaciones de mASAPP Online. Una vez completado tu registro y pago en mASAPP Online, en la sección de “Clientes API” encontrarás el identificador del cliente (API_KEY) y el secreto del mismo (API_SECRET).


Figura 9: Registro y funcionamiento de mASAPP Online

Paso 2: Crear o seleccionar un pipeline en nuestra instancia de Jenkins donde queremos que el análisis se realice.

Paso 3: Configurar las variables de Jenkins que requiere masappstage:
mASAPP_CI: Esta variable de tipo “Elección”, tendrá cuatro posibles valores. Cada una de las distintas opciones suponen un tipo de ejecución de mASAPP CI:
o Ejecución estándar y ejecución estándar detallada: La ejecución estándar recibirá como entrada un JSON que contendrá el número máximo de vulnerabilidades y comportamientos desglosados por nivel de riesgo aceptados para la aplicación analizada. En el caso en que estas expectativas no se cumplan, el script devolverá un error. La diferencia entre la ejecución normal y la detallada reside en el nivel de detalle de la salida de la ejecución del script. 
Figura 10: Configuración de mASAPP CI en Jenkins
o Ejecución por nivel de riesgo y ejecución por nivel de riesgo detallada: Se introducirá un número decimal de 0 a 10 que representará el nivel máximo de riesgo aceptado para la aplicación analizada. En caso de que el nivel de riesgo que mASAPP estime para la app supere el que acabamos de definir, obtendremos un error.
MASAPP_KEY y MASAPP_SECRET: Las credenciales del API de mASAPP se almacenarán en estas variables que recomendamos almacenar de forma segura mediante el tipo de variable “Secret text” que nos ofrece Jenkins.
Figura 11: Configuración de KEY y SECRET
MAXIMUM: El valor de esta variable dependerá del tipo de ejecución que utilicemos.
o En el caso de la ejecución estándar y la ejecución estándar detallada, esta variable debe ser el JSON mencionado anteriormente. Un ejemplo de este JSON sería el añadido en la siguiente imagen: 
Figura 12: Configuración de variable MAXIMUM
o En el caso de que la ejecución sea por nivel de riesgo, bastará con que el valor de esta variable sea un número decimal entre 0 y 10.
Figura 13: Límite establecido a 5.9
Tras la configuración de las variables habremos configurado un job que tendrá la siguiente pinta en su vista de ejecución:
Figura 14: Job en Jenkins creado

Paso 4: Copia el contenido de masappstage en tu pipeline en la sección de definición de la configuración de tu pipeline tal y como se puede apreciar en la siguiente captura:

Figura 15: Configuración del pipeline

Paso 5: ¡Casi todo listo! Tan solo tendrás que añadir la ruta en la que se encontrará tu aplicación dentro del nodo de Jenkins en el que estás trabajando en el script que copiaste en el Paso 4. Esto lo realizarás sustituyendo “[APPLICATION_PATH]” por el valor de la ruta de la app que quieres analizar.

Paso 6: Para concluir, realiza los arreglos y retoques particulares que pueda necesitar tu nodo, como por ejemplo la instalación de Python o la implementación de notificaciones con los resultados de la ejecución.

Funcionamiento de Jenkins integrado con mASSAP Online usando mASAPP CI

En la imagen puedes ver una notificación de correo electrónico procedente de un job de Jenkins que hemos configurado siguiendo los seis pasos anteriores. En esta ejecución hemos seleccionado la ejecución estándar (no detallada) de mASAPP CI.

Figura 16: Aviso de vulnerabilidades descubiertas.

Aplicar Defensa en Profundidad dentro de los procesos de Fortificación consiste en poner todas las medidas de seguridad que sea posible en todas las fases del ciclo de vida de un sistema. Automatizar las pruebas y descubrir los problemas lo antes posible es una obligación de cualquier arquitecto de software y CISO de una compañía.

Autor: Álvaro López-Gil, Quality & Security Assurance en ElevenPaths & CDCO

jueves, julio 27, 2017

mASSAP: Controla en tiempo real la seguridad de las apps móviles

Hace ya tiempo que os hablé de Path6, el servicio que habíamos diseñado en ElevenPaths para controlar en tiempo real la seguridad de las apps móviles publicadas en los markets de iOS y Android. La idea es poder saber en tiempo real cuáles son las vulnerabilidades que tienen tanto las apps de tu empresa como las apps que tienes aprobadas en las listas blancas de los MDM para poder actuar en consecuencia.

Figura 1: mASSAP: Controla en tiempo real la seguridad de las apps móviles

El proyecto se construyó sobre la base de Tacyt [Codename Path5] y recibió el Codename Path6, con el que lo presentamos en el pasado Security Innovation Day 2016 en Madrid, con unos casos de uso muy claros, y aún si tener asignado su nombre.


Figura 2: Presentación de Path6 en el Security Innovation Day 2016

Con el paso del tiempo, el producto se hizo mayor y paso de la fase de alpha, a beta, y de beta a versión final con el nombre de "mASAPP" y pudimos verlo en acción en el Security Day 2017, donde nuestro compañero Víctor Mundilla lo presentó.


Figura 3: ¿Qué fue de Path6? Hola mASAPP

Hoy en día el producto ya cuenta con muchos clientes, y lo contamos tal y como se ve en el siguiente vídeo promocional de mASAP.


Figura 4: Vídeo promocional de mASSAP

Pero queríamos dar un paso más y que los técnicos pudieran entender los detalles del mismo, así que hemos hecho una ElevenPaths Talk especial que acaba de ser publicada, y que os dejo por aquí para que podáis ver en detalle su funcionamiento y sus últimas novedades.


Figura 5: ElevenPaths Talk sobre "mASAPP"

Si quieres conocer más de este producto puedes visitar la página de mASAPP en la web de ElevenPaths y pedir una prueba del mismo a través de nuestro formulario de contacto.

Saludos Malignos!

domingo, marzo 01, 2015

Android: Apps maliciosas en Google Play que te dan el Adware del día

Este viernes, desde el blog de Eleven Paths os avisamos de una nueva vuelta de tuerca de un viejo negocio, el de los descargadores de aplicaciones en el mundo móvil. No es algo inventado ayer, ni en el mercado de los dispositivos móviles, ya que los negocios de Pay Per Install se han utilizado tanto en aplicaciones maliciosas en el mundo del Fraude Online como en negocios basados en Try&Buy que vimos con las famosas Trials o el mercado del ShareWare. En el mundo de las apps para móviles, donde tan difícil es destacar, muchas empresas legítimas pagan por la instalación y distribución a empresas de publicidad y marketing, que alguna vez usan técnicas BlackASO o modelos como este de descargadores.

Figura 1: Apps maliciosas en Google Play que te dan el adware del día

Esta semana en el mundo de Android hemos podido descubrir, gracias nuestra plataforma de investigación Path 5, una nueva familia de apps maliciosas que están haciendo negocio con la instalación de apps en diferido - por supuesto adware agresivo entre ellas - sin que el usuario que ha sido infectado sepa cómo está pasando esto ni cuál es el origen del problema, ya que la llegada de la app maliciosa se encuentra en el pasado, por lo menos un día atrás en el pasado.

El modelo de instalación de Apps paso a paso

Para que os hagáis una idea del proceso, lo que sucede es que un usuario llega por algún medio a una de estas apps maliciosas publicadas en Google Play que van a hacer de DOWNLOADER de apps. Por supuesto esta app se enmascara con cualquier otra función, como puede ser un modificador de sonidos, una control remoto de televisión, una aplicación de trucos para cualquier cosa, o similares.

Figura 2: App DOWNLOADER que hace de modificador de voces

Una vez que la app ha sido descargada realiza alguna función, para conseguir que el usuario no la desinstale en el momento. Al mismo tiempo se suscribe con un Reciver de Android con el evento USER-PRESENT - en el libro de Desarrollo Android Seguro se explica en detalle el funcionamiento de los Recivers porque son muy utilizados por troyanos y RATs -. Este evento se genera cuando el usuario realiza una acción que despierta el sistema, como el desbloqueo del terminal.

Figura 3: Código que se ejecuta cuando se produce el evento de USER_PRESENT

Cuando se produce el evento, este es capturado por el Receiver para que la app decida si le instala o no una nueva app a este usuario. Lo que hace para decidir si la instala o no es, primero esperar que haya pasado un día completo para que la víctima no asocie la descarga de la nueva app con la instalación de la app DOWNLOADER, y después lo hace 1 de cada 3 tres veces para que no ser demasiado agresivo.

Figura 4: Esquema de funcionamiento de la distribución de apps por estos downloaders

La app a instalar se descargará desde un servidor controlado por el desarrollador de la app. Puedes ver las apps que está sirviendo ahora desde este enlace que puedes ver en el código, por si quieres analizar lo que le mete al usuario con el descargador.

Figura 5: Ruta de descarga de la app nueva

Por supuesto se necesita que el sistema operativo haya permitido la instalación de apps desde otros markets, algo muy común en algunos países. Una vez que baja la app, se pide consentimiento al usuario, que verá como, una de cada tres veces, se le solicita la confirmación de la instalación de la app, hasta que este consienta en instalarla.

Figura 6: Parece una actualización pero es la instalación de una nueva app que hará negocios en tu Android

Las apps DOWNLOADER que están haciendo esto

La lista de apps que pueden estar usando esta técnica es de más de 20, ya que son todas las que han sido localizadas con misma similitudes con Path 5. Los nombres de las apps están disponibles en el blog de Eleven Paths y muchas están disponibles en Google Play, como son las de estos dos desarrolladores LOL APPS y TV Gadgets que en realidad deben ser el mismo.

Figura 7: Dos cuentas del desarrollador utilizadas en la publicación de downloaders en Google Play

Si tienes un MDM en tu empresa, ya sabes que tienes que bloquearlas y si eres un usuario ten mucho cuidado con lo que te bajas, que puede estar haciendo cosas similares. Si se te pide la instalación de apps sin saber cómo ni por qué, ten en cuenta que puede ser por algo como esto.

Saludos Malignos!

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares