OK Google ¿Me estás espiando?

-OK Google, dime cual es el próximo Ave a Madrid”. Aquí estoy, en la estación de tren de Madrid-Atocha, tomando un café con leche mientras espero al tren que me llevará a casa después de una intensa semana de formación, ha sido una semana de Análisis Forense de telefonía móvil con el curso FOR-585 de SANS: “Smartphone Forensics in-depth”.

 


Fig. SANS 585 Challenge coin.

 

Como suele ocurrir en estos cursos, la carga lectiva es muy importante, pero no menos importante que las pausas para café, pausas que te permiten intercambiar opiniones, puntos de vista e ideas con otros compañeros de profesión, tanto de empresas privadas como de otras organizaciones. En uno de esos cafés, fue cuando surgió este artículo, un compañero del curso nos mostró la noticia sobre los dispositivos Alexa y de como supuestamente “Los empleados de Amazon escuchan todo lo que le decimos a Alexa y además saben dónde vivimos”, bueno, ese era el titular. Alguien que sepa un poco como funciona esto del reconocimiento de voz, ya se imaginará por “dónde irán los tiros”. No seré yo quien ponga la mano en el fuego por ninguna compañía de este tipo, pero tampoco es cuestión de vender una imagen de espionaje, desde mi punto de vista, irreal.

 


Fig. Momentos de relax.

 

¿Y cual es la realidad?, en estos tiempos vivimos en una realidad paralela, dos afirmaciones distintas pueden ser ciertas y falsas al mismo tiempo, todo depende del enfoque que le demos en la exposición. La noticia de Alexa no iba a ser menos, tampoco voy a escribir un artículo explicando lo que hace o deje de hacer esta compañía con la información que tenga que gestionar, pero la cosa es mas o menos así: básicamente los sistema de reconocmiento de voz como: Alexa, Google Home, Siri, etc… Necesitan depurar sus fallos en el reconocimiento de voz, es decir, cuando le decimos una frase al dispositivo y este no es capaz de interpretarla, ese audio se envía a un equipo concreto de personas que deben interpretarlo (mas allá de transcribir literalmente lo que el usuario dijo, tendrán que comprender lo que el usuario quiso decir) y enseñarle a la aplicación como hacerlo, así, la próxima vez que algún usuario vuelva realizar la misma petición, esta se gestionará correctamente. De este modo la aplicación sabrá interpretar lo que le están diciendo, lo que viene a ser una depuración de código de toda la vida. – ¿Y que tiene que ver Alexa con este artículo?, en realidad nada, pero así fue como surgió este articulo sobre Google Home y así os lo cuento.

 

Fig. Google Home Mini.

 

Hace ya unos meses que me compré un Google Home modelo Mini. En realidad mi intención, como es habitual, no era hacer un uso real del dispositivo, lo compré para realizar un análisis forense sobre el mismo. Estaba, estoy y estaré convencido, que este tipos de dispositivos domésticos del tipo: Internet of Things serán el futuro del análisis forense informático. Lo mismo que nos pasó con la telefonía móvil hace 10-15 años, nos pasará con el IoT, por eso, cuanto mas podamos aprender y entender como funcionan estos dispositivos a nivel forense y mas rápido seamos capaces de hacerlo, será lo que llevemos de ventaja cuando tengamos que realizar análisis exhaustivos y masivos de estos dispositivos. Ese día llegará.

Para confeccionar este artículo me basaré en el estudio y análisis que he realizado sobre un dispositivo Google Home modelo Mini W52/W55, el cual estuvo vinculado a una cuenta de Google durante los últimos cuatro meses, cuenta que ha sido creada ex profeso para este análisis.

 


Fig. Desmontaje del dispositivo con espátulas y calor.

 

Lo normal en estos casos, en dispositivos que no sabemos como funcionan a bajo nivel, es desmontarlos y tratar de determinar la arquitectura de los chips y memorias que llevan, de este modo, nos podremos hacer una idea de como “atacar” a la información que este pueda contener.

Como no podía ser de otro modo, estos dispositivos no están pensados para ser desmontados, no disponen de tornillos sobre los cuales podremos actuar (al menos, visibles). Si le damos la vuelta al dispositivo, veremos que toda su base está recubierta por una goma de color anaranjada. No nos va a quedar mas remedio que retirar esa goma para poder acceder a los tornillos que hay debajo. El problema es que está pegada completamente con pegamento, la única forma de retirarla sin parecernos a una zarigüeya rascando trocitos de goma, es mediante el uso de una moderna técnica forense: “El baño maría”. Pues si, es exactamente lo que estáis pensado, tomamos una olla de diámetro superior al Google Home, le echamos agua y la ponemos al fuego, luego cogemos otra olla de diámetro inferior a la anterior pero superior al Google Home y la metemos dentro de la primera, dentro de esta última introducimos nuestro dispositivo Google Home (explicación para técnicos). Para el resto de mortales basta con decir que metemos el Google Home dentro de una olla y esta dentro de otra, le echamos agua y la ponemos al fuego. De esta forma el calor se repartirá de forma uniforme y suave permitiendo retirar la goma con espátulas sin dañarla.

 


Fig. Natillas al baño María.

 

Esta es la teoría, el problema es cuando vas al laboratorio forense, es decir, a la cocina de tu casa y te das cuenta que todas tus ollas tienen asa, lo que significa que no podrás introducir una dentro de otra. ¿Y ahora qué?, pues pasamos al Plan B:

 


Fig. Aplicación de calor para fundir el pegamento.

 

El plan B no es otro, que coger una plancha de la ropa, ponerla boca arriba y colocar el dispositivo sobre la parte caliente de la plancha y esperar a que el pegamento se ablande por el calor. OJO! Esta plancha no deberá ser la que utilicéis a diario para planchar vuestra ropa, es muy probable que alguna gota de pegamento se pueda fundir y ensuciar la superficie de la plancha, lo que significará que la próxima vez que vayas a planchar tu camisa blanca, esta ya deje de ser tu camisa blanca. En mi caso utilicé una plancha vieja que tengo para cantear la tablas de melamina que utilizo en mis «ñapas».

Una vez “estripado” el dispositivo, podremos comprobar que su placa base es similar a la de una smartphone: Procesador ARM Dual Core; Antena WiFi y Bluetooth, Memoria SDRAM 4GB DDR3 y Memoria interna NAND FLASH de 256Mb. Salta a la vista que con 256Mb de “disco duro” poca información va a guardar este dispositivo, está claro que la clave estará en la nube, o lo que es lo mismo: Google Takeout.

 


Fig. Despiece Google Home Mini.

 

Pero antes de irnos por la nubes, vamos a continuar un momento con los pies en la tierra. La siguiente prueba será comprobar si Google Home tiene algún puerto de red abierto por el cual nos podamos conectar o colar en su interior. En este tipo de dispositivos IoT es muy común que existan SSHs, Telnets o portales web abiertos para poder realizar tareas de administración o actualización. Después de tirar unos cuantos nmaps contra nuestro Google Home mini, podemos determinar que en este caso, el dispositivo tiene cinco servicios a la escucha en los puertos TCP: 8008; 8009; 8443; 9000 y 10001.

 


Fig. Nmap -SV.

 

Por desgracia, al menos de momento, ninguno de estos cinco puertos TCP nos permite extraer demasiada información del dispositivo. Un ejemplo de la información que podemos extraer de un dispositivo Google Home Mini, sin necesidad de ningún tipo de autenticación, es la que nos muestra el dispositivo al acceder a la URL IP:8008/setup/eureka_info. Como podemos ver en la siguiente imagen, tan solo realizando una consulta GET a este recurso del puerto 8008, el asistente de hogar  nos indica cual es su BSSID, el BSSID del router, el SSID (nombre de la red WiFi), coordenadas, zona horaria, nombre del dispositivo, uptime y tipo de seguridad WiFi. En este caso, no es una información crítica, ya que la mayor parte de ella es conocida por el mero hecho de estar conectados a la misma red WiFI.

 

Fig. eureka_info de un Google Home.

 

Como ultimo recurso, no nos quedará mas remedio que irnos por las nubes, en este caso a la nube de Google, mas concretamente a su servicio Takeout a través del cual podremos solicitar un archivo con toda la información que Google almacena sobre nuestra cuenta. Para este caso concreto, solamente solicitaremos la información que Google tenga almacenada del servicio “Home” y “Asistente”. Desde el dashboard de nuestra cuenta de Google, podremos solicitar este archivo de datos, el cual recibiremos en nuestro correo pasados unos minutos.

 


Fig. Google Takeout.

 

Como buenos forenses que somos, lo primero que deberemos hacer con cualquier tipo de fichero que obtengamos producto de un análisis, es obtener la firma digital del mismo, en este caso obtenemos el hash SHA1 del fichero: “takeout-20190424T200352Z-001.zip” aportado por Google.

 


Fig. Hash de la evidencia.

 

Una vez hemos descomprimida esta salvaguarda, podemos ver que contiene una carpeta llamada: “Aplicación Home”, la cual a su vez, contiene un fichero JSON titulado: “HomeApp.json”. Este fichero es dónde se guarda la configuración principal de nuestro Google Home. Como datos importantes encontraremos la dirección de correo electrónico configurada en nuestro dispositivo y las coordenadas GPS del mismo. Si, el dispositivo conoce las coordenadas GPS de su posición. Esto es necesario, por ejemplo para poder decirnos qué tiempo hará o la hora a la que amanecerá. A nivel forense nos vendrá muy bien.

 


Fig. JSON con email y geoposición.

 

Otra información importante que nuestro Google Home almacena, es un listado con el resto de dispositivos IoT que se encuentren conectados a la misma red domestica, por ejemplo: termostatos inteligentes, smart plug, bombillas inteligentes, smartTVs, etc… En el caso de la imagen siguiente veremos la configuración de un enchufe inteligente situado en el dormitorio del domicilio.

 


Fig. Dispositivos IoT vinculados.

 

En el directorio “Asistente”, encontraremos, si cabe, los ficheros mas importantes de todo este análisis. El primero de ellos es el fichero “MiActividad.html”, como su propio nombre indica, en este fichero se registra toda la actividad del dispositivo Google Home, básicamente, es un listado transcrito con todos los comandos de voz que el dispositivo ha ejecutado correctamente.

Por cada comando de voz, tendremos: la transcripción de lo que el usuario le haya dicho al dispositivo, lo que el dispositivo ha hecho, la fecha y la hora en la que se ejecutó el comando y las coordenadas GPS de la posición del dispositivo cuando se ejecutó el comando. En la imagen siguiente se puede ver como el usuario le dice a Google Home que “ponga la canción de passion Gigi D’Agostino” y como el dispositivo responde que la canción se reproducirá desde YouTube. Este comando se ejecuta a las 10:32:23 CEST (Ojo con los husos horarios) del día 14 de abril de 2019, en la posición GPS que corresponda. 11 minutos después, el usuario apaga la música del dispositivo.

 


Fig. Actividad de Google Home.

 

Y la pregunta del millón… ¿Quedan almacenados los comandos de voz en Google?, es decir, la voz del usuario dándole una orden al dispositivo. Como seguro que ya os imaginareis, en 256Mb de capacidad de memoria que tiene el dispositivo Google Home Mini, es imposible que guarde muchos minutos de comandos de voz. Pero no podemos olvidarnos que la información que estamos analizando no estaba almacenada físicamente en nuestro dispositivo, si no que nos la hemos bajado de los servidores de Google. Como dijo Albert Einstein: “Dos cosas son infinitas: la estupidez humana y el universo; y no estoy seguro de lo segundo”, bueno, a esto le podríamos añadir que hay una tercera cosa infinita: la capacidad de almacenamiento de los servidores de Google. Así que efectivamente, todos los comandos de voz quedan guardados en los servidores de Google, en ficheros tagueados con la fecha y la hora de grabación en formato MP3.

 


Fig. Listado con los distintos audios mp3.

 

Aunque aquí no os lo puedo mostrar, si reproducimos cualquiera de esos ficheros de audio en formato .mp3, nos escucharemos a nosotros mismos diciendo, por ejemplo: “ -OK Google, pon la canción de passion Gigi D’Agostino”. Aquí me gustaría señalar dos detalles. El primero de ellos, es que el dispositivo ha grabado la voz del usuario cuando pronuncia la frase: “OK Google”, para que esto pueda ocurrir, el dispositivo tiene que estar escuchando y grabando permanentemente todo el sonido ambiente, si no, sería imposible que pueda grabar la frase “OK Google” antes de saber que se va a pronunciar, esta es un prueba muy clara para confirmarnos que el dispositivo Google Home está escuchando y grabando permanentemente todo lo que ocurre a su alrededor, y no solo cuando lo activamos con la frase: “OK Google”. Pero tampoco hay que alarmarse (demasido), como ya comenté al comienzo de este artículo, la memoria NAND de este dispositivo es de solo 256Mb, lo que significa que no tiene capacidad para guardar mas de 2 horas de audio, por lo que es probable que el dispositivo disponga de un pequeño búfer de audio, el cual le permita almacenar los últimos segundos de voz antes de que pueda ser activado con el comando “OK Google”, de este modo es posible que guarde la voz del usuario diciendo “OK Google” sin guardar el resto de sonidos que le puedan llegar hasta el dispositivo.

 


Fig. Spy.

 

Cosa distinta será que este dispositivo pueda estar subiendo a los servidores de Google todo el sonido ambiente que escuche, sobre este tema no localicé ningún indicio que me haga pensar que esto puede estar ocurriendo, básicamente el procedimiento (rudimientario) que utilicé para llegar a esta conclusión fue cuantificar el tráfico de red que este dispositivo utiliza, y si este uso es compatible con la subida comprimida o no de un flujo continuo de audio a los servidores de Google, los resultados fueron que el dispositivo no hace un uso intensivo de la red cuando no está ejecutando ningún comando.

 


Fig. Métricas de uso de red.

 

Otro tema, mas físico y real, es la calidad del audio, este dispositivo registra el audio en formato mp3 con una calidad de 48 kbps, calidad mas que suficiente para realizar un análisis exhaustivo de las ondas y espectros de los audios capturados. Por ejemplo, si yo le digo al dispositivo: “OK Google, ¿qué tiempo va a hacer mañana?”, mientras alguien está hablando en segundo plano, se podrá recuperar la conversación en segundo plano, eso sí, solamente durante el tiempo que el usuario tarde en decir el comando.

 


Fig. Calidad de los ficheros de audio.

 

Finalmente, en el directorio: “Servicio de configuración de dispositivo Android”, tendremos información sobre el Smartphone vinculado al dispositivo Google Home. Normalmente los dispositivos inteligentes se suelen poder controlar de forma remota desde un teléfono móvil, desde el fichero “Device-4534534345270220.html”, podremos ver todos los datos técnicos y de identificación del smartphone o smartphones vinculados a la cuenta de Google que gestionan el dispositivo Google Home, en este caso un: Teléfono móvil: HUAWEI VNS-L31, o lo que es lo mismo, un Huawei modelo P9 Lite.

 


Fig. Huawei P9 Lite

 

Como veis, el análisis forense informático cada vez irá mas encaminado al análisis de la nube y no tanto sobre los dispositivos físicos que nos podamos encontrar.

¿Te ha gustado este artículo? Si quieres, puedes ayudarme a escribir el siguiente artículo de GLIDER invitándonme a un rico café.

 

Pulsa Aquí para invitarme a un café con hielo.

  Salu2.

Manuel Guerra

Mi nombre es Manuel Guerra. Investigador especializado en: [eCrime] | [Forensic] && [Hacking]. Editor de GLIDER.es

Navegación de la entrada


Comentarios

  • Hater

    Vamos a ser siceros!! Esto de forense tiene poco. Desmontas el cacharro para darle más tirón, pero sinceramente estas analizando los datos que tiene Google en la nube. Forense, lo que se dice forense, no lo veo. El nmap se lo puedes lanzar sin destriparlo. Forense sería extraer la NAND FLASH de 256Mb y analizarla en bruto a ver que tiene dentro.
    Un saludo de un Hater que aprecia tu trabajo.

    • Manuel Guerra

      Respeto tu opinión, pero no estoy en absoluto de acuerdo con ella. Si excluimos del análisis forense todo aquello que no se encuentre en dispositivos físicos a los que podamos acceder, en no mucho tiempo, por no decir, ahora mismo, no existirán dispositivos para analizar. Hay que renovarse y estar actualizado, por suerte o por desgracia, este tipo de dispositivos ya no son equipos independientes que pueden operar por si solos. Un Google Home Mini es un simple apéndice de toda la infraestructura de datos que tiene Google y para obtener información de interés o relevante, que esa si es la finalidad de un verdadero análisis, hay que ir dónde se encuentre la información y en este caso se encuentra en los servidores de Google y no en el dispositivo.

      Comprendo que no te parezca relevante haber desmontado el dispositivo, sin embargo para mi es una de las fases mas importantes, ya que con el simple hecho de haber confirmado empíricamente que el dispositivo no puede almacenar mas de 256Mb de datos, incluido su propio sistema operativo, ya dispongo de una evidencia muy clara de que por mucho chip-off que le haga, no voy a encontrar muchos datos de interés. Los análisis no solo son hacerlos, y contar lo que nos ha salido bien y callar sobre lo que no hemos sacado nada de interés, es importante documentar todo el proceso, sea o no de interés, ya que lo que hoy no ha sido de interés, quizás en unos meses si tenga interés.

      No te tomes esto como un ataque hacía tu comentario anónimo, aquí no existen verdades absolutas, yo trato de comentar y enseñar lo que he aprendido a través de mis vivencias y experiencias, pero no quiere decir que esté en posesión de la razón. Así que te animo a que repliques este análisis con otro Google Home Mini realizando un chip-off de la NAND, y nos cuentes que cosas interesantes has encontrado, estoy seguro que algo habrá.

      Un saludo

  • Alejandro

    Pues para mi esto es espionaje en toda regla. Y lo peor y que yo no lo sabia es que tienen las grabaciones de las voces. Perfectamente en un futuro alguien puede coger esos retazos de voz y hacer frases que indiquen que haces cosas que i remotamente pasarían por tu cabeza.
    Gracias por la información.

  • Phill

    Great work
    You can read the NAND with the right reader, although I haven’t yet figured out how to decode the file system
    I don’t expect there to be much in there though. Text searches come back with little information that you can get from the cloud or requesting via the API. You can get a little more with regards to connected bluetooth devices but that’s all I found

  • mc

    Hola!
    Dices que «es un prueba muy clara para confirmarnos que el dispositivo Google Home está escuchando y grabando permanentemente todo lo que ocurre a su alrededor», has encontrado alguna grabación que no empiece on «ok Alexa»? Es decir, crees que graban todo el ruido o solo se activa la grabación cuando se le da una orden?
    pd. me ha encantado el artículo

    • Manuel Guerra

      Hola mc.

      «OK Alexa», solo es para los dispositivos home de Amazon, y de estos no tengo ninguno para analizar. Si recuerdo que hace un tiempo salió una noticia que decía que los echo de Amazon se podían activar sin escuchar el OK, pero no lo he visto.

      En relación a los Google Home, por la forma de operar, tienen que estar grabando todo lo que escuchan, otra cosa es que por ejemplo solamente guarden los últimos 10 segundos, y si no escuchan un OK Google, lo borrén y sigan grabando, así en una especie de bucle infinito.

      Un saludo.

  • Josep Saez

    No pienso que pueda aprender si no nos graba. Wl funcionamiento es el que esperaba. Grsn trabajo, gracias.

  • Carlos juarez

    Interesante artículo Manu. Para mi la conclusión en base a tu estudio es que google tiene los medios para captar, grabar y almacenar en la nube nuestras conversaciones. El análisis del tráfico d red muestra que no lo esta haciendo, pero eso puede cambiar en cq momento y no espero que google me vaya a avisar cuando eso ocurra.

    • Manuel Guerra

      Efectivamente, la capacidad la tiene sin lugar a duda, otra cosa es que de momento no lo haya puesto en práctica.

      Un saludo Carlos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puede usar las siguientes etiquetas y atributos HTML:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>