Ingeniería inversa del tráfico en el bus CAN



Señal de



bus CAN sin procesar El bus CAN (Controller Area Network) se ha convertido en un estándar en la industria automotriz: todos los automóviles nuevos deben admitir CAN (desde 2001 en Europa y desde 2008 en EE. UU.). Además de los automóviles, CAN se utiliza en una amplia variedad de otros dispositivos. Fabricantes de equipos de diagnóstico para CAN anuncian su uso, además de diversos equipos de automoción, en motocicletas, carretillas elevadoras, barcos, trenes mineros, batiscafos, aviones no tripulados, etc. Veamos qué es CAN.



Varias CAN se utilizan en vehículos; por ejemplo, en el Ford Focus hay cuatro neumáticos de este tipo: tres de alta velocidad (500 kbps) para controlar el motor, los frenos, el tablero, etc., y uno de baja velocidad (125 kbps) para controlar las puertas, los faros, las bolsas de aire, el sistema de audio, el aire acondicionado y todo. otras cosas. Al conectarse a CAN, puede simular señales de cualquier dispositivo en el automóvil, por ejemplo, controlar el aire acondicionado desde la aplicación en el teléfono o dar cuerda al odómetro sin mover el automóvil. Al conectarse al bus Arduino y al relé, puede controlar una cámara de estacionamiento adicional desde el tablero . Incluso las nuevas empresas que trabajan en automóviles autónomos como Voyage, comience a crear prototipos conectándose a CAN en un automóvil de producción normal y aprendiendo a simular señales de los pedales y el volante.



Para conectarse a CAN en un automóvil, generalmente hay un conector OBD-II (diagnóstico a bordo) cerca del volante.



imagen



Los adaptadores OBD2-USB para conectar una computadora a CAN cuestan desde $ 5 y le permiten rastrear todo el tráfico dentro del automóvil. A veces, el conector OBD-II está protegido por un "firewall de hardware" que le permite recibir paquetes de dispositivos conectados a la CAN, pero no permite que los paquetes se envíen de regreso al bus. En este caso, basta con desenroscar el conector y conectarlo a los cables CAN.







Cada paquete transmitido en el bus CAN consta del ID del dispositivo de transmisión (11 o 29 bits) y hasta 8 bytes de datos transmitidos. El tráfico que pasa por el autobús cuando se enciende la ignición puede verse así:







Existen muchas herramientas para analizar el tráfico CAN, tanto comercial como OpenSource. El paquete can-utils para Linux incluye una utilidad cansnifferque muestra para cada ID de CAN solo el último paquete enviado y, por lo tanto, le permite realizar un seguimiento de los cambios en las lecturas de cada sensor en el bus:







Para la ingeniería inversa del tráfico CAN, los investigadores de Singapur, de cuyo informe tomé este seguimiento, grabaron el tablero del automóvil experimental en video y luego correlacionaron los cambios en el tablero con cambios simultáneos en el tráfico. Habiendo determinado así el CAN ID del sensor de velocidad y el formato de los datos transmitidos por él, aprendieron a “falsificar” sus paquetes, transmitiendo lecturas falsas al velocímetro y al tacómetro.



Debe entenderse que en paralelo con la transmisión de paquetes "falsos", las señales reales del sensor de velocidad continúan transmitiéndose a través del bus. Para que el tacómetro muestre lecturas fabricadas, es necesario monitorear la transmisión de lecturas reales en el bus y suprimirlas de alguna manera; por ejemplo, inmediatamente después de detectar la transmisión de la ID CAN del sensor de velocidad, "amortiguar" físicamente el bus cortando las líneas de datos. Un método más simple, puramente de software, para suprimir lecturas reales es transmitir paquetes "falsos" inmediatamente después de su transmisión, mientras que el tacómetro aún no ha tenido tiempo de reaccionar. Por ejemplo, el siguiente script de shell simple monitorea la transmisión con CAN ID = 0x0C9, e inmediatamente después transfiere el paquete fabricado usando la utilidad cansendde los mismos can-utils:



candump can0 | grep "0C9" | mientras lee la línea; ¿Puede enviar can0 0C9 # 8021C0071B101000; done



Aunque todos los dispositivos del automóvil están conectados a CAN, no todas sus funciones se controlan a través de CAN. Por ejemplo, las señales sobre el grado de presión de los pedales del acelerador y del freno se transmiten a CAN en el Ford Escape, pero estas señales solo las usa la unidad ABS, mientras que los actuadores del acelerador y el freno están conectados directamente a los pedales, sin pasar por CAN.



Desde el punto de vista de la seguridad, no hay duda de alguna vulnerabilidad en el informe de los singapurenses, porque se requiere acceso físico al bus para transmitir paquetes CAN “falsos”. Además, los paquetes se pueden proteger con una suma de verificación; por ejemplo, en vehículos Toyota, el último byte de cada paquete debeigual a la suma de todos los anteriores (módulo 256). Además, Toyota utiliza el filtrado de destinatarios para protegerse contra paquetes no deseados; por ejemplo, ignora los giros de dirección más del 5% del valor actual.



Sin embargo, los investigadores de seguridad lograron obtener acceso remoto a CAN: primero, a corta distancia, a través de vulnerabilidades en un módulo Bluetooth conectado al mismo bus; y luegoa través de la red celular de Sprint, a través de la cual los SUV de varios fabricantes estadounidenses recibieron datos de tráfico. Los investigadores que demostraron la interceptación del control de un Jeep Cherokee desde una distancia de varias millas recibieron una recompensa de $ 80,000 de la Agencia de Proyectos de Investigación Avanzada de Defensa (DARPA). Desde entonces, muchos fabricantes de automóviles han anunciado sus propios programas de recompensas que prometen pagos de $ 1,500 o más por cada vulnerabilidad descubierta. Por lo tanto, la ingeniería inversa del tráfico en el bus CAN no solo puede agregar nuevas posibilidades a su automóvil, sino que también repone significativamente su billetera.






All Articles