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.
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:
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).
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.
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:
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
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 ;)
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
Muy interesante e inquietante. Una puntualización: la broma no fue hecha por unos chavales gallegos o no se corresponde con el vídeo que has puesto. El vídeo que has puesto es de Rémi Gaillard www.nimportequi.com. Un saludo
ResponderEliminarSolo se puede decir una palabra ACOJONANTE
ResponderEliminarInteresante. El vídeo de los chavales gallegos es este https://youtu.be/cy6hGYOMWwo.
ResponderEliminarSaludos.