🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí

Hacking del vehículo conectado

Introducción: hacia el vehículo autónomo

Desde finales del siglo XIX y principios del XX y con la creación de los primeros automóviles "modernos" que conocemos, el sector de la automoción se va a convertir en una fuente constante de investigación e innovación: mejora de las prestaciones de velocidad y consumo, desarrollo de nuevos sistemas de seguridad a bordo (cinturones de seguridad, ABS, etc.), nuevos motores (diésel, gasolina, GLP, bioetanol, flex fuel, híbridos, 100% eléctricos), etc.

A finales del siglo XX apareció una tendencia (¿una moda?) llamada "tuning", con el objetivo de personalizar (con más o menos éxito) y/o hacer más eficiente el coche modificándolo mecánicamente (eliminando la "restricción" del fabricante). Volveremos sobre este punto más adelante en este capítulo porque es una de las dos motivaciones para hackear el automóvil.

A principios del siglo XXI comenzó la era de los vehículos conectados y la de los vehículos autónomos se hizo posible gracias al desarrollo de numerosas tecnologías:

  • Ayudas a la conducción como: control de crucero, detectores de cambio de carril, corrector de trayectoria, radares y cámaras de marcha atrás, frenada automática de emergencia, asistencia al aparcamiento, sistema automático...

Vehículo conectado y autónomo

Un vehículo conectado es un vehículo que tiene sistemas de comunicación inalámbricos a bordo que intercambian información con su entorno, pero no exclusivamente.

De esta manera, la siguiente figura presenta el concepto básico del vehículo conectado que comprende, entre otros, los siguientes elementos:

  • Sensores de seguridad.

  • Una cámara en el parachoques delantero.

  • Sistemas informatizados integrados para diagnóstico y entretenimiento (este último se denomina "infoentretenimiento").

  • Un sistema de conexión con dispositivos móviles (portátiles, smartphones y tabletas).

images/Figure1.png

Presentación del vehículo conectado (fuente: Broadcom 2013)

El vehículo autónomo, por su parte, es un vehículo diseñado para poder circular total o parcialmente sin la intervención de un conductor.

Actualmente existen cinco niveles de autonomía:

  • Nivel 1: el conductor recibe solo una asistencia parcial (ampliación de una maniobra de emergencia, aviso de la presencia de un peligro, etc.) y es responsable de su vehículo.

  • Nivel 2: el vehículo gestiona automáticamente las distancias y su centrado en el carril. El conductor supervisa todas las maniobras, puede soltar los pedales pero mantiene las manos en el volante en todo momento.

  • Nivel 3: el conductor puede delegar la conducción al vehículo...

Servicios de un vehículo conectado/autónomo

Ya sea para un vehículo conectado o para uno autónomo, existen tres nuevos conceptos de servicios que ofrecen estos vehículos:

  • Concepto "Save Time and Save Money". Como su nombre indica, se trata de ahorrar tiempo (y por lo tanto reducir el tiempo dedicado a conducir su vehículo) utilizando los numerosos servicios incorporados en el vehículo, a través de su sistema de infoentretenimiento. Por ejemplo, con la búsqueda de parkings con plazas disponibles y gasolineras cercanas.

  • Concepto "Be Safe" a través del sistema automático de llamada de emergencia (e-call o emergency call, obligatorio en vehículos nuevos en Europa desde 2018 con el Reglamento 305/2013) o asistencia (b-call o breakdown call), pero también, en caso de robo del vehículo, para su geolocalización.

  • Concepto "Enjoy Like" durante un viaje a través del sistema de entretenimiento que muestra y/o reproduce contenidos de dispositivos móviles (música, redes sociales favoritas, etc.). Este concepto se desarrollará con futuros vehículos autónomos de nivel 3, 4 y 5.

El vehículo conectado, una enorme superficie de ataque

Cuando un atacante estudia un vehículo conectado (o autónomo de nivel 1 y 2) al nivel de su superficie de ataque, primero observará qué intercambios de datos realiza el vehículo objetivo con su entorno y se documentará tanto como sea posible sobre estos sistemas (de una manera similar a la information gathering):

  • ¿Qué señales se reciben/envían?

  • ¿Qué tecnología se utiliza?

  • ¿Es de corto, medio o largo alcance?

  • Si el vehículo es híbrido/eléctrico, ¿utiliza una estación de carga?

Seguidamente, el atacante examinará su interior:

  • ¿Hay un puerto USB?

  • ¿Dónde se encuentra la toma de diagnóstico?

  • etc.

images/15ept1.png

Principales vectores de ataque de un vehículo conectado

La figura de arriba muestra los principales vectores de ataque. Desde el punto de vista "externo" del vehículo, podemos destacar el sistema Wi-Fi, el Bluetooth, el sistema GSM, el sistema de apertura y cierre centralizado activo (RKE - Remote Keyless Entry) o pasivo (PKES - Passive Keyless Entry and Start) o incluso el sistema de control de la presión de los neumáticos (TPMS - Tire Pressure Monitoring System, obligatorio en todos los vehículos nuevos en Europa desde 2014).

Desde un punto de vista interno, podemos citar principalmente el USB y la toma...

Motivaciones del hacking del vehículo conectado

Los ataques tienen dos motivaciones principales:

  • La activación y/o modificación de las opciones del vehículo: esta motivación es similar al tuning de finales del siglo XX, pero aquí solo desde el punto de vista informático. De esta manera, podemos citar por ejemplo la modificación del fondo de pantalla de la consola de navegación, la instalación de nuevas aplicaciones (o aplicaciones maliciosas) a nivel del sistema de info-entretenimiento (ver figura siguiente) o la modificación de los parámetros de la ECU del motor para mejorar su rendimiento (también llamado chiptuning o remapping).

images/Figure3.png

Ejemplo del hacking del infoentretenimiento procedente de la compañía israelí Argus Cyber Security

  • Robo: esta motivación incluye el robo del contenido del vehículo (GPS autónomo, smartphones, objetos de valor, etc.) o el robo del vehículo. Por lo tanto, los ataques se referirán al secuestro del sistema de bloqueo (a través de un ataque de tipo jamming, un ataque de tipo rolljam, etc.) y seguidamente a la cancelación del sistema de arranque (a través de inyecciones en la red CAN o attaque "backdoor", mediante un ataque de relé, etc.) y del sistema de localización o incluso obligando al conductor a detenerse "simulando" averías...

Los sistemas internos del vehículo conectado

Desde el punto de vista informático, un vehículo conectado (o autónomo) es un conjunto de ordenadores/ECU conectados entre sí y que se comunican a través de varias redes integradas.

images/Figure4.png

Ejemplo de las funciones y del ECU en un vehículo conectado

Aquí los ordenadores/computadoras se llamarán ECU, acrónimo de Electronic Control Unit (también encontramos el término ECM - Electronic Control Module). Sirven para controlar todo el equipamiento del vehículo, desde el motor hasta las luces. Las ECU se implementan en vehículos desde finales de la década de 1970 y principios de la de 1980.

Un vehículo conectado se compone de un gran número de funciones y por lo tanto de ECU, como se muestra en la figura anterior. Su número depende directamente del número de funciones incorporadas por el fabricante y, por lo tanto, de la gama del vehículo (gama alta o baja). En 2016 hablábamos de un mínimo de 70-80 ECU en un vehículo de gama baja y más de 150 ECU para un vehículo de gama alta o híbrido.

Cada fabricante tiene sus propias arquitecturas de vehículos, y dentro de una misma gama de un fabricante, dependiendo por ejemplo de la motorización (gasolina, diésel o híbrida) y para un mismo nivel de acabado y año de fabricación...

Ataque físico de la ECU: chiptuning o remapping

El "chiptuning" o "remapping" es la versión informatizada del tuning de finales del siglo XX y tiene como objetivo modificar los parámetros del vehículo. Esta modificación se refiere principalmente al cambio del mapeo original del ECM, a través de un puerto específico, para mejorar el rendimiento y la eficiencia del motor, pero también se puede utilizar para restablecer las llaves de encendido cuyos datos se almacenan en la memoria de la ECU

Este hackeo se lleva a cabo en varias etapas:

  • Extracción física, apertura y conexión de la fuente de alimentación y el puerto de la ECU al hardware adecuado.

  • Extracción completa (dump) de datos de una memoria o de todas las memorias de la centralita en un solo archivo.

  • Lectura, análisis e interpretación, modificación de los datos y cálculo de la integridad del archivo.

  • Reinstalación de los datos en la ECU y luego reinstalación "física".

  • Pruebas de funcionamiento correcto.

1. ECU y puertos de comunicación de la MCU

Las ECU utilizan un microcontrolador (MCU) para procesar sus tareas en tiempo real. Las MCU, a diferencia de las CPU (microprocesadores), tienen una memoria flash integrada en el chip para almacenar y ejecutar su programa. Este modo de almacenamiento de programas significa que la MCU tiene un período de inicio muy corto y ejecuta el código muy rápidamente. El único límite práctico para usar la memoria integrada es que la memoria total disponible es finita.

Las CPU no tienen las mismas limitaciones de memoria. Utilizan una memoria externa para almacenar programas y datos. Por lo tanto, arrancan más lentamente y son menos adecuadas para el sector del automóvil. Los fabricantes de ECU (Bosch, Siemens, Continental, Delphi, Magneti Marelli, etc.) utilizan muchas familias de microcontroladores de 32 bits y añaden ROM externa.

Por lo tanto, la memoria flash de la MCU se usa para almacenar datos de mapeo del motor, datos que se cambian regularmente durante el uso del vehículo. La ROM (generalmente una EEPROM) almacena datos que no están destinados a cambiar con frecuencia: VIN (Vehicle Identification Number) del vehículo, parámetros de codificación clave (key immobilizer), etc....

Ataque backdoor: la inyección en la red CAN

A diferencia del ataque físico que necesita extraer y abrir la ECU y extraer la EEPROM, el ataque backdoor utiliza la red de a bordo del vehículo y su conector de diagnóstico sin tener que desmontar partes importantes (excepto posiblemente algunas cubiertas de plástico).

Los objetivos del ataque backdoor incluyen los objetivos del chiptuning (es decir, optimización del motor y remapeado) pero son más globales, ya que este ataque teóricamente permite el acceso a todos los sistemas del vehículo: encender varias luces de advertencia, desbloquear las puertas mientras se conduce, falsificar el tacómetro, arrancar el motor, recuperar datos GPS, desarrollar nuevas funcionalidades, etc.

Este hackeo se lleva a cabo en varias etapas:

  • Conexión al sistema de diagnóstico del vehículo usando hardware adecuado a través del conector OBD2.

  • Sniffing de tramas de bus CAN y grabación en forma de archivos de registro (dump) utilizando las herramientas de software apropiadas.

  • En función del objetivo, análisis de logs y replay (reverse engineering) para determinar las señales de interés y su codificación.

  • Generación de una varias tramas (el payload) y posterior inyección de estas tramas en el bus CAN del vehículo objetivo.

1. Presentación del OBD

El OBD es el acrónimo inglés de On-Board Diagnostics, o Diagnóstico de a bordo en castellano. OBD es un sistema obligatorio para el autodiagnóstico del vehículo y para informar de averías a fabricantes y mecánicos. El estándar OBD1 (SAE J1969) se implementó en 1969. El primer fabricante en utilizarlo fue Volkswagen con un ordenador de a bordo para el control y mantenimiento de los sistemas de reducción de emisiones contaminantes. OBD evolucionó en la década de 1990 (OBD1.5) hasta llegar al estándar actual (ODB2) que describe el conector utilizado, los protocolos integrados y los códigos de error.

Como se muestra en la siguiente figura, el OBD2 se ha vuelto gradualmente obligatorio en todo el mundo, para las principales motorizaciones.

images/Figure20.png

Fechas de implantación del OBD2

Tenga en cuenta que existe el E-OBD, acrónimo de European OBD, que es una ligera modificación del estándar OBD2 con la adición...

Otros ataques del vehículo conectado

1. Aplicación mal securizada: el caso Nissan Leaf de 2016

El modelo Leaf es un sedán compacto 100 % eléctrico lanzado en 2010 por Nissan. Entre 2010 y 2014 se vendieron alrededor de 150.000 vehículos en todo el mundo y el Leaf fue el vehículo eléctrico más vendido en Europa en 2014. El precio del modelo básico (con baterías de 24 kWh) fue de 23.390 Euros en 2016. El Leaf también tiene una dimensión "conectada", ya que viene con una aplicación "compañera" para smartphones Android e iOS. La primera versión de esta aplicación, llamada Nissan Connect EV, se comunicaba con el vehículo y permitía, en particular, ver el nivel de carga de su bloque de baterías, analizar el rendimiento de conducción (nivel de aceleración y frenado), así como encender la calefacción/sistema de aire acondicionado de forma remota, cuando el vehículo está parado.

images/Figure67.png

Nissan Leaf, modelo 2010, con su aplicación Nissan Connect EV

En enero de 2016, Troy Hunt (https://www.troyhunt.com), experto en seguridad informática, prueba la aplicación y el Leaf de un amigo noruego. Utiliza la aplicación Fiddler en su smartphone, que es un proxy que permite interceptar, analizar e incluso modificar sobre la marcha todas las solicitudes e intercambios entre un teléfono inteligente y un servidor web (funciona como WebScarab), para analizar el tráfico de Nissan Connect EV. Todas sus pruebas y resultados están disponibles en su sitio web, en la siguiente dirección: https://www.troyhunt.com/controlling-vehicle-features-of-nissan/?m=1

Por lo tanto, cuando el usuario solicita el estado de carga de la batería de su Leaf, la aplicación envía una petición (consulte la siguiente figura) al servidor web de Nissan que, a su vez, se comunica con el Nissan Leaf cuyo VIN está referenciado (el nombre del servidor y el VIN han sido ofuscados por Troy Hunt por razones de privacidad).

images/Figure68.png

Consulta con el método GET sobre el estado de la batería (fuente: Troy Hunt)

Y la respuesta del estado de la batería de este Leaf se obtiene en formato JSON. Esta respuesta es fácilmente comprensible:

images/Figure69.png

Formato JSON de la respuesta a la consulta con el método GET (fuente: Troy...