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

domingo, agosto 24, 2025

Las ilusiones de las ilusiones que generan alucinaciones en los modelos visuales de inteligencia artificial

Las ilusiones visuales se producen cuando, para entender mejor nuestro alrededor, nuestros cerebros nos engañan manipulando el mundo que vemos. Es una confusión, o alucinación de nuestro cerebro, provocada por la re-interpretación de los estímulos visuales que hace nuestro cerebro. Líneas que parecen de diferente tamaño según cuál es la forma de los extremos, círculos que parecen más grandes o más pequeños en función de lo que les rodea, o dibujos que parecen cabezas de patos o conejos según se orienten. Es un mundo de ilusiones que llevamos años investigando como parte del camino de descubrimiento de cómo funciona nuestro órgano más desconocido - aún - "el cerebro".
En el mundo de la Inteligencia Artificial de los Modelos Visuales tienen que lidiar también con ellos, pero lo peculiar es que en ellos su cerebro no funciona como el nuestro. Clasificar imágenes es un proceso de clasificación, que bien podría ser un algoritmo de Machine Learning, sin una re-interpretación del mundo según se vea la imagen. Pero aún así, tienen que convivir con nuestra percepción del mundo.

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

Los modelos de IA no pueden ver nuestras Ilusiones, aunque ellos tengan Alucinaciones, pero deben saber que nosotros las vemos, por lo que deben reconocer que están ante una imagen de una Ilusión y a partir de ahí entender lo que le estamos preguntando, lo que queremos que razone, etcétera. Esto, genera una situación un tanto curiosa, como hemos visto en el artículo titulado: "The Illusion-Illusion: Vision Language Models See Illusions Where There are None" porque para reconocer nuestras ilusiones, su proceso de entrenamiento acaba llevándolos a ver ilusiones donde no las hay.
Al final, lo que sucede es que para reconocer que está ante una de nuestras ilusiones, se entrena el modelo con datos, y consigue reconocer la ilusión cuando la ve. Pero, la gracia está que, cuando se encuentra frente a una imagen que tiene similitud con la imagen de nuestra ilusión, la reconoce como si fuera la ilusión... y falla estrepitósamente.
En el artículo del que os estoy hablando, los investigadores han generado imágenes que son ilusión de la ilusión o Ilusion-Ilusion en el paper, y ha probado cómo se comportan los diferentes modelos visuales de los principales MM-LLMs que tenemos hoy en día.
Además de la probar la imagen de la Ilusion y de la Ilusion-Ilusion, han creado imágenes de Control que son justo la parte que deben evaluar para responder a la pregunta y detectar si es una ilusión o no. Es decir, dejando la parte clave de la imagen para eliminar el efecto de ilusión que provocan los elementos accesorios en nuestro cerebro.
Y ahora, con cada grupo de ilusiones, a probar cómo lo reconocen los principales Multi-Modal LLMs que tenemos hoy en día, donde los resultados son bastante curiosos.  Primero con el Basic Prompt, que es la pregunta que se le haría a una persona para ver si cae o no en la ilusión. Son prompts donde no se le dice que hay una ilusión, y tiene que detectarla. 


El grado de acierto con las imágenes de ilusiones es alto en GPT4, Claude3 y Gemini Pro, y más bajo en el resto, pero de igual forma estos mismos fallan mucho con las Ilusion-Ilusion donde cree que son ilusiones y no responden correctamente a la pregunta. Y con las imágenes de Control entre medias de ambos resultados. 
En la Figura 8 tenéis los resultados diciéndoles en el Prompt que es una ilusión, para encaminarles - correcta e incorrectamente - en cada petición. Cuando se dice que es una ilusión, aciertan mucho más en las que realmente son una ilusión, pero fallan mucho más aún en las Ilusion-Ilusion y en las Imágenes de Control, con lo que su grado de acierto es bastante pequeño. 
En la última imagen, tenéis fallos llamativos usando el Basic Prompt con las imágenes de Control en Gemini Pro, GPT-4o y Claude 3, donde queda claro que las imágenes de entrenamiento ha hecho que les lleve a tener este tipo de "Alucinaciones" inesperadas. Al final tiene que ver con el Potemkin Rate, porque parece que reconoce bien y no cae en las alucinaciones, pero es justo al contrario y cae en Hallucinations por culpa del entrenamiento para reconocer Illusions.
¿Se podría sacar uso a esto de forma maliciosa? Pues no sé, pero tomar decisiones en un sistema de navegación con Modelos Visuales de IA como los que tenemos en Automóviles, Drones o Aviones, puede ser un verdadero problema de seguridad física. Ya vimos cómo se podía hackear un Tesla con Pegatinas en la DefCon de hace años, y esta debilidad seguro que tiene aplicaciones "prácticas".
Si te interesa la IA y la Ciberseguridad, tienes en este enlace todos los postspapers y charlas que he escrito, citado o impartido sobre este tema: +300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


miércoles, abril 06, 2022

La Comisión Nacional del Mercado de Valores quiere que Facebook y Google bloqueen los anuncios de Falsos Brokers

Y por supuesto, para capturar muchas víctimas, utilizan las técnicas de Digital Sales más efectivas, como poner campañas de advertising a través de Google Ads - que llega a los confines de Internet más adecuados, incluso en los periódicos de tirada nacional que les revenden inventario - o en las redes sociales como Twitter, Facebook o Instagram. No hay nada como un poco de Growth Hacking para conseguir más víctimas

Al final, esto ha sido una masacre, y en agosto de 2021 la Guardia Civil contabilizaba más de 35.000 casos de estafados con criptomonedas y falsos brokers en un fraude de más de 250 Milones de Euros. Una salvajada que yo mismo he visto de cerca, pues muchos han contactado conmigo por mi buzón de MyPublicInbox a contarme su caso y aquí puedes leer muchos de ellos. Una auténtica pena.
Para evitar el impacto de estos estafadores, la CNMV quiere que Google y Facebook, le pongan freno a estos estafadores prohibiendo sus anuncios en sus redes sociales, algo que por ahora no están haciendo, con lo que es fácil capturar víctimas usando campañas Data-Driven en estas plataformas.



Por el contrario, Twitter sí que está poniendo freno a esto, y aunque de vez en cuando se cuela una campaña de estas características, todas las denuncias que yo he puesto, las han ejecutado a la primera y los han eliminado ipso facto
De hecho, en las políticas de Twitter for Business de Productos Financieros son muy estrictos y no es fácil ser elegible para el programa de Twitter Ads.
Y según publica El País en su edición de ayer, Rodrigo Buenaventura, presidente de la CNMV dijo en una intervención púbica:

“Les estamos pidiendo que, mediante la autorregulación, se comprometan a que sus redes o páginas no sirvan de vehículo de difusión de engaños y posibles delitos a cambio de aumentar sus ingresos. Pero si no lo hacen, si no asumen su responsabilidad, nosotros ejerceremos la nuestra proponiendo al Gobierno que analice una nueva regulación en España, para prohibir y sancionar este tipo de prácticas”.

Y no puedo estar más de acuerdo. Es una pena lo fácil que es para un Falso Broker es parecer una entidad regulada y de confianza usando campañas de Ads que los sacan junto a noticias serias de medios generalistas, solo por el hecho de venir de una plataforma de anuncios como Google, Facebook u otra similar.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


martes, marzo 15, 2022

"Cognitive Services & Cyber Security: Ideas Locas": Primera Parte

Los Cognitive Services llevan tiempo desarrollándose, consiguiendo el reto de convertirse en una pieza fundamental en la construcción de tecnología de hoy en día. Estos servicios se han aprovechado de la evolución exponencial que ha sufrido la Inteligencia Artificial en la última década, ya que entro de las capacidades de utilizar sistemas de IA para resolver problemas complejos, hay toda una rama dedicada a construir modelos y tecnologías que resuelvan los problemas cognitivos que resolvemos los humanos.

Figura 1: "Cognitive Services & Cyber Security: Ideas Locas": Primera Parte

Para un humano son problemas que resolvemos con relativa facilidad en nuestro motor de inteligencia – el cerebro – utilizando nuestros sensores de entrada y salida de datos: la vista, la voz, el oído, el tacto y el gusto. Son estas disciplinas de Visión, Habla, Razonamiento o Escucha, las que han estado desarrollándose durante los últimos años a una velocidad increíble. En el mundo de la computación, durante muchos años los humanos hemos aprendido los interfaces de la tecnología y gracias a los servicios cognitivos conseguimos que la tecnología aprenda los interfaces de los humanos.

Paridad Humana en Cognitive Services

Eso se debe al nivel de madurez que tienen hoy en día estos Cognitive Services. Existe una unidad de medición de la calidad de los modelos de Inteligencia Artificial para Servicios Cognitivos que se llama “Paridad Humana”. Se utiliza la Paridad Humana como barrera de medición de la tasa de error de los seres humanos en una disciplina cognitiva. Y decimos que si un servicio cognitivo se equivoca menos que la media de los seres humanos en esa misma disciplina, entonces es que ese servicio ya ha superado al ser humano y alcanzado - y superado - la Paridad Humana.

Imaginemos un servicio de atención de llamadas telefónicas. Imaginemos ahora que tenemos un equipo de humanos con Servicios Cognitivos de reconocimiento del habla en inglés para todos los ciudadanos que hablan en esa lengua en ese país. La tasa de veces que ese equipo de humanos falla al reconocer una frase de otros humanos es superior al que tendríamos si pusiéramos una Inteligencia Artificial a reconocerlos. Y es que la Paridad Humana en Speech Recognition en lengua inglesa se superó ya en el año 2017

Figura 2: Paridad Humana en Speech Recognition

Ejercicios similares han ido pasando a lo largo de los últimos tres años. Fue ya en el año 2015 cuando los servicios cognitivos de Artificial Vision superaron la Paridad Humana en reconocimiento de objetos. Y hace no más de un año y unos meses, en Enero de 2018 se superó la Paridad Humana en Comprensión Lectora. Sí, puedes dar un texto a una Inteligencia Artificial y hacer todo tipo de preguntas que se pueden extraer de ese texto en base a la información que en él existe y empezar a preguntarle. Su tasa de error es menor que la de los seres humanos. 


Figura 3: Skype Translator powered with Cognitive Services

En Marzo de 2018 se consiguió superar la Paridad Humana en traducción inglés-chino, y supongo que a todos os emociona ver el uso de esta capacidad en Skype para que en tiempo real dos niñas de México y Estados Unidos se comuniquen sin barrera de idioma de por medio. Y en 2019 una Inteligencia Artificial del Proyecto Alter EGO superó la Paridad Humana en lectura de labios, como en la película de 2001: Una odisea en el espacio.

Figura 4: AlterEgo, desarrollado por el MIT Lab

Y esto se está masificando y comoditizando, generando una serie de posibilidades en mundo de la ciberseguridad, que es de lo que vamos a tratar en este artículo centrado en justo eso, en Cognitive Services & Cyber Security

Cognitive Services & Cyber Security

La primera de las posibilidades es la de encontrar "bugs" de seguridad o privacidad explotando comandos cognitivos, en lugar de comandos SQL o JavaScript, ya que los nuevos interfaces son humanos.

La segunda de las posibilidades consiste en auditar el uso de un Cognitive Service, ya que tenemos un serio problema de explicabilidad de muchos modelos de IA, y estos pueden venir con sesgos, con errores funcionales, o incluso con defectos estructurales solo por un mal entrenamiento o un mal curado de datos. 


Figura 5: BladeRunners & Virtual Replicants con DeepFakes

La tercera de las posibilidades consiste en cómo utilizar estos servicios para crear esquemas de ataque - como en el ejemplo de las DeepFakes que hemos tratado en profundidad en la charla y el artículo de Blade Runners & Virtual Replicants, donde los servicios cognitivos son claves en la construcción de los modelos de IA que se utilizar para suplantar. 

Y la última de las posibilidades es cómo podemos utilizar estos servicios cognitivos para darle una vuelta de tuerca a los servicios y herramientas de seguridad, para crear nuevas posibilidades, o dotar de interfaces humanos a la creación de procedimientos de pentesting.

Interfaces Cognitivos como forma de ataque

Dejando atrás el mundo de las DeepFakes, los Blade Runners y los Virtual Replicants, de los que hemos escrito y hablado mucho - y habrá que volver a hacerlo que este es un mundo en completa evolución -, lo primero de lo que hay que hablar es de cómo se utilizan los Cognitive Services como interfaz de ataque a la privacidad y seguridad de los usuarios. En lugar de utilizar inyecciones de comandos SQL, se puede construir todo un conjunto de comandos de voz, por ejemplo, para atacar la privacidad o la seguridad de una tecnología con un interfaz cognitivo basado en la voz. 


Por ejemplo, los ataques a iPhone utilizando Siri se popularizaron desde el principio, consiguiendo poder ver la lista de contactos, publicar en Facebook, leer tus mensajes de WhatsApp, o averiguar quién era el dueño de un terminal y obtener su dirección de correo electrónico solo con preguntarle a Siri "¿Quién soy yo?", lo que llevaba a poder hacer robos de cuentas a dueños de iPhone con un sencillo truco de bar.

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

De hecho, si hay un sistema cognitivo que ha sufrido este tipo de ataques es, por impacto en el mundo, Siri de Apple. Nosotros le dedicamos un capítulo entero en el libro de "Hacking iOS: iPhone & iPad" , y basta con ir a la base de CVE del Mitre para ver que hay catalogados 58 expedientes de seguridad que afectan a la privacidad y seguridad de los usuarios de iPhone por problemas concernientes a los límites de los comandos cognitivos cuando el terminal está bloqueado. Y a esos, hay que sumar los leaks que no tiene CVE pero que se hicieron públicos en la red.
Si vamos a Alexa, también tenemos situaciones similares. El que la conexión de la cuenta de Alexa con la tienda de Amazon sea tan profunda, lleva a situaciones como las que hemos contado en artículos anteriores. Un visitante - o vecino - podría pedir que te agregaran productos a la tienda, configurasen alertas despertador, y hasta comprar objetos en modo susurro. No son grandes problemas de seguridad, porque se pueden restringir, pero sí que son límites a la privacidad y seguridad que se explotan solo con hablar con el dispositivo. 


Son muchos más los escenarios que te puedes encontrar para atacar una plataforma utilizando la voz, o explotando un chatbot, o engañando a un sistema de visión artificial. Nosotros hicimos el experimento de cómo troyanizar un iPhone con el lenguaje Klingon cuando tienen el interfaz de voz activado, y son famosos los ataques a los sistemas de visión artificial de Tesla en AutoPilot, permitiendo robar coches. Ahí no hay ningún SQL Injection, solo unas imágenes especialmente construidas para engañar al Cognitive Service de Artificial Vision que utiliza Tesla en AutoPilot.


Figura 10: Vídeo de ataques a la Visión Artificial de Tesla Autopilot

En las siguientes partes iremos viendo algunas de las ideas en forma de PoCs que hemos ido construyendo en el equipo de Ideas Locas, donde nuestro objetivo es ir jugando con la tecnología para ver qué podemos esperar de ella, qué debemos introducir en nuestros productos, o qué aprendizaje sacamos de cada uno de estos experimentos. 

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


martes, abril 16, 2019

Jugando al Mario Kart con los coches Tesla. ¡Mamma Mia! (Parte 2 de 2)

Como vimos en la primera parte de este artículo, hasta el momento hemos descrito varios ataques con éxito, pero ahora hay que ver como se podía conseguir atacar a la red neuronal para manipular el sistema de visión artificial del sistema Autopilot de Tesla que detecta la línea de tráfico.

Figura 11: Jugando al Mario Kart con los coches Tesla.
¡Mamma Mia! (Parte 2 de 2)

Para ello, como hemos dicho al final del primer artículo, se utilizaron dos tipos de ataques distintos al sistema de detección de carril en el Autopilot de Tesla que vamos a ver a continuación.

Ataques a la detección de carril en Tesla Autopilor

El primero de ellos llamado Eliminate Lane Attack (Ataque de Eliminación de Carril) tiene como objetivo que el reconocimiento de carril se desactive utilizando algún tipo de marca en el mundo físico. Los ataques que se generaron en el mundo digital se basaban en la distorsión de los pixeles, algo que es complicado de realizar en el mundo físico sin tener realmente comprometido todo el sistema de control de Tesla.

La aproximación principal para lograrlo se basaba en una premisa: la mayoría de la información recogida por la cámara no es útil para el reconocimiento del carril. Es decir, el proceso de la red neuronal que detecta la línea se centra exclusivamente en el carril y una porción del área que le rodea.


Figura 12: Enseña a tu AI a jugar con OpenAI y Deep Learning

La reducción de la complejidad de la imagen es una técnica habitual en el proceso de imágenes utilizando Machine Learning, mi colega Enrique Blanco Henríquez y yo la utilizamos en su día en el blog de LUCA para enseñar a una IA a jugar a Breakout.

Figura 13: La imagen de la izquierda muestra cómo se añadieron algunos
parches en la línea izquierda de la calzada y en la parte derecha se muestra
cómo el vehículo no detectó el retro de la línea.

Así que, y ahora viene la magia, después de varios experimentos se dieron cuenta que agregando recuadros de pixeles de diferentes tamaños en ciertos puntos de dicha imagen del carril y además alterando los bordes de las líneas es posible desactivar el APE (recordemos que es el Tesla Autopilot). De todas formas, este ataque demostró que el sistema APE es bastante robusto y, además, los cambios que hay que realizar en la calzada son demasiado llamativos, por lo que tanto el conductor como el APE podrían detectarlos fácilmente.

El segundo ataque se llamó Fake Lane Attack o Ataque de la Carril Falso y éste tuvo más éxito. Esta vez el objetivo no era desactivar el piloto automático, sino llevar el vehículo hasta donde queramos, como, por ejemplo, cambiar de carril utilizando marcas simples en la calzada. En el modelo digital se dieron cuenta previamente que añadiendo pequeños pixeles uno detrás de otro separados por una cierta distancia en forma lineal, el sistema de visión los detectaba como una línea de carril (ver Figura 14).

Figura 14: Colocando marcas blancas en la calzada se aprecia en la imagen
de la derecha como el vehículo detecta una línea completa donde no existe.

Este modelo digital de ataque adversario es más sencillo de implementar en el mundo real ya que sólo necesitaron colocar pequeñas pegatinas blancas de la misma forma de distribución que en el modelo digital. De esta forma consiguieron que el vehículo siguiera la trayectoria que ellos marcaron en el suelo.

Controlando el Tesla con un mando de videojuegos

Este ataque es más un problema de seguridad de acceso y explotación de vulnerabilidades a los sistemas de los vehículos Tesla. El equipo encontró que después de conseguir acceso root a la ECU (Engine Control Unit) era posible controlar el coche con un mando de juegos Bluetooth. Pero ¿cómo lo consiguieron?

Pues como muchos otros tipos de ataques, haciendo que el navegador principal del Tesla (basado en WebKit) abriera una página maliciosa. Para entender el ataque primero tenemos que ver cómo funciona y como está interconectada la CAN (Controller Area Network) bus del sistema APE, tal y como hemos explicado que hacían otros ataques en la primera parte de este artículo.

Figura 15: Esquema del sistema CAN bus de Tesla.

El sistema APE tiene dos buses principales: CAN1, el cual interconecta los radares del vehículo y CAN0, el cual junto a LB, un dispositivo que actúa a modo de gateway o pasarela de red, el cual soporta protocolos Ethernet y CAN, actúa como sistema de seguridad redundante principalmente.

También existe un bus lógico llamado APE2LB_CAN que interconecta APE con LB, el cual sirve para interconectar APE con dos canales interesantes, PT (PowerTrain) y CH (Chasis). Este último, CH, es la clave de todo el sistema, ya que desde este bus es posible controlar la dirección del vehículo. Pero observando el esquema, es obvio que antes de acceder a él hay romper algunas barreras del mecanismo de seguridad.

Para ello se centraron en un servicio llamado cantx el cual recibe señales intermedias desde el sistema de visión artificial que después las transforma en señales de control del vehículo. En canal de recepción de estos mensajes es el bus lógico APE2LB_CAN y luego son enviados directamente a los buses antes mencionados, PT y CH, siempre a través de la unidad LB (utilizando el protocolo UDP). Aquí es donde entra DSCM o DasSteeringControlMessage, mensaje encargado de controlar el sistema de dirección del vehículo. Este es su formato:

Figura 16: Definición de la estructura DSCM.

El ángulo de giro se define con 2 bytes en angle, counter es un contador de 6 bits que se incrementa cada vez que entra un mensaje, control_type (2 bits) indica el tipo de mensaje enviado por el CAN y finalmente checksum (1 byte) que se autodefine por si mismo. Ahora que ya conocemos un poco más cómo funciona el sistema CAN bus de APE, vamos a ver cómo consiguieron el control de la dirección del vehículo.

Control de dirección de Tesla

Para lograr controlar la dirección de los autos Tesla, inyectar directamente mensajes maliciosos tipo DSCM desde el APE al LB no funciona, ya que DSCM está protegido con una marca temporal o timestamp, el contador y un sistema de redundancia CAN llamado PARTY CAN-bus. Finalmente, el método que funcionaría sería inyectar de forma dinámica código malicioso en el servicio cantx y engancharlo con una función llamada:
DasSteeringControlMessageEmitter::finalize_message()
la cual permitiría rehusar el timestamp y el valor del contador. De todas formas, la clave final se encuentra en el valor del control_type del DSCM. Si se asigna el valor 0x01 y el APE2LB_CAN también se pone a 0x01 indicará que el destino final será el bus CH.

Figura 17: Esquema completo de la implementación final del ataque.

Finalmente utilizaron un mando de juegos conectado a un teléfono móvil, el cual se encargaba a su vez de recibir la señal para luego convertirlas, utilizando el procedimiento que se ha descrito anteriormente, a señales DSCM maliciosas a través de WiFi o 3G. De esta forma es posible controlar la dirección del coche con un simple mando de consola, igual que Mario Kart ;)

¿Qué futuro nos espera respecto a la seguridad de los vehículos autónomos?

Este paper es un gran trabajo que mezcla seguridad informática y técnicas de Machine Learning utilizando DNN, no podemos pedir más. Recomendamos su lectura en profundidad para aprender cómo realizar una ingeniería inversa completa a un vehículo Tesla, tanto de su parte de control como de su cerebro artificial. Tenemos que recordar de nuevo que Tesla corrigió estas vulnerabilidades en dos parches de seguridad que sacaron en 2017 y 2018, sobre todo el que permitía el control remoto del vehículo. El resumen lo tienes en este vídeo que publicaron en Youtube.


Figura 18: Vídeo del trabajo de Tencet Security Research sobre Tesla Autopilot

El otro ataque de las pegatinas en el asfalto no queda del todo claro si fue resuelto ya que Tesla lo tacha de ataque “no realista”. Y en parte tienen razón, ya que el piloto automático se puede desconectar en cualquier momento y fundamentan que el conductor puede tomar el control del vehículo simplemente pisando el freno o agarrando el volante en cuanto detecte la situación de riesgo.

O sea, que parece que funciona, lo que no queda claro es qué pasará cuando no haya conductores humanos en frente del volante para reaccionar a tiempo y seamos simples pasajeros …


Una cosa es segura, Kevin Mitnick y Chema Alonso se lo pensarán dos veces antes de activar el Autopilot de Tesla la próxima vez que se encuentren en EEUU ;)

Autor: Fran Ramírez, (@cyberhadesblog) es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.

lunes, abril 15, 2019

Jugando al Mario Kart con los coches Tesla. ¡Mamma Mia! (Parte 1 de 2)

Todos hemos jugado alguna vez al fantástico juego Mario Kart de Nintendo. En él, controlamos un vehículo utilizando un mando de juegos en una carrera dentro de un circuito el cual también encontramos repartidos diferentes objetos que nos permiten obtener ventajas (como, por ejemplo, más velocidad) algunos de ellos impresos en la misma carretera.

Figura 1: Jugando al Mario Kart con los coches Tesla.
¡Mamma Mia!(Parte 1 de 2)

Bueno pues parece que ahora controlar un vehículo Tesla con un mando de juegos al más estilo Mario Kart y además añadir marcas en la carretera para engañar al piloto automático (Autopilot) ya es posible, al menos es lo que cuenta este paper titulado "Experimental Security Research of Tesla Autopilot".

Figura 2: "Experimental Security Research of Tesla Autopilot"

Vamos analizar en detalle este interesante documento, mezcla de ingeniería inversa, exploits, vulnerabilidades y Machine Learning. Recuerda, si quieres conocer algunos conceptos y técnicas relacionados con la seguridad y Machine Learning, nada mejor que nuestro libro, "Machine Learning aplicado a la Ciberseguridad: Técnicas y ejemplos en la detección de amenazas"

Figura 3: "Machine Learning aplicado a Ciberseguridad" de 0xWord

Hacking de Autos

Ya hablamos en su día de diferentes formas de hackear autos. Nuestros compañeros hablaron de cómo hackear un BMW i8 - mira que es difícil de encontrar uno de estos, y les dio por este modelo concreto - utilizando un software inyectado para tomar control del CANBus, y hoy en día hemos hablado de herramientas como CANAlyzat0r para buscar vulnerabilidades en CAN Bus.


Figura 4: Hackeando CANBus en automóviles

Centrados en Autopilot, hablamos de cómo los vehículos autónomos podían ser hackeados utilizando falsas señales de tráfico que confundieran a gusto del atacante su sistema de Artificial Vision. Ahora un equipo de investigadores de la empresa china Tencent Keen Security Lab han contado en el paper que hemos mencionado antes, varios hacks un vehículo Tesla.

El primer hack explica cómo es posible engañar a las redes neuronales de los coches Tesla utilizando pegatinas en la carretera, muy similar a la técnica de las señales falsas. El segundo hack explica cómo han conseguido infiltrarse en el piloto automático (APE) donde además han llegado a controlar el ECU (Engine Control Unit), es decir, la unidad que controla el motor, lo que se traduce en llegar a tener acceso total de forma remota a los mandos de control del vehículo.

Antes de continuar, tenemos que destacar que estos problemas (los cuales algunos son de 2017 y 2018) ya han sido parcheados y solucionados por la empresa del gran Elon Musk (ahora es cuando se ha hecho público todo el resultado de la investigación, la cual antes fue reportada a Tesla para que solucionara). Es más, el mismísimo Elon ha felicitado a los investigadores en una actitud que no todas las empresas tienen hacia aquellos que encuentran vulnerabilidades en sus productos.

Figura 5: Tesla Model S

En principio, esta investigación sólo afectaba (al menos este ha sido el único modelo donde se ha realizado la investigación) al Tesla Model S 75, con un hardware de piloto automático versión 2.5 y una versión de software 2018.6.1.

Cambiando la trayectoria del Tesla usando pegatinas en el suelo

El sistema de reconocimiento visual de Tesla con el piloto automático funciona realmente bien en casi cualquier condición (aunque no está recomendado en casos intensos de nieve, lluvia, niebla, etcétera). Existen cientos de vídeos que lo demuestran, pero al ser un sistema de visión puro, la información recibida requiere ser analizada y procesada antes de pasar a las complejas redes neuronales del Tesla.

Es decir, la cámara (o mejor dicho, las cámaras) HDR de 12bits (posiblemente una RCCB) obtiene las imágenes en RAW, lo que significa no se procesa la información durante su captura. Por lo tanto, necesita de un pre-procesado antes de llegar a la red neuronal correspondiente. Esas imágenes se copian directamente en una memoria compartida desde una función llamada tesla:TslaOctopusDetector::unit_process_per_camera la cual se encarga de procesar cada imagen ajustando algunos parámetros como son el tono, nivel de detalle, etcétera.

Todas esas imágenes ya procesadas se asignan su red neuronal correspondiente las cuales se encargarán de diversas funciones, como por ejemplo controlar el coche, analizar objetos, las líneas en la carretera, crear mapas de los alrededores, etcétera. Los investigadores se centraron las DNN (Deep Neural Networks) que se encargan del reconocimiento de las líneas de la carretera y el algoritmo que mantiene el vehículo siguiendo dichas líneas (Autosteer).

Figura 6: Esquema de las conexiones entre el APE (Tesla Autopilot)
y el resto de componentes del vehículo tal y como aparece en el paper.

Para esta función de reconocimiento de líneas y Autosteering, Tesla utiliza una sola gran red neuronal con varias salidas diferentes, en vez de usar una específica para cada acción concreta. La detección de las líneas de la carretera es una de estas acciones que utilizan una gran única red neuronal con múltiples salidas.

Una vez la imagen se ha procesado, se introduce en dicha red neuronal y una vez obtenido el output (salida), esta se envía a una función llamada detect_and_track la cual llamará a diferentes kernels CUDA para realizar diferentes funciones como comprobar los bordes de la línea para ver si están borrosos, añadir máscaras a los bordes de las líneas, ajustar las líneas a una rejilla virtual (generada a partir de la red neuronal que se encarga de mapear el entorno en un mapa virtual), añadir puntos de control en las líneas, etcétera. El siguiente cuadro resume todo el proceso de reconocimiento:

Figura 7: Ejemplo del procedimiento de reconocimiento de imagen,
en este caso de una línea en la calzada.

Antes de poder aplicar cualquier tipo de ataque basado en las imágenes recibidas, es necesario probar el rendimiento y estudiar el funcionamiento de los algoritmos en un entorno digital (antes de pasar al mundo real). Para ello utilizaron algoritmos “adversarios”, una técnica de Machine Learning cuyo objetivo principal es engañar un modelo concreto y su salida correspondiente a través de cambios y manipulaciones en la entrada de la información.

Figura 8: Paper que explica los ataques de Zeroth Order Optimization

Comenzaron con el sistema que detecta la lluvia (el cual utiliza una cámara en vez de un sensor) inyectando diferentes modelos de “ruido” y en concreto un tipo de ataque llamado “Zeroth Order Optimization” (ZOO) o también usando ataques de sustitución. Ambos algoritmos tienen que común que modifican la estimación del gradiente, dicho simplificando mucho el término, es algo parecido modificar el vector el cual ofrece la dirección que ofrece la solución óptima.

Figura 9: En este paper se explican los ataques de sustitución

Estos dos métodos tienen el problema de necesitar grandes cálculos lo que finalmente lleva a una tarea computacional demasiado compleja, casi imposible de implementar con resultados satisfactorios. Finalmente optaron por otro método de ejemplo de ataque adversario utilizando DNN con el algoritmo PSO (Particle Swarm Optimization). Este tipo de ataque se basa en generar un enjambre (swarm) de ruido e inyectarlo dentro de las imágenes obtenidas.

Utilizando esta técnica repetidamente contra las diferentes redes neuronales, es posible ir ajustando la puntuación obtenida en la salida de cada una de ellas hasta conseguir el resultado deseado. Además con la ventaja añadida de que dicha distorsión sólo puede ser detectada por una red neuronal y no por el ojo humano.

Figura 10: Ejemplo de inyección adversaria donde confunde a la IA al
Panda con una Llama sin que los cambios sean detectados por el ojo humano.

Por lo tanto, el objetivo final de la investigación es llevar este ataque en el mundo digital con resultado satisfactoria al mundo físico. En el caso de los parabrisas, lo consiguieron simplemente colocando una televisión justo en frente de la cámara que detecta la lluvia en el cristal e ir proyectando diferentes imágenes PSO (este ataque es poco factible implementarlo en el mundo físico en un escenario real). En pocos intentos consiguieron engañar la red neuronal.

En el caso de la detección de la línea, hay que usar un enfoque diferente. De hecho, realizaron dos tipos de ataques distintos que veremos en la siguiente parte.

Autor: Fran Ramírez, (@cyberhadesblog) es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.

sábado, agosto 12, 2017

Vehículos autónomos hackeados con falsas señales de tráfico

Cada día somos testigos de nuevos avances en la conducción autónoma de vehículos. Muchas empresas presentan prototipos y algunos incluso ya lo tienen en producción como Tesla autopilot. Estos vehículos son capaces de analizar el entorno que les rodea y de esa forma conducir por ellos mismos, sin intervención humana alguna.

Figura 1: Vehículos autónomos hackeados con falsas señales de tráfico

Los vehículos autónomos se basan principalmente en la información que recogen multitud de sus sensores. Pero la información más importante, al igual que ocurre con el ser humano, es la que llega a través de sus sensores de visión. En concreto son las cámaras las que recopilan las imágenes para luego ser procesadas por algoritmos de reconocimiento visual y tomar decisiones en base a ellas.

Por lo tanto, si conocemos o simulamos el algoritmo utilizado para clasificar imágenes, se podría manipular la imagen de origen para engañarlo y modificar la acción a realizar por el sistema que esté utilizando dicho algoritmo. Esto es justamente lo que han realizado investigadores de la Universidad de Washington, Michigan, Stony Brook y Berkeley. Han encontrado varias formas de engañar a los algoritmos de visión utilizando técnicas bastante simples como, por ejemplo, colocar pegatinas en las señales de tráfico.


Figura 2: Ejemplo vehículo Tesla en modo autopilot

Para poder “perturbar” el mundo físico y así confundir a la Inteligencia Artificial prepararon dos tipos de ataques que asombran por su sencillez de implementación:
1. Utilizando posters, es posible imprimir una señal, introducir las modificaciones y superponerla a la original. 
2. Utilizando pegatinas, las cuales se colocan sobre señales reales.
Para que dichas perturbaciones no fueran detectadas por observadores humanos, se camuflaron en forma de actos vandálicos típicos como grafitis o mensajes, en el caso de las pegatinas. Para los posters, se imprime la misma señal original, pero se introducen modificaciones muy sutiles y difíciles de ver para un observador humano. Todo esto utilizando sólo una cámara y una impresora a color.

Figura 3: Ejemplo de poster sobre una señal de STOP, a diferentes distancias y ángulos,
con detalles borrosos y difuminados en su superficie que ofrecen otra lectura a la IA

Las consecuencias de esta investigación son realmente alarmantes viendo los resultados obtenidos. Utilizando el método de los posters cubrieron la señal, la cual parece la original, pero se añadieron ligeras zonas un poco difuminadas de forma superficial o sutil simulando algún tipo de pintura hecha con pintura de spray. El algoritmo de visión en función de los ángulos y distancia, podría confundirla con otra señal de limitación de velocidad por ejemplo a 45 millas por hora, provocando que el coche acelerara o directamente no parara en el STOP. También probaron esta técnica en otras señales confundiendo las que indicaban giro con STOP.

Utilizando el segundo método en el cual se utilizan simples pegatinas, las colocaron de manera estratégica en una señal de STOP de forma que formaran la palabra LOVE y HATE. Esta combinación provocaba en más de la mitad de los casos, combinando los diferentes algoritmos de ataque, que la IA encargada de conducir el vehículo pensara que era una señal de limitación de velocidad en vez de un STOP (y algunas veces la confundía con una señal de ceda el paso).

Figura 4: Ejemplo de pegatinas sobre una señal de STOP, a diferentes distancias y ángulos,
con las palabras Love y Hate para disimular pero que ofrecen una lectura distinta a la IA

La pregunta es ¿cómo se puede llegar a realizar este tipo de ataque? Todos los sistemas de visión artificial para vehículos autónomos, tienen dos componentes fundamentales, un detector de objetos y un clasificador. El detector de objetos es capaz de detectar peatones, las luces de la carretera, las señales de tráfico, otros vehículos, etc. El clasificador se encarga en analizar los objetos detectados por el detector e identificarlos (clasificarlos). Por ejemplo, el detector detecta una señal de tráfico en una calle y el clasificador la identifica como una señal de STOP. Es en este clasificador donde se centra el estudio y donde se materializa el ataque.

Por otro lado, hay tres componentes que tienen un gran impacto en el algoritmo clasificador y que serán objetivo principal de los atacantes a la hora de analizar el comportamiento del mismo. Estos son la distancia, el ángulo y la resolución de la imagen. La distancia es importante ya que a medida que el vehículo se acerca o se aleja, va obteniendo diferentes capturas de la señal con mayor o menor detalle y una perturbación añadida en esta fase puede dar varias lecturas en función de la distancia.

El ángulo es también importante, ya que no hay una sola cámara en un vehículo autónomo, por lo tanto, la perturbación en la señal de tráfico debe de ser capaz de engañar al clasificador con capturas tomadas desde diferentes ángulos. Y finalmente la resolución, la cual puede variar por diferentes factores como por ejemplo el clima (lluvia, niebla, etc.) y por lo tanto se podrían obtener diferentes lecturas de la señal original.

Figura 5: Ejemplo de poster sobre una señal de giro a la derecha añadiendo
perturbaciones, a diferentes distancias y ángulos

Para hacer la PoC, crearon su propio clasificador utilizando técnicas habituales basadas en redes neuronales (DNNs, Deep Neural Network). Una base de datos con señales (47 utilizadas en USA) fue utilizada para generar el dataset de entrada. Para entrenar la red neuronal y escribir el clasificador utilizaron herramientas y técnicas ampliamente utilizadas como el famoso Tensorflow y Adadelta. El nivel de acierto del clasificador llegó al 91%.

La principal condición para que este tipo de ataque tenga éxito es que el atacante tenga acceso al clasificador después de haber sido entrenado. Esto que puede parecer complicado, es más sencillo de conseguir de lo que parece en un principio por varios motivos. El primero son las técnicas utilizadas en visión artificial, las cuales son bastante comunes y cuyo acceso a los algoritmos e incluso al código fuente de algunas librerías es abierto y totalmente accesible. Por otro lado, es posible adivinar el modelo utilizado simplemente probando y entrenando un sistema similar y comprobar sus datos de salida.

Para preparar el ataque, se siguieron los siguientes pasos:
1. Obtener al menos una imagen clara de la carretera y de la señal sin ninguna perturbación. 
2. Se extrae la señal desde la imagen tomada en el punto 1 para luego cortarla y separarla del resto utilizando un algoritmo de detección de imágenes o un software específico de recorte de imágenes. 
3. La imagen obtenida y sus resultados en el clasificador son introducidos en el algoritmo de ataque, el cual genera una nueva imagen que será la base para luego introducir las modificaciones. Por ejemplo, marcar, cortar o difuminar la parte que rodea a la imagen. 
4. Una vez añadida la perturbación “ambiental” (en el paper se llama “adversarial perturbation”) en el paso 3, ahora se aplica una función de mapeo que, en función de la ubicación física de señal, indicará dónde colocar la perturbación “digital” (llamada perturbación “digital adversarial”). 
5. Esta perturbación digital se fabrica en función a los resultados obtenidos con la función de mapeo en forma de pegatinas o poster.
Figura 6: Recreación del proceso de identificación de señales realizado por un vehículo autónomo.

A pesar de lo perturbador (y a la vez fascinante) de este ensayo, el cual está aún en una fase muy temprana de desarrollo, pero hay que empezar a tomar nota para el futuro, ahora es el momento de buscar posibles soluciones para intentar evitar este tipo de ataques. Una de ellas pasaría por hacer que el vehículo sepa exactamente en qué ubicación se encuentra y contraste en todo momento la información que está recibiendo de las señales. Por ejemplo, si es una calle dentro del casco urbano, es imposible que haya una señal que le indique un límite de velocidad alto.

Esto es sólo un ejemplo de las nuevas fronteras que se están abriendo en la seguridad, los cuales no sólo los coches autónomos son el objetivo, estas técnicas podrían ser utilizadas también, por ejemplo, en técnicas de Realidad Aumentada, cámaras de seguridad que utilicen también técnicas de IA para el reconocimiento de imágenes y un largo etc. Desde luego, tanto si eres aficionado la seguridad o te dedicas a esto, no te vas a aburrir en los próximos meses o incluso años ;)

Figura 7: Broma de disfraz de radar móvil

PD: Este trabajo recuerda a lo que hace años se hizo muy popular. La bromadonde se disfrazaron de Radar Móvil para engañar a los conductores y hacerles detenerse. El vídeo de hizo muy popular, incluso con la detección de los bromistas.

Autor: Fran Ramírez (@cyberhadesblog) escritor de libro "Microhistorias: anécdotas y curiosidades de la historia de la informática" e investigador en ElevenPaths

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