17 enero 2014

Análisis de AutomateIT (1 de 3)

Inauguro mi participación en este espacio de contribuciones con un análisis de la aplicación para Android AutomateIt.

En resumen es una aplicación interesante que permite definir una serie de reglas y la acción que desencadenarán, por ejemplo: si alcanzo un nivel bajo de batería desactivo la tarifa de datos. Tenéis más información en su enlace de Google Play.

Nada más instalar la aplicación viene con algunas reglas y acciones incluidas. Además cuenta con un sistema de puntos que permite desbloquear nuevas reglas/acciones, de modo que cuando se acaban los puntos la aplicación ofrece pagos in-app para comprar más puntos y con estos desbloquear más reglas/acciones.

Esta parte del análisis de seguridad está enfocado hacia la funcionalidad de desbloquear características según los puntos que tenemos.

Análisis

Veamos en detalle el tráfico generado por la aplicación cuando el usuario interactúa con ella:

1. Al iniciarse la aplicación se ejecuta la siguiente petición HTTP para recuperar los datos del usuario:


2. La siguiente petición realizada de manera automática por la aplicación recupera los precios de las características que se pueden comprar dentro de la aplicación:


3. Finalmente, cuando se adquiere una nueva característica desde Más > Desbloquear características, se realiza la siguiente petición:


4. Un análisis del hash de desbloqueo utilizando la herramienta "hash-identifier" sugiere que se trata del algoritmo SHA1:







5. Realizando algunas pruebas sencillas combinando los campos que aparecen en las peticiones se confirma:
- El hash es SHA1
- No se hace uso de SALT
- El hash resultante se compone concatenando el correo electrónico y la característica que se quiere desbloquear, todo seguido y sin caracteres intermedios:


Conclusiones

Como hemos visto en el análisis, hemos sido capaces de identificar:
  • Los servicios Web que son invocados y los parámetros que intervienen para validar si tenemos puntos suficientes para desbloquear una característica
  • La composición del hash que validará la compra de la característica
A la vista de estos resultados un usuario mal intencionado tendría el conocimiento suficiente como para modificar las respuestas del servidor a través de un proxy y habilitar cualquiera de las características, independientemente de si tiene suficientes puntos..., o ir un paso más allá y construir una réplica de los servicios Web, que redirigiendo el tráfico a estos, desbloqueen cualquiera de las características que se les solicite.

Pero esto solo es el principio. ¡Continuará!

Artículo cortesía de Miguel Ángel Garcia.

2 comments :

Sergio dijo...

Interesante análisis explicado de manera breve y precisa, enhorabuena.

luis miguel dijo...

Muy bueno. Felicidades.