viernes, julio 12, 2019

Amazon Alexa Echo Dot v3: Un análisis de seguridad como proyecto de fin de grado

Desde hacía bastante tiempo que quería profundizar y analizar algún dispositivo que tuviera por casa y se conectara a Internet,, marcándome como objetivos saber exactamente qué hacía y sobretodo aprender algo nuevo, similar al trabajo que pudisteis leer el año pasado del análisis de FingBox. Cuando tuve que hacer mi Trabajo de Final de Grado planteé esta idea a mi tutor y me propuso analizar el altavoz inteligente de Amazon, el Echo Dot v3, y aunque al principio no lo tenía muy claro al final salieron cosas interesantes. En esta entrada veremos algunas de ellas.

Figura 1: Amazon Alexa Echo Dot v3: Un análisis de seguridad como proyecto de fin de grado

Después de buscar información acerca de las vulnerabilidades existentes vi que existían tres tipos en los que se podían clasificar:  1) hacking físico, 2) haciendo uso de las Skills (pequeñas aplicaciones creadas por individuales o empresas) y 3) por voz. Estas dos últimas se podían juntar para que el altavoz iniciara una Skill maliciosa, con nombre parecido a la legítima, y que una vez abierta grabara sin que el usuario se diera cuenta. Estas vulnerabilidades fueron detectadas para la versión 2 del dispositivo lo que significaba que ya estaban solventadas.

Organizando el análisis de Amazon Alexa Echo Dot v3

Una vez tuve una idea de lo que se podía llegar hacer dividí mi proyecto en tres partes: actividad, seguridad y privacidad.

Respecto a la actividad quería ver qué hacía el altavoz en cada momento. Haciendo uso de la herramienta Wireshark, que permite hacer gráficas de interacción con los distintos servidores, hice una captura de un poco más de un minuto preguntando por la hora y la fecha.

Figura 2: Captura del tráfico de red de un Amazon Alexa Echo Dot v.3

En la imagen el color más oscuro es toda la actividad TCP y los otros colores desglosan esta con cada servidor. Por ejemplo, vemos que el amarillo mostaza corresponde con las métricas. Después de hacer varias capturas vi que los primeros 12 segundos identifican la inicialización que hace el dispositivo cuando se conecta a la corriente mientras que los picos verdes son las ordenes por voz. Básicamente los distintos “endpoints” con los que entra en contacto son los siguientes:


Figura 3: Endpoints a los que se conecta el dispositivo

Empezando por “fireoscaptiveportal.com” siguiendo las agujas del reloj vemos una cronología aproximada de las interacciones que ocurren en la inicialización pero que luego estarán también presentes. Podemos ver que hay conexiones HTTP. Estas se deben a comprobaciones de conectividad con algún servicio o incluso a modo de seguridad y prevención. Por ejemplo, “fireoscaptiveportal.com”, dominio registrado por la empresa Mark Monitor, se dedica a la prevención de ataques.

Figura 4: Hacking de redes iPv4 & IPv6 3ª Edición

Haciendo uso de la herramienta BurpSuite - común en el hacking de redes IPv4 & IPv6 - y jugando un poco con los certificados del navegador y del móvil, puede llegar a inferir un poco algunos de los usos de estos servidores. La mayoría usados para métricas o eventos realizados por el usuario. Lógicamente el servidor “bob-dispatch-prod-eu.amazon.com”, el que provoca los picos verdes, se encargará de enviar el audio a procesar.

Figura 5: Captura de tráfico con Wireshark
En la imagen superior se muestra una gráfica de una captura con Wireshark de unas 29 horas, en intervalos de 1 segundo, sin hacer ninguna acción. Aparte de la inicialización al inicio, no hay mucha actividad relevante.

Figura 6: Libros de Python para Pentesters y Hacking con Python de 0xWord

Respecto a la seguridad del dispositivo, después de varios intentos fallidos, al final me decanté por analizar cómo se hacían las peticiones de la aplicación web. Y cómo no, vi las cookies de sesión. No sabía muy bien qué hacer con ellas hasta que finalmente diseñé una pequeña herramienta en Python, a modo de prueba de concepto, para ver cuánta información podría llegar a recolectar de un usuario teniendo su fichero de cookies. En la siguiente imagen se muestra las cookies usadas con sus respectivas fechas de caducidad.

Figura 7: Cookies recolectadas

Con esta herramienta, que finalmente llamé “Alexa Cookied”, no quería remplazar las acciones ya existentes en la aplicación web, sino que a través de el historial o de ciertas peticiones secundarias, detectadas durante el análisis, extraer información adicional.

Figura 8: Alexa Cookied en GitHub

Como se puede ver en la imagen hay varias opciones. Podemos extraer información básica como puede ser el correo, el nombre, el tipo y número de serie del dispositivo e incluso identificar cuentas que se hayan añadido como familiares a través del programa de “hosehold” de Amazon (se puede llegar a agregar una mascota).

Figura 9: Alexa cookied funcionando

Además de todo esto la herramienta puede mostrar la interacción que hace el usuario con el dispositivo respecto las horas y los días de la semana usando dos gráficas. Esto permite llegar a conocer aproximadamente los horarios del usuario.

Figura 10: Analizando los horarios del usuario

Otra función interesante de la herramienta es la de añadir un recordatorio. A este se le añade al principio la palabra de activación y de esta forma se puede crear recordatorios con ordenes “ocultas” que cuando suenan, el dispositivo se oye a sí mismo y ejecuta la acción. En las últimas pruebas que he hecho parece que ya no capta la orden, seguramente lo deban haber actualizado. Pero antes, quién sabe, quizá se podría haber abierto las luces, la puerta... En el vídeo de ejemplo simplemente pregunté por la hora.


Figura 11: Demo de cómo inyectar recordatorios

A modo de anécdota, mientras analizaba el historial me di cuenta que se había intentado comprar un libro. Pregunté por casa si había sido alguien y me dijeron que no. Decidí descargarme el audio a ver si reconocía la voz y para mi sorpresa procedía de la televisión donde Carlos Baute recomendaba comprar su libro. Escenarios parecidos ocurrieron hace tiempo con algún anuncio en EEUU. Amazon explica cómo previenen casos parecidos, aunque solo con anuncios, u otros audios, que hayan detectado.

Figura 12: Explicación en los blogs de Amazon

Sobre la privacidad, con la GDPR pedí la información generada por Alexa y pude comprobar que tenían las conversaciones hechas con Alexa Messages (servicio de chat entre usuarios que dispongan un dispositivo Alexa) por tanto no hay un sistema de cifrado de extremo a extremo. Más tarde leí un artículo donde decían que desarrolladores escuchaban los órdenes de voz para poder mejorar el servicio, pero, una cosa es escuchar pedir la hora y otra conversaciones.

Incluso algunos desarrolladores comentaban que habían llegado a escuchar violencias domésticas. Dejando de lado que además no se puede borrar el historial de Alexa Messages las últimas declaraciones de Amazon también indican que, aunque un usuario quiera eliminar todas sus interacciones, hay cierta información que no pueden llegar a eliminar.

Figura 13: Vinculación de cuenta de Microsoft con Alexa

Destacar también que cuando se vincula la cuenta de Microsoft para el calendario se piden muchos permisos más y no solo eso, sino que cuando se desvincula no lo hace del todo, hay que ir a la configuración de aplicaciones de Microsoft y desvincularlo definitivamente. Esto no paso en el caso de Google.

Figura 14: Permisos que obtendrá Alexa con el calendario

En definitiva, como siempre hay que tener cuidado con las cosas que se instalan en casa, sobretodo si hacen uso de un micrófono, y exigir cierta seguridad y privacidad a la empresa correspondiente. También ser conscientes de la información que generamos en la red y tener la costumbre de cerrar periódicamente las sesiones para prevenir ataques como el de la prueba de concepto.

Figura 15: Memoria del proyecto disponible en PDF

Espero que os haya parecido interesante y si os pica un poco más de curiosidad de cómo ha sido el proyecto, aquí tenéis la memoria completa del proyecto.

¡Hasta la próxima!

Autor: Xavier Marrugat Plaza

3 comentarios:

  1. Hola,soy un adoptado digital tengo 62 años,pero este mundo me fascina y procuro leer lo maximo, me gusta que se escriban este tipo de articulos, yo lasgraficas no las entiendo, pero cuando se exponen cosas claras, como la utilizacion del calendario y sus permisos son de agradecer y por lo tanto darte las gracias y animarte a que sigas escribiendo articulos interesantes para que todos nos enteremos y podamos participar dentro de nuestra posibilidades.
    Saludos.

    ResponderEliminar
  2. Te morirás antes de entenderlo

    ResponderEliminar
  3. Hola, queria comentar respecto a el articulo de Alexa, en el apartado que habla de autoinvocar algun comando a si mismo P.ej. a traves de un recordatorio, es cierto que no funciona con un mismo dispositivo", PERO..? si tienes 2 dispositivos, uno de nombre Alexa ,y otro con nombre Echo, uno invoca a el otro y en este caso si que funciona.
    Gracias fdo Javier p.p.

    ResponderEliminar