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.
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:
- Utilizando posters, es posible imprimir una señal, introducir las modificaciones y superponerla a la original.
- 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.
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:
- Obtener al menos una imagen clara de la carretera y de la señal sin ninguna perturbación.
- 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.
- 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.
- 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”).
- 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.