Exfiltración de información entre un SmartTV y un SmartDisplay: Una PoC
Como sabéis, el año pasado, y éste, realizo labores de Mentor en el Campus Internacional de Ciberseguridad, donde, entre otras muchas cosas, planteo algunos Trabajos de Fin de Máster para el Máster de Ciberseguridad. Éste, que os publico hoy en forma de artículo, es un trabajo que planteamos Pablo González - que ha dirigido el TFM también - y yo sobre cómo exfiltrar información en un entorno desconectado usando una SmartTV y una Webcam en un SmartDisplay tipo Movistar Home o Alexa Echo Show.
Figura 1: Exfiltración de información entre un SmartTV y un SmartDisplay.
Una PoC con Cognitive Service de Visión Artificial
El trabajo lo ha realizado Ángel Heredia, que es quien lo escribe a partir de aquí. Espero que os guste y os inspire para seguir trabajando sobre esta idea de comunicarse visualmente con WebCam & Cognitive Service de Visión Artificial con Displays. Este año plantearemos algún TFM que profundice en esta idea en la nueva edición del Máster de Ciberseguridad que comienza ahora.
Saludos Malignos,
Exfiltración de información entre un SmartTV y un SmartDisplay: Una PoC
En la actualidad, la cantidad de dispositivos IoT (Internet Of Things) conectados a Internet cada
vez es mayor. Este crecimiento se puede observar en la gráfica de la imagen siguiente, extraída del artículo
State of IoT 2022: Number of connected IoT devices growing 18% to 14.4 billion globally. Aunque esta cantidad de dispositivos creciente es muy positiva para la evolución de las sociedades, es cierto que muchos de ellos no tienen los controles de seguridad que deberían tener, lo que crea vectores de ataque
para posibles atacantes que pueden llegar a hacer mucho daño a una organización.
Ya vimos en el pasado como, explotaciones de fallos de seguridad de estos dispositivos IoT llevó a la creación de grandes Botnets como Mirai, que se utilizaron en ataques a gran escala contra los servidores más fundamentales de Internet, tumbando Facebook, WhtasApp y grandes redes. Muchos de ellos incluidos en las empresas sin darse ni cuenta, lo que se llamó el Shadow IoT.
La Prueba de Concepto (PoC) de este artículo consiste en validar si sería posible una comunicación entre un SmartTV y un SmartDisplay usando un Cover-Channel para exfiltrar información, haciendo uso de un método poco convencional. La idea es aprovechar la presencia cada vez mayor de dispositivos IoT para, utilizando una cámara o webcam, como un dispositivo de seguridad o un SmartDisplay, exfiltrar la información mostrada de forma oculta en la pantalla de una SmartTV que se encuentre en el ángulo de visión de la cámara.
Esta forma de ocultar información a simple vista en un "Cover-Channel" es lo que se conoce como esteganografía y debido a que realmente no viajan datos directamente por la red es bastante complicado para sistemas de detección de intrusiones (IDS) detectar dicha transmisión. Podéis leer más sobre estas técnicas y su detección mediante estegoanálisis en el libro de "Esteganorafía y estegonanálisis" de Jordi Serra y Daniel Lerch publicado por 0xWord.
La Prueba de Concepto (PoC) de este artículo consiste en validar si sería posible una comunicación entre un SmartTV y un SmartDisplay usando un Cover-Channel para exfiltrar información, haciendo uso de un método poco convencional. La idea es aprovechar la presencia cada vez mayor de dispositivos IoT para, utilizando una cámara o webcam, como un dispositivo de seguridad o un SmartDisplay, exfiltrar la información mostrada de forma oculta en la pantalla de una SmartTV que se encuentre en el ángulo de visión de la cámara.
Figura 3: Entorno de comunicación y exfiltración de la PoC
Esta forma de ocultar información a simple vista en un "Cover-Channel" es lo que se conoce como esteganografía y debido a que realmente no viajan datos directamente por la red es bastante complicado para sistemas de detección de intrusiones (IDS) detectar dicha transmisión. Podéis leer más sobre estas técnicas y su detección mediante estegoanálisis en el libro de "Esteganorafía y estegonanálisis" de Jordi Serra y Daniel Lerch publicado por 0xWord.
Figura 4: Libro de Esteganografía y Estegoanálisis de Jordi Serra y Daniel Lerch publicado por 0xWord |
Para ocultar la información, se ha decidido usar un contador de FPS (Frames Per Second) que supuestamente mostraría información acerca del rendimiento de la Smart TV pero que en realidad estaría transmitiendo un mensaje codificado. Dada la popularidad del sistema Android para las televisiones y muchos dispositivos IoT, las aplicaciones desarrolladas para la prueba de concepto que se encargarán de la emisión y transmisión de la información son para dicho sistema. Para transmitir la información el funcionamiento es el siguiente:
- Se toma el mensaje a transmitir y se codifica en binario, añadiendo bits de control entre bytes para separar unos caracteres de otros y además prefijando una secuencia de control que ayudará a determinar el inicio y final del mensaje.
- La aplicación determina los FPS reales del dispositivo y los aproxima a la decena más próxima.
- En este punto la aplicación introducirá cada segundo un bit de la secuencia a enviar en el contador de FPS. Lo hará de la siguiente manera:
- Si se transmite un 1 se sumará 1 al contador de FPS
- Si es un 0 el contador de FPS no se modifica
- Si es un 2, bit de control utilizado para separar bytes y formar la secuencia de control, se resta 1 al contador.
- Se muestra el contador por pantalla y el mensaje te transmitirá en bucle.
- Se hace uso de una librería que permite detectar caracteres a partir de las imágenes captadas por la cámara del dispositivo, usando un Cognitive Service de Visión Artificial.
- Antes de pasar a determinar el valor del contador de FPS de todo lo captado por la cámara, se realiza una pequeña corrección de todo lo detectado partiendo de la base de que se sabe que lo que se busca son números y además que solo espera detectar ciertos valores debido a la codificación realizada anteriormente.
- Una vez que se tiene todos los caracteres captados por la cámara, se procesan los valores detectados para limpiar todo lo que no interesa y solo dejar los FPS de la pantalla.
- En este punto la aplicación ira decodificando bits hasta dar con la secuencia de control, momento en que la decodificación del mensaje comenzará. Se dará por terminada la transmisión al encontrar una nueva secuencia de control.
- Una vez que se ha determinado que se tiene todo el mensaje, se mostrará por pantalla.
Figura 7: PoC de exfiltración con FPS y Webcam
Ante el problema de corrupción de los datos que se transmiten se podrían añadir bits de paridad que ayuden a corregir errores y para aumentar la velocidad (motivo por el que se ha evitado añadir el sistema de paridad en esta prueba) se podrían añadir otras métricas a la aplicación acerca del dispositivo que permitan transmitir más bits por segundo.
Un saludo,
Autor: Ángel Heredia
1 comentario:
Enhorabuena por tu proyecto. Me parece super interesante para filtrar información. Y ahora yo me pregunto, para rizar el rizo… se podría crear un video que fuera modificando los frames y que la cámara, bueno no la cámara, algún software detrás, reconociera los frames que se están modificando y descifrara? Al final 3 frames creo que es imperceptible para el ojo humano. Enhorabuen!!!
Publicar un comentario