Advanced Persistent … Toys! : Cómo crear un Chucky «Alonso» [2 de 4] – Making & Working
Tras acabar los antecedentes de este proyecto «Codename:Chucky_as_a_Servive», vamos a continuar con la parte que tiene que ver más con los «makers«. Al final, la idea de este Advanced Persistent Toy es la de crear un autentico Caballo de Troya en un espacio físico donde hay SmartSpeakers como Alexa o Google Home, así que necesitábamos un buen «caballo de madera», o en este caso un juguete lo suficientemente grande.
Nosotros elegimos a Chucky, el muñeco diabólico porque nos parecía muy apropiado para la presentación, y buscamos uno que tuviera unas buenas dimensiones para poder incluirle una placa de control, un módulo de conectividad móvil, y una tarjeta de sonido para escuchar y hablar.
Figura 13: Libros para Makers en 0xWord que deberías tener:
Y como era un proyecto de «Makers«, de esos que nos gusta tanto, pusimos a nuestro querido Alvaro Núñez-Romero del equipo de Ideas Locas a hacer los honores de elegir el hardware y «operar» a nuestro querido muñeco «Chucky», Al final, los componentes elegidos fueron una Raspberry Pi Zero W, una WM8960 Hi-Fi Sound Card Hat y un módulo de comunicaciones GSM/GPRS/GNSS/BT Hat que teníamos a mano, pero puedes usar una Waveshare 4G/3G/2G/GSM/GPRS/GNSS Hat for Raspberry Pi 4 Jetson Nano Based on SIM7600E-H Supports LTE CAT4 for Downlink Data Transfer para tener 4G.
Como el objetivo era hacer una de nuestras PoCs & Hacks Just For Fun con Raspberry Pi, aprovechamos el espacio que traía la electrónica del propio muñeco de Chucky y metimos una batería externa que alimentara el equipamiento.
El esquema de conexión es muy sencillo, y hay que tener en cuenta que hay que conectarle los altavoces y y micrófono para que nuestro muñeco diabólico pueda escuchar la voz de las personas que se va a clonar, además de reproducir los comandos de voz que se envían desde el C&C cuando no hay nadie en casa.
Si esto se convirtiera en un APT de verdad para una compañía, habría que buscar una solución con acceso a energía permanente, ya sea por medio de que sea un dispositivo siempre conectado, o porque tenga una recarga constante tipo la Roomba.
Para nosotros era suficiente, pero podrías elegir otro muñeco, otro dispositivo y otro hardware para hacer el tuyo propio, con CPUs más pequeñas, y meterlas en otros muñecos menos «sospechosos» que nuestro muñeco diabólico.
Una vez terminada la parte del hardware hay que pasar a la parte del software. Para eso, vamos a repasar los objetivos del proyecto, que nos llevarán a una arquitectura concreta para poder hacerlo de la mejor manera posible
Objetivos del Proyecto Chucky_as_a_Service
Vamos a describir las partes fundamentales del proyecto, y luego vemos las piezas de la arquitectura software que hemos construido, y las demos de Chucky_as_a_Service funcionando.
- Escuchar voces de personas que hablan en casa: Para ello no solo las oye, sino que las graba, y luego con algoritmos de Machine Learning las clasifica utilizando algoritmos de comparación de voces, y de diariazación en el caso de que haya más de una voz en una grabación, además de los algoritmos de Machine Learning para el reconocimiento de texto, análisis de sentimiento, edad y género de cada speaker para dar más información.
- C&C en SasS: Cada muñeco Chucky envía sus audios a su panel de control en la nube. Todos los audios se suben a la nube donde se ejecutan los algoritmos de Machine Learning para diarizar los ficheros de audio, para reconocer a los speakers, y para, como no, clonar las voces utilizando un API de ElevenLabs.
- Ejecución de comandos de voz: Con la voz clonada elegida se ejecutan comandos de voz desde el muñeco, para poder controlar los SmartSpeakers del hogar.
Figura 21: Alexa Voice ID
- Bypass de protección de reconocimiento de voz «Voiceprinting»: Tanto el utilizado por Alexa – que se llama Alexa Voice ID -, como el de Google Home – llamado Speaker ID -: Para ello, se utilizan servicios de Text-To-Speech desde el APT y el API de ElevenLabs para conseguir el audio con el texto, el tono y la voz elegida para lanzar el comando.
Figura 22: Google Cloud Speaker ID
- Ejecución de Payloads: Una vez que tienes el el muñeco en el entorno físico objetivo, y ya se ha clonado la voz, solo debe esperarse a que no haya nadie en el hogar, algo que se puede hacer o bien analizando el ruido en el hogar, o las perturbaciones en la señal WiFi, y ejecutar comandos de voz para Alexa o Google Home que permitan tanto extraer información como ejecutar acciones en el dispositivo del hogar.
Para ello, hemos probado una lista de ellos con Google Home, Alexa y Siri, y en las configuraciones por defecto estos son los resultados obtenidos. De la parte de Siri, teníamos mucho hecho del libro de «Hacking iOS: iPhone & iPad (2ª Edición)» y de cuando nos dio por la locura de Klingonizar un iPhone con comandos de voz.
Figura 24: Libro de Hacking iOS:iPhone & iPad (2ª Edición) en 0xWord de Chema Alonso, Ioseba Palop, Pablo González y Alejandro Ramos entre otros. |
- Se escuchan las respuestas y se suben al C&C: Por supuesto, después de ejecutar un comando con el SmartSpeaker, se escuchan las repuestas y se suben al panel de Control para que se puedan escuchar y transcribir el texto obtenido.
Y hasta aquí esta segunda parte, en la siguiente veremos la arquitectura software y al muñeco diabólico haciendo de las suyas.
¡Saludos Malignos!
***************************************************************************************
***************************************************************************************
Autor: Chema Alonso (Contactar con Chema Alonso)
Powered by WPeMatico