¿Existe alguna protección contra dispositivos maliciosos en un bus CAN?

10

CAN (red de área del controlador) es un bus utilizado en todos los automóviles modernos. Puede leer una gran cantidad de información sobre los automóviles en este bus y creo (pero no estoy muy seguro de esto) que algunas señales de control críticas (interrupciones, por ejemplo, para ESP?) Superan ese bus.

Sé muy poco acerca de la CAN:

Los dispositivos que se comunican a través del bus CAN deben enviar su identificador antes de comenzar a enviar cualquier otra cosa. El protocolo define que los dispositivos con identificadores inferiores tienen prioridad. El protocolo tiene un "0 dominante", que significa que si un dispositivo pone un 0 en el bus y otro pone un 1 en el bus, el 0 está en el bus. Los dispositivos escuchan todo el tiempo, incluso cuando se envían. Eso significa que un dispositivo que coloca su identificador en el bus que tiene un 1 en alguna posición, pero que lee un 0, sabe que un dispositivo de mayor prioridad también quiere usar el bus y tiene que detenerse.

¿Qué sucede cuando un atacante envía "0" todo el tiempo sobre el bus? Por ejemplo, ¿podría ser posible actualizar el software de la radio de un automóvil para poner "0" todo el tiempo en el autobús? (Consulte Exhaustiva experimental completa). ¿Los análisis de las superficies de ataque automotrices para muchos ataques más sofisticados) o se implementan protocolos de bajo nivel de manera no actualizable (p. ej., hardware o ROM) para que tal ataque no pueda ocurrir? ¿Es posible proteger el bus contra dispositivos maliciosos / este tipo de ataque de denegación de servicio?

    
pregunta Martin Thoma 07.05.2015 - 17:21
fuente

2 respuestas

4

CAN está diseñado para ser relativamente simple y, a menudo, se implementa entre microcontroladores con muy poco poder de procesamiento (que están ocupados haciendo cosas en las que los tiempos son importantes), y se usa para retransmitir mensajes en tiempo real. Agregar un poco de cifrado y protección DoS introduciría demasiada complejidad y dado que solo son dos cables compartidos por todos los controladores, no creo que la protección DoS sea posible en este caso (¿qué va a hacer si un dispositivo deshonesto decide inundarse?) el bus con basura o mantener las líneas de datos "alto" continuamente?).

Una solución parcial sería separar la red en varios buses, como se hace en la mayoría de los autos (¿todos?), donde se usa un bus separado para elementos críticos, y se usan pasarelas para transmitir mensajes específicos entre ellos. El DoS en un solo bus no afecta al otro.

De hecho, es posible reprogramar el firmware de cualquier controlador:

Incluso hay software y hardware fáciles de usar para eso. Esta captura de pantalla en particular muestra un programa capaz de actualizar el firmware de los controladores del motor y los grupos de instrumentos, pero estoy seguro de que lo mismo se aplica a todos los controladores, es solo que la demanda de software capaz de manipular los grupos del motor / instrumento es mayor (por obvio razones) que los capaces de interactuar con el airbag o ABS. Estoy seguro de que los delincuentes están explotando estas fallas y demuestra una vez más que la seguridad por la oscuridad simplemente no funciona.

Si tiene tiempo para realizar una ingeniería inversa del firmware original, puede crear fácilmente su propia versión maliciosa, y todo lo que necesita son 30 segundos de acceso al bus CAN del vehículo (a través del puerto de diagnóstico) para instalar el nuevo firmware. Por supuesto, puede usar la radio como punto de entrada (por ejemplo, explotando vulnerabilidades en sus funciones de decodificación de MP3) para acceder al bus CAN e instalar firmware malicioso en otros controladores. La única seguridad es la oscuridad del protocolo que decae con el tiempo.

Finalmente, no creo que exista una manera eficiente de asegurar el bus CAN: el cifrado y la autenticación no harán mucho, de hecho evitará las intrusiones en el bus (como un dispositivo no autorizado conectado al puerto de diagnóstico) pero no evitará que se comprometa un dispositivo que debe tener acceso al bus (como la radio) que sería el punto de entrada principal de un atacante.

Acerca de la instalación del firmware, es una buena solución requerir una contraseña secreta impresa en los documentos del auto antes de que se pueda instalar cualquier firmware, ya que evitará que un dispositivo comprometido en el bus comprometa otros dispositivos, al mismo tiempo que permite que el propietario legítimo del automóvil para manipular el firmware si lo desean (porque lo que yo llamaría que me timen es tener que pagar 300 € y, a menudo, más para que el distribuidor reemplace una llave perdida o reprograme un controlador usado).

    
respondido por el user42178 07.05.2015 - 22:36
fuente
0

Enviar "0", por lo tanto, forzar el bus en un estado dominante es un ataque a la disponibilidad. En consecuencia, cada vez que otro dispositivo desea enviar, el algoritmo de arbitraje de bus le indica que se retire. Ningún mensaje recibirá en el autobús.

¿Cuál es la consecuencia para el vehículo? Al encender el encendido, el módulo de seguridad y la Unidad de control del motor (ECU) tienen que hablar. Si no pueden hablar, no pasará nada. Si el atacante obliga a que un autobús inunde en algún punto durante la conducción, se trata como un autobús defectuoso. La tolerancia a fallos se encargará de que el subsistema se apague correctamente y sin peligro para los pasajeros.

    
respondido por el user2969932 31.10.2015 - 23:16
fuente

Lea otras preguntas en las etiquetas