Mostrando entradas con la etiqueta webcam. Mostrar todas las entradas
Mostrando entradas con la etiqueta webcam. Mostrar todas las entradas

miércoles, octubre 19, 2022

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.

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.

Evidentemente ahora toca recibir el mensaje, para ello la aplicación receptora deberá ser capaz de determinar el valor de FPS en pantalla y posteriormente decodificar el mensaje conforme se transmite, la aplicación desarrollada para tal propósito funciona así:
  • 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.

El sistema funciona bastante bien pero no es perfecto, es cierto que en el caso de mensajes de texto plano en el que produzca un error de detección en uno o varios bits, es posible seguir leyendo el mensaje final puesto que solo faltarían algunos caracteres y sigue siendo legible. El problema surge si lo que se transmite es alguna clase binario o imagen, para empezar, llevaría mucho tiempo debido a que la velocidad de transmisión es extremadamente lenta, pero además es que un solo bit corrupto y el archivo completo queda inservible. En el siguiente vídeo tenéis una demostración del funcionamiento de la exfiltración.

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,

miércoles, abril 27, 2022

"Cognitive Services & Cyber Security "Ideas Locas": Artificial Vision & Silent Communications

Para esta última parte de la serie de Cognitive Services & Cyber Security os voy a hablar de dos pruebas de concepto (PoC) basadas den comunicación silenciosa usando los servicios de Visión Artificial. En este caso nos inspiramos en la idea de la campaña de comunicación realizada para hacer saber que una persona estaba siendo raptada que dio la vuelta al mundo, y sobre ello creamos dos ideas de trabajo. La primera orientada a reconocer "Símbolos", y la segunda orienta a reconocer "Acciones".

Figura 36: "Cognitive Services & Cyber Security "Ideas Locas".
Artificial Vision & Silent Communications 

El gesto que se hizo viral por la red social de Tiktok se conoce como "Signal for Help", o "Señal de petición de ayuda", y consiste en cogerse el dedo pulgar de la mano con los cuatro dedos. Es decir, comenzar con los cuatro dedos estirados, y capturar el dedo pulgar. Una clara referencia a que una persona está sufriendo un secuestro, acoso, violencia, y necesita ayuda.

Con este idea, pensamos que sería fácil entrenar un modelo de Inteligencia Artificial que utilizando un Cognitive Service de Visión Artificial pudiera detectar en cámaras de instituto, cámaras de seguridad de empresas, e incluso de recintos públicos, que una persona está pidiendo ayudar.

Figura 37: Signal for Help viralizado en TikTok

Imagina que una persona circula por un museo, o un chico por un instituto y, delante de una cámara de seguridad hace este gesto. Si la cámara de seguridad lleva incorporado este modelo de Inteligencia Artificial entrenado, detectaría el gesto, y podría saltar una alerta que enviara ayuda inmediata a esa persona.

Para hacer esto, como os he explicado en el primer párrafo, trabajamos primero en reconocer "Símbolos" que serían patrones concretos de una persona o de una mano, y en reconocer "Acciones" que sería más complejo, porque habría que reconocer, al menos, dos posiciones (si no más) en una secuencia concreta.

Reconocimiento de Símbolos

Para esta prueba de concepto se nos ocurrió que podríamos hacer un sistema de reconocimiento del Código Morse con un Cognitive Service de Artificial Vision, definiendo tres símbolos: Punto, Raya, y Fin de letra.

Figura 38: Código Morse

Para hacer el proceso hicimos un modelo que obtiene 20 imágenes por signo - que será cada una de las etiquetas del modelo - en tiempo real desde la webcam. Después se selecciona la parte de la imagen que es la activación, en nuestro caso la mano, usando un sistema de "labeling" que detecta partes del cuerpo. 


El resto es entrenar el modelo y una vez hecho esto, ya se puede utilizar para reconocimiento de los símbolos con la imagen capturada en tiempo real desde la webcam como podéis ver en el vídeo del ejemplo. El resultado, podemos hacer un sistema de comunicación silenciosa utilizando Código Morse como pretendíamos en el experimento.

Figura 40: Tecnología para esta PoC

Para realizar esta PoC usamos TensorFlow, con una colección de objetos ya pre-entrenados y el framework de TensorFlowObject Detection que fue creado por Google para ayudar a la detección de objetos en imágenes.  

Reconocimiento de Acciones

En este caso es un poco diferente, porque necesitamos reconocer un movimiento, así que el trabajo exigía otra aproximación. Para ello se captura para cada símbolo una secuencia de movimiento o "keypoints" usando 30 frames capturados desde la webcam. Se etiqueta la secuencia de movimientos y con ello ya se puede pasar al entrenamiento de una red LSTM (Long Short-Term Memory) con arquitectura RNN (Recurrent Neural Network) de 800 épocas. 


Una vez entrenado, se pueden realizar diferentes acciones, que como veis en nuestro caso, fueron: Nada, la Letra A (que podría ser cualquier otra acción), Señal de Alerta y Señal de Secuestro. Y cada una de ellas puede, una vez sea detectada, generar cualquiera acción de tratamiento.

Figura 42: Tecnología usada para este PoC

Para construir esto, también utilizamos TensorFlow, pero utilizamos Mediapipe para que nos ayudara a reconocer las manos y la cara de forma correcta, así como la librería Numpy para procesar los resultados obtenidos en Mediapipe.

Conclusión

Durante este artículo, hemos podido ver la cantidad de posibilidades que tenemos hoy en día para construir nuevos sistemas informático, aplicaciones, productos o servicios, gracias a la evolución exponencial de la Inteligencia Artificial en los últimos años, con foco especial en algoritmos avanzados de de Machine Learning y Cognitive Services que puedes aplicar a Ciberseguridad.

Figura 43: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen Torrano, Fran Ramírez, Paloma Recuero, José Torres y Santiago Hernández

Con los servicios cognitivos cambiamos la manera en la que interactuamos con la tecnología. Ya no es solo teclado y pantalla o impresora. Ahora podemos hablar, podemos dibujar, podemos escribir en papel, podemos atacarlos por medio de comandos de voz o podemos crear secuencias complejas visuales para que reconozcan acciones, movimientos y comportamientos.

¡Saludos Malignos!

*****************************************************************************************
*****************************************************************************************

Autor: Chema Alonso (Contactar con Chema Alonso)  


lunes, abril 18, 2022

Cómo meter los dibujos para crear tecnología de tu pizarra de rotuladores en las reuniones de trabajo con Teams o Zoom usando Logitech Scribe

Los que llevan conmigo mucho tiempo en mis equipos saben que en las reuniones suelo hablar más con notas que llevo escritas que de pedir presentaciones o usar presentaciones en las reuniones de trabajo para compartir mis ideas. Tengo mi forma de trabajar desde hace 20 años y tengo algunas rutinas que para mí fundamentales para mantener el ritmo de los equipos de trabajo. Ya os he contado mucho por aquí, como por ejemplo cómo ajusto los Deliveries de tareas a Deadlines utilizando eventos y actividades de Comunicación Pública. Y en el día a día, también tengo mis biorritmos de trabajo.


Tampoco es que sea muy fan de las reuniones, y procuro tener mi reunión semanal con mi equipo directo todos los lunes, nunca que empiece antes de las 10:00, nunca que acabe después de las 17:00, salvo excepciones que deben ser muy justificadas. Y creo que los viernes es un día en el que las personas deben tener tiempo libre para terminar sus trabajos semanales sin reuniones. Me gusta que la gente comience duro el lunes con las tareas importantes de la nueva semana, que las saquen y tengan reuniones hasta el jueves, pero el viernes debe ser el día de terminar lo que se ha quedado a medias y olvidarse de tener reuniones ese día, que haga que el fin de semana la gente se llene la cabeza con tareas nuevas o preocupaciones. Eso para los lunes.

Y dentro de las reuniones, también tengo mis rutinas. Cuando tengo reuniones me gustan las que van a punto desde el minuto uno. Y que estén las personas justas sin que haya demasiada gente, que suele ser más efectivo así. Con pocas presentaciones. Y da igual que sean presenciales o virtuales. Que sean cómo a cada uno le pille bien. Así que desde el año 2013 cuando comenzamos con ElevenPaths, creamos el formato de reuniones distribuidas y para cada uno buscábamos la mejor manera. Presencial, vídeo conferencia, teléfono si era necesario. Lo importante es que la reunión fuera efectiva.

Mi forma de tener reuniones con mi equipo es un lugar donde yo comparto con todos ellos los puntos más importantes de lo que ha pasado la semana pasada, lo que tenemos por delante, los puntos de conflicto, los problemas, lo que tenemos que solucionar esta semana y listo. Y luego todos los miembros del equipo hacen lo mismo, comparten los puntos que creen que son importantes sincronizar con el equipo, los que tienen conflicto, los que necesitan ayuda u atención. Cero presentaciones. Y desde que llegó la pandemia y nos fuimos todos confinados, pues lo mismo pero por Microsoft Teams.

Lo único que echaba de menos en estas reuniones es algo que para mí es más importante que las presentaciones. Dibujar en la pizarra. Es lo que manda en mi despacho. Una pizarra que sale por detrás de mí en las reuniones y donde hago mil gráficos y dibujos para expresar mis ideas. Os sorprendería la cantidad de dibujos que uso para conceptualizar un proyecto, como fue la conceptualización inicial de la 4ª Plataforma que a la postre se convertiría en el core de todos los servicios digitales de nuestra compañía. Hice este dibujo muchas veces a todo el mundo. Nunca lo puse en PPT. De hecho, le hice una foto y puse la foto en las presentaciones.


Para explicar cuál iba a ser la estrategia para desplegar esa 4P (ahora Telefónica Kernel) lo hice con otro dibujo. Le llamaba “la estrategia de la margarita” y en el dibujo conceptual del modelo de datos y APIs de la 4P se puede ver abajo a la izquierda la referencia. Sí, es una margarita. Y cuando llegó el momento de construir el YOT del dibujo (que viene de You On Telefónica), y lo llamamos Aura, también hice un dibujo para explicar cómo íbamos a construirlo conceptualmente sobre la 4P.

Figura 3: Modelo conceptual de AURA sobre la 4P

Así que, con la llegada de la pandemia, lo único que he echado de menos en las reuniones es la parte de poder seguir dibujando en la pizarra que tengo detrás de mí. Y me he quejado mucho de eso. De hecho, a veces me aparto, muevo el portátil, e intento que me vean mientras dibujo con mis "rotus" de colorines dibujos conceptuales, esquemas, grafos de dependencias o flujos de ejecución. Pero es siempre un poco chufla. Por eso el regalo que me han hecho mis amigos de Logitech se merece que los quiera mucho.

Mis amigos allí sabían de mi afición a dibujar, y ahora han lanzado una captura de pizarras que mola todo, ya que utiliza IA sobre las imágenes de una Webcam para capturar lo que yo dibujo y meter a mi pizarra de rotuladores en las reuniones de Microsoft Teams y Zoom. Una idea tan simple, y tan cómoda, por lo que los adoro.


Al final, la idea es tan facilona como brillante, conectas la cámara, encuadras la pizarra, configuras la webcam dentro de tu conexión a Microsoft Teams (o Zoom), y dibujas. A partir de ese momento, lo que tú dibujas en la pizarra se ve mejorado con filtros de visión artificial usando IA para difuminar al que está delante de la pizarra, para mejorar los colores, y para, incluso, meter notas recordatorias. Un uso muy “cool” de Cognitive Services de la inteligencia artificial.


Me ha encantado el regalo, - que se llama Logitech Scribe - así que, acaba de incorporarse al conjunto de elementos para mi kit de trabajo flexible que tengo, porque esto me devuelve la posibilidad de estar en mi despacho en un Teams y poder dibujar para todos mis dibujos con mucha flexibilidad, para que lo vean, lo capturen, etcétera. Y yo solo tengo que seguir dibujando con mis rotuladores y mi pizarra, de tal manera que los que están presencialmente conmigo en la reunión también pueden verlo, no es un dibujo digital, es una copia digitalizada en tiempo real y mejorada con IA de mis dibujos… y a mí me gusta dibujar mucho.

Este tipo de soluciones mixtas son las que van a dominar nuestra vida en el futuro. El uso de AR/VR e IA en el mundo físico, los mundos virtuales que digitalizan objetos, los mundos físicos con propiedades extendidas en con realidad aumentada. Nosotros, en el equipo de Ideas Locas hemos estado trabando, durante este ultimo tiempo, en un patente para crear tecnología a partir de dibujos en pizarras, así que, no os digo nada lo importante que es lo de dibujar en las pizarras para nosotros en las reuniones de trabajo. Y es que, gracias al avance de los servicios cognitivos de inteligencia artificial pensados para la parte de visión, se han abierto muchas posibilidades.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


martes, marzo 30, 2021

Cómo construir una DashCam con una Raspberry Pi Zero W #Maker #RaspberryPi

Hoy es otro día para Makers de Raspberry Pi. Y no es la primera vez que os traemos proyectos con la Raspberry Pi Zero a este blog, en este caso os enseñaremos a construir vuestra propia cámara de salpicadero o "Dashcam". La idea de este proyecto es construir un dispositivo capaz de grabar vídeo ininterrumpidamente desde el momento en el que se enciende hasta que se apaga. 

Figura 1: Cómo construir una DashCam con una Raspberry Pi Zero W

De la misma forma que este proyecto esta pensado con esta aplicación también tiene muchas otras como la vigilancia de nuestras mascotas cuando no estamos, o simplemente como sistema de seguridad para aportar pruebas si sufrimos un robo en nuestra casa. Antes, os dejamos aquí la lista de otros proyectos con Raspberry Pi y Raspberry Pi Zero.

- Raspberry Pi: Cómo construir un medidor ambiental
- Raspberry Pi: Dirtytooth para Raspberry Pi v2.0
- Raspberry Pi: Una VPN para navegar por redes WiFi con portales cautivos
- Raspberry Pi: Pi Guardian con Latch, Bots en Telegram y "ojos"
- Raspberry Pi: Latch My Car
- Rapsberry Pi: Tu servicio VPN con OpenVPN, Latch y Virus Total
- Raspberry Pi: Latch en OpenWRT
Como os podéis imaginar, este es otro proyecto para los Makers, sencillo, fácil de construir y pensado para que los más jóvenes se inicien, y los más veteranos se inspiren para darle otra vuelta de tuerca y crear algo más potente aún todavía.  

Figura 2: Dashcam compacta con Raspberry Pi Zero W.

En el proyecto de Maker que os traigo hoy, los elementos que necesitaremos para llevar a cabo la construcción final son los siguientes:
En cuanto al mecanismo de sujeción podremos ser todo lo originales que queramos ya que cada vehículo es distinto y deberemos buscar un ángulo optimo en el que se vea el morro de nuestro coche y la vía por donde circulemos. Uno de los métodos mas sencillos para fijar la cámara en nuestro cristal es perforando la carcasa y fijando un par de ventosas en ella.

Figura 3: Mecanismo de sujeción con ventosas.

Al igual que en la mayoría de los proyectos con Raspberry Pi que os hemos traído al blog durante los últimos meses, como en muchos de los que tenéis en el libro de "Raspberry Pi para Hackers & Makers: PoCs & Hacks Just for Fun",  el sistema operativo escogido ha sido Raspbian, al trabajar en esta ocasión con una Raspberry Pi Zero W no utilizaremos la versión de escritorio de Raspbian para que su funcionamiento sea más fluido y porque una vez que la placa esté configurada no necesitaremos tenerla conectada a una pantalla.

Al igual que en los anteriores proyectos la forma mas rápida y sencilla de cargar el sistema operativo en la Raspberry Pi Zero es a través de un archivo de imagen. Si todavía no sabes cómo se hace esto por aquí tienes un pequeño tutorial en el que se explica cómo hacerlo.


Ahora que ya tenemos sistema operativo para nuestra Raspberry Pi Zero W solo tendremos que introducir la tarjeta micro SD y conectar nuestra cámara antes de encenderla. Al arrancar la placa por primera vez con Raspbian tardará un par de minutos en estar lista para utilizarse. Cuando esté lista el siguiente paso es preparar la cámara. Para ello utilizaremos el comando sudo raspi-config y en el menú que se muestra buscar el apartado interfacing options. Accederemos a él, buscaremos el apartado camera y la activaremos. 

Figura 6: Configuración de Pi Camera.

Después tendremos que reiniciar la placa y asegurarnos de que se ha guardado la configuración aplicada. Una vez configurada nuestra cámara el siguiente paso es actualizar la Raspberry Pi Zero W con el comando:

sudo apt update && sudo apt full-upgrade -y

Para hacer el script de nuestra "Dashcam" recurriremos a Python debido a su gran cantidad de extensiones, librerías y módulos que nos facilitaran el trabajo. Antes de nada, deberemos instalar la extensión de la PiCamera utilizando el comando “sudo apt install python-picamera”. Con el modulo instalado solo nos queda crear el script utilizando el comando “sudo nano dashcam.py” y copiar el script que viene a continuación:

Figura 7: Dashcam-diy-35

Antes de poder utilizar el script deberemos instalar el módulo de psutil que nos permitirá controlar el uso de la memoria y así detectar cuándo se está llenando la tarjeta. Para poder instalarlo necesitamos pip, un instalador de paquetes para Python por lo que hay que hacer:
  • sudo apt install Python-pip 
  • pip install psutil
Con estas dos herramientas instaladas nos queda crear una carpeta en la que guardar los vídeos y utilizar el comando “Python dashcam.py” para arrancar nuestra "Dashcam"Esta es una de las formas más sencillas y económicas de crear una cámara de salpicadero para tu coche. Además ofrece un montón de opciones de personalización y mejora, ya que en un futuro se puede ir modificando el código y añadiendo nuevas funcionalidades como la geolocalización a través de un módulo GPS/GSM/GPRS para Raspberry Pi, conectarla directamente la alimentación de nuestro coche y añadir un script de auto-arranque para no preocuparnos de iniciarla cada vez que vayamos a conducir. 


También podríamos hacer un script que vaya eliminando los vídeos antiguos a medida que se graban nuevos para conservar siempre las últimas imágenes grabadas y no quedarnos sin memoria o hacerlo manualmente.

El “apartado legal” de este proyecto

Desde hace unos años el uso de este tipo de dispositivos se esta volviendo cada vez más habitual, de hecho, en algunos países (como Rusia) no es recomendable sino obligatorio para registrar cualquier accidente de tráfico y para poder prevenir las estafas a las compañías de seguros. Sin embargo, en España su legalidad es dudosa, del mismo modo que no hay ninguna ley que impida la instalación de un dispositivo de este tipo la Ley General de Protección de Datos dice que es ilegal la grabación y distribución de imágenes en espacios públicos sin la autorización de terceros a excepción de que sean para uso doméstico no lúdico.

Figura 9: Estafa grabada por Dashcam 

Esto quiere decir que en caso de justificar los daños de tu vehículo a la compañía de seguros la grabación podría serte útil, pero en caso de que el accidente conllevase un proceso judicial las imágenes podrían no considerarse válidas para demostrar tu inocencia. Por el momento en nuestro país no ha habido ningún caso en el que las grabaciones de una cámara de salpicadero hayan sido el elemento resolutivo en un juicio, por lo tanto esto deja un vacío legal a la espera de que se dictamine una ley que regule el uso de este tipo de dispositivos.

Saludos,

Autor: Sergio Sancho, Security Researcher en Ideas Locas.

martes, marzo 16, 2021

Micro:Bit para jóvenes Makers: Control remoto de la cámara de Android e iPhone

Hace unas semanas os publiqué por aquí, por El lado del mal, algunos ejemplos de proyectos para amantes del mundo Maker sencillos de hacer, y que se pueden hacer en un rato o son interesantes para llevar a cabo con niños y jóvenes que quieran aprender esta disciplina, todos ellos realizados con placas Micro:bit, que cuentan con un buen número de componentes y aplicaciones de software para trabajar. Hoy os traigo nuevas ideas para que sigáis explorando y experimentando con el gran potencial que ofrecen estas pequeñas placas.

Figura 1: Micro:Bit para jóvenes Makers:
Control remoto de la cámara de Android e iPhone

En este caso os enseñaremos a construir un control remoto para la cámara de vuestro smartphone. Para este proyecto el único hardware que necesitaremos será una placa micro:bit, una batería portátil (o una caja de alimentación con pilas) y un smartphone con sistema operativo iOS o Android compatibles con la aplicación de micro:bit.

Figura 2: Libros para Makers en 0xWord que deberías tener

El primer paso para convertir nuestra Micro:bit en un control remoto para tomar selfies será descargar la aplicación oficial de Micro:Bit para iOS de App Store, o Micro:Bit para Android de Google Play. Al iniciar la aplicación por primera vez deberemos concederle algunos permisos sobre nuestro dispositivo. 

A continuación, accederemos a un menú en el que se muestran cuatro opciones que podéis ver en la imagen de la Figura 4, que son Pair, Flash, Create Code y Discover. Si no hemos utilizado nunca esta aplicación y por lo tanto no tenemos ninguna Micro:bit vinculada seleccionaremos la opción “Pair”, al hacerlo la aplicación volverá a solicitar algunos permisos para acceder a información de nuestro dispositivo y a la conectividad vía Bluetooth. Una vez que hayamos concedido los permisos correspondientes se mostrará en pantalla una serie de instrucciones para vincular nuestra placa.


Para vincular nuestra placa, debemos mantener pulsados los botones A y B de la cara anterior de la placa y pulsar el botón Reset situado en la cara posterior. Al hacer esto se encenderán los leds de la placa Micro:Bit reproduciendo una animación y mostrando el logo de Bluetooth y después mostrando un patrón aleatorio en la “pantalla”. Deberemos copiar el patrón que aparece en nuestra Micro:bit en la pantalla de nuestro smartphone y pulsar en el botón “Next”  cuando hayamos terminado de introducir el código de pareado, como hacemos con cualquier dispositivo BlueTooth.

Figura 5: Proceso de pareado por BlueTooth

Una vez hecho, se mostrará una pantalla en la que nos dice que, si al parear la placa Micro:bit se solicita un código, deberemos pulsar el botón “A”. Al darle a “Next” comenzará el proceso de conexión y nos aparecerá un mensaje en nuestro smartphone avisándonos de que hay un dispositivo intentando vincularse, pulsaremos en aceptar. Si todo ha salido bien se mostrará en la pantalla del smartphone el mensaje “Pairing successful” y un “tic” en la placa, como podemos ver en el siguiente vídeo.

Figura 6: Proceso de pareado de la placa Micro:Bit

Ahora que ya tenemos la placa Micro:bit vinculada a nuestro Android o iPhone volveremos al menú principal de la app y seleccionaremos la opción “Flash” y buscaremos “sample: camera-control“ y pulsaremos el botón “Flash”. Una vez "flasheado" volveremos al menú principal de la app, ahora se mostrará una nueva opción llamada “Monitor and Control” accederemos a este apartado y seleccionaremos la opción “Add” y después “Camera”. A continuación, se abrirá la cámara de nuestro smartphone.

Figura 7: Configurando el control la cámara del smartphone

Por último deberemos pulsar el botón “Play” para conectar la placa Micro:bit y, hecho esto, cada vez que pulsemos el botón "A" de la placa nuestro smartphone tirara una foto. También podemos utilizar el botón “B” para alternar entre la cámara delantera y la cámara trasera. Todas las fotos que hagas utilizando este método se guardarán automáticamente en tu galería.

Figura 8: Código de ejemplo de control de cámara 

La placa Micro:bit fue diseñada como proyecto educativo para enseñar a programar a los más jóvenes, sin embargo gracias a sus diversas opciones de conectividad y a su aplicación para iOS y Android también ofrece la posibilidad de realizar algunos proyectos interesantes sin que sea necesario saber programar.

Autor: Sergio Sancho, Security Researcher en Ideas Locas.

lunes, julio 06, 2020

iPhone & iPad con iOS 14 te avisarán cuando las apps usen tu micrófono o tu cámara

En un intento de mejorar la privacidad de sus tecnologías, y después de las quejas de muchos usuarios sobre el uso de conversaciones por parte de apps para poder anuncios o tener datos más relevantes de las personas, Apple ha decidido añadir una nueva alerta visual en iOS 14, aún por salir en producción, para avisar a los usuarios cuando una app está utilizando sus permisos para acceder a la cámara y/o el micrófono, con lo que puede estar capturando las conversaciones y la grabando imágenes.

Figura 1: iPhone & iPad con iOS 14 te avisarán cuando
las apps usen tu micrófono o tu cámara

Esta no es la primera medida visual que añade iOS de forma similar, y como veremos se parece mucho a la medida que tiene el Mac OS para avisar cuando la cámara está encendida, y desde luego es una buena idea para ayudar a las personas preocupadas por su seguridad.

La luz verde en el iPhone: La cámara está encendida

A partir de la versión iOS 14, los terminales iPhone - y suponemos que los terminales iPad también - avisarán con una luz verde cuando una app esté accediendo a la cámara de su dispositivo y, por tanto, accediendo a las grabaciones de imágenes. Esto es algo similar a lo que tiene Apple implementado desde hace años en los equipos Mac, donde se avisa con una luz verde cuando alguien utiliza tu cámara.

Figura 2: En iOS 14 si una app accede a la cámara se verá un punto verde

Desde hace años se puede controlar en los permisos de iOS qué apps tienen acceso a ellos, pero es una buena forma de avisar y recordar al usuario de que le dio permisos - consciente o inconscientemente - y que vea cómo están siendo utilizados.

La luz naranja en el iPhone: El micrófono está encendido

Esto no está implementado en Mac, y esperemos que lo hagan también, ya que permite saber si una app te está escuchando activamente en un determinado momento, lo que ayudará a reducir la paranoia que se ha generado con los "anuncios generados por conversaciones de voz", de los que ya hablamos por el blog.

Figura 3: Punto naranja para cuando se activa el micrófono

Así que si la luz naranja se enciende, te están escuchando, lo que también te permitirá descubrir cuándo una app puede ser maliciosa, o un troyano en tu sistema implantando para hackear tu iPhone o tu iPad y vulnerar tu privacidad.

Figura 4: Libro de Hacking iOS:iPhone & iPad (2ª Edicón) en 0xWord de
Chema Alonso, Ioseba Palop, Pablo Gonzáleez y Alejandro Ramos entre otros.

Pero nos quedan pruebas por hacer aún de cómo funcionan estos sistemas, ya que aún quedan escenarios peligrosos que hay que ver cómo se gestionan, como son el uso de los permisos de forma oportunista.

Figura 5: En rojo cuando se está grabando audio o pantalla

Actualmente, el sistema operativo avisa con códigos de colores cuando una app está grabando con la cámara o con el micrófono, pero no cuando está accediendo a ellos, lo que da muchos escenarios de inseguridad, y por eso el código de colores.

Permisos oportunistas en Gremlin Apps

Hablamos largo y tendido de esto en el artículo dedicado a las Gremlin Apps, pero para ser breve, se trata de que una app maliciosa haga uso de un permiso solo cuando un comportamiento natural de ese permiso dentro de la app se vaya a producir. Por ejemplo, utilizar el permiso de acceso al carrete de fotos cuando una de las características de la app justifique al usuario su uso, y en ese momento robar todas las fotografías. 


Figura 6: Gremlin Botnets: El club de los poetas muertos

La pregunta es si con el micrófono o con la cámara se podrá realizar algo similar o no, ya que dependerá de cómo se implemente el acceso a ellos, pero si está correctamente implementado, puede ser una medida muy eficaz para detectar a muchas Gremlin Apps. Supón que le das el acceso a la cámara a una app porque desde ella se hacen fotografías para cualquier cosa, pero en un determinado momento no estás haciendo uso de esa característica y ves la luz verde... pues algo turbio pasa.

Figura 7: Icono de acceso a localización desde esta app

Esta medida viene a acompañar la medida de información que teníamos con el icono de localización, que ya implemento en iOS 11, donde se avisa a los usuarios cuando una app está pidiendo el acceso a la ubicación del dispositivo, y que permite saber qué apps te están trackeando y cuando con un sistema de iconos que puedes ver en la barra de estado.

Figura 8: Significado de los iconos de localización

Por supuesto, todas estas opciones de acceso al micrófono, acceso a la cámara y acceso a la localización las puedes configurar y controlar desde las opciones de privacidad y seguridad del sistema operativo iOS, y cuantos menos permisos des a las apps que corres en tu iPhone, mejor que mejor. Menos datos de tu vida personal has dado, y menos accesos a tus datos privados das.

Saludos Malignos! 

Autor: Chema Alonso (Contactar con Chema Alonso)

miércoles, enero 30, 2019

El bug de FaceTime, la indolencia mediática y la complejidad de la masificación

Al final Apple ha desactivado la opción de las llamadas grupales en FaceTime temporalmente hasta que solucione el bug. Si no te has enterado, ha dado la vuelta al mundo un fallo de seguridad en el servicio FaceTime de iOS & MacOS que permite a alguien escuchar por el micrófono e incluso verle con la cámara aunque no haya contestado.

Figura 1: El bug de FaceTime, la indolencia mediática y la complejidad de la masificación

El bug se publicó en 9to5Mac con un vídeo que lo demostraba con el micrófono, y poco después se publicaba un tweet que explicaba cómo conseguir activar también la cámara. Al poco tiempo Apple desactivó las llamadas grupales hasta que pudiera corregirlo.


Figura 2: Demo del Bug de FaceTime

Que se haya descubierto y publicado el día 28 de Enero - Día Internacional de la Protección de Datos - ha sido una bonita metáfora del mundo al que vamos, donde cada día hay nuevos fallos de seguridad y nuevas filtraciones de datos, contraseñas, caídas de servicios, etcétera. Y que haya sido después de que la campaña de iPhone en el pasado CES fuera "Lo que pasa en tu iPhone se queda en tu iPhone" ha sido karma.


Lo más significativo es que cuando leí la primera noticia no me inmuté. Seguí con mi vida. Ya he pasado por muchos bugs y casos similares. Y no solo yo, sino la gran mayoría del público. Es así, ya casi ni nos inmutamos, y esto pasa por tres sencillas razones que puede que nos gusten o no.
1.- Indolencia mediática: El público en general ya no sabe diferenciar entre los cientos de nombres de botnets, operaciones de hacking, cibercrimen, incidentes en el mundo industrial, ransomware, bugs de WhatsApp, Twitter, leaks de Facebook, apps que filtran datos, etc.. No sé ni cuántas veces he hablado de un bug o un fallo en un servicio o un software. ¿Quién se acuerda del bug de WhatsApp Call o de retransmisión de mensajes?
Casos como el de Cambridge Analytica ya están olvidados para la gran mayoría del público que no recuerda - ni le preocupa en demasía - si hubo intervención externa para manipular votaciones como la del Brexit o las elecciones presidenciales en EEUU por medio de ataques de Fake News.
Estos casos - de todo tipo - aparecen, se expanden en una gran ola mediática, y en poco más de dos semanas a todo el mundo se le olvida. Habrá nuevas noticias de índole similar que volverán a aparecer. El público en general está desarrollando una indolencia a este tipo de noticias que se quedan en una charla de café, comentario en el bar, o post en un blog. ¿O alguien espera que la gente vaya a tirar sus iPhone o Mac a la basura por esto? 
2.- Aceptación de la complejidad: El volumen de código que existe hoy en día es enorme. Desarrollar algo como un iPhone o un MacOS, con todas sus aplicaciones y servicios de backend, implica una cantidad de código enorme, que además cambia constantemente. Cada mes hay nuevas actualizaciones que cambian el código. Esas actualizaciones hacen que las variaciones de una versión 1.3 a una 1.4 signifiquen cientos de miles de líneas de código máquina diferentes. Y eso implica que los equipos de Quality Assurance tenga que volver a probar todo como si fuera nuevo.  
Es muy complicado controlar todo, por mucho que la gente se crea que se puede hacer un terminal móvil invulnerable. Hace unos años di una charla que lleva más de 1.3 millones de visualizaciones llamada "Tu iPhone es tan (in)seguro como tu Windows" que intentaba explicar esa complejidad.

Figura 4: Tu iPhone es tan (in)Seguro como tu Windows
Como os podéis imaginar, una simple línea de código puede meter un fallo que no existía hasta el momento. Recuerdo el bug del GoTo Fail de iPhone  - que seguramente el gran público habrá olvidado  - donde una línea copiada dos veces se cargaba la seguridad de todo el sistema. ¿Fue un fallo voluntario o intencionado en el módulo de criptografía para poder espiar las comunicaciones
El caso es que como en el GoTo Fail - que pudo ser un simple Copy & Paste desafortunado - en este puede que los equipos de QA hayan probado este proceso cientos o miles de veces en versiones anteriores, y nunca se había dado este fallo. Así que no estaba localizado en la lista de Test de Regresión donde se prueban los bugs que se conocen del pasado. Pero alguien inyectó el fallo en algún momento y un usuario se topó con él. 
De hecho, el libro de Hacking iOS: iPhone & iPad que escribí junto a otros compañeros tiene una larga lista de pequeños bugs, leaks, técnicas de ataque, etcétera que se pueden encontrar en un iPhone.
Figura 6: Libro de Hacking iOS:iPhone & iPad
¿Se podría haber evitado? Pues es el típico fallo que se analiza en un post-mortem y se ve si se puede cambiar algún proceso o añadir algún control más. Pero eso tampoco garantizará que aparezcan nuevos fallos, porque el hardware crece y se hace más complejo, el software crece, y se hace más complejo, y esta complejidad hace que las posibilidades de que aparezca más rincones donde se pueda inyectar un fallo crezcan. Los que trabajamos en seguridad lo tenemos asumido.
3.- Masificación de los servicios: Hoy en día, el "stickiness" o lo casados que estamos con ciertos servicios en Internet es muy alto. Cambiar tu vida digital de un día a otro, dando un bandazo en un momento de enfado, es posible "relativamente". En sistemas operativos móviles no hay muchas alternativas si quieres estar en las plataformas de apps para las que se diseñan juegos. 
En Redes Sociales, en servicios de comunicación de mensajería, en servicios básicos de uso diario de la mayoría de las personas, las alternativas son muy pocas.  Es el mundo de Internet: "The winner takes it all" que se suele decir. 
Así que cuando sale un bug en WhatsApp, Facebook, Twitter, FaceTime, Android, iOS, Windows, o cualquier otro software o servicio de uso masivo, lo único que podemos hacer es presión para que se arregle pronto o para que pongan nuevos controles. Poco más.
Así que, sabiendo que este es el mundo en el que vivimos, y que cambiarlo va a ser complicado, debemos seguir trabajando en reducir el número de bugs, en que no sean fáciles de explotar y en que su tiempo de vida sea menor. Por esa es tan importante la labor de los hackers e investigadores de seguridad que hacen Responsible Disclosure y ayudan a que los fallos se vayan corrigiendo. Es el mundo que tenemos, así que tenemos que entender que los cambios van a ser muy poco a poco y que, por desgracia, además de poder mejorar también podemos ir a peor.

Saludos Malignos!

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares