¿Automóviles vulnerables a ciberataques? (I)

Continuando con los interesantes posts de “Coche demasiado inteligente” que escribió Raúl Verdú (I y II), voy a aportar mis conocimientos y experiencia en el sector de la automoción para ampliar más la información sobre el tema. Vamos primero a ponernos en situación, y en la segunda entrada pasaremos a ver los vectores de ataque.

Todavía recuerdo el tiempo que pasé trabajando en Nissan (Barcelona) como ingeniero de calibración de motores de combustión interna. Básicamente los ingenieros modificábamos y mejorábamos parámetros en calibraciones (variables calibrables) con la finalidad de obtener una respuesta o resultado en el funcionamiento del motor y de la conducción del coche en general. Digamos que modificábamos las “neuronas del cerebro” del vehículo para optimizar su sistema de locomoción, así como mejorar sus prestaciones. Los coches utilizan cada vez más componentes electrónicos pensados para mejorar el rendimiento, la seguridad y la comodidad de los usuarios. La mayoría de dichas funcionalidades implica procesar distintos tipos de señales del vehículo y coordinarlas en tiempo real, por lo que es necesario disponer de sensores que proporcionen los datos, unidades que se encarguen de procesarlos (Electronic Control Units o ECUs, ”cerebros”) y una forma de comunicación entre todas ellas (a través de uno o varios buses de datos mediante el Standard Controller Area Network o CAN). Un coche actual tiene docenas de ECUs, dependiendo del modelo, fabricante y versión.

Cuando era ingeniero de calibración en Nissan, utilizaba un cable “Diag 3” con puerto USB con el que me conectaba desde mi portátil a la ECU (normalmente llamada ETK en el sector de la automoción) de un coche de pruebas. Lógicamente, esta ECU era “abierta” (reprogramable, con conexión adicional para pruebas e instrumentación). Para reprogramarla utilizaba una aplicación suministrada por Bosch (famoso fabricante de ECU’s), y para conectarme y hacer cambios en la calibración en tiempo real, un programa desarrollado por el grupo ETAS llamado INCA (famoso gestor de calibraciones). Como anécdota para los informáticos os contaré que cuando yo estaba en Nissan, INCA solo funcionaba con el sistema operativo Windows XP, y con todas sus vulnerabilidades…. Estos industriales y sus equipos expuestos a ciberataques… ;)

¿Pero qué es eso de la calibración? ¿Y por qué os cuento todo esto? Os hago una pequeña síntesis para que os hagáis una idea:

Cuando tú reprogramas una ECU tienes dos archivos a introducir: el software y la calibración. El software comprende la lógica de control y todas las estrategias destinadas a controlar el funcionamiento del coche. Cada ECU y versión de motor tiene su versión de software desarrollada por los ingenieros informáticos de la correspondiente firma automovilística. La calibración es la base de datos (constantes, mapas de motor, etc.) de la cual se sirve el software para ejecutar su acción de control de una forma sensata y eficiente. Estos datos son ajustables, es decir, su valor se puede modificar (son calibrables). De esta forma, los ingenieros de calibración pueden cargar diferentes calibraciones, con sus correspondientes cambios personalizados, en el mismo software.

Luego la ECU es tan solo una caja negra que recibe variables medidas por sensores (inputs), las procesa de forma eficiente gracias a una lógica de control y variables calibrables y a continuación genera una serie de variables de salida (outputs) que serán enviadas a los actuadores para que provoquen una respuesta que coincida con la demanda del usuario (conductor del coche).

Cuando hacía los ensayos, me conectaba con el programa INCA y podía hacer lo que quisiera: cortar la inyección, limitar la velocidad según el par motor y las revoluciones, modificar parámetros de funcionamiento del turbocompresor, el catalizador, la trampa de partículas, etc. Evidentemente los ingenieros hacíamos pruebas con las variables de la lógica de control que íbamos a modificar previamente estudiadas; se trataba de ensayos coherentes con los que poder investigar, hacer grabaciones y analizar el comportamiento del vehículo después de cada cambio. Pero, ¿qué pasaría si un hacker de algún modo cualquiera fuera capaz de acceder al “cerebro” con la finalidad de hacer cambios incoherentes en la calibración? Después de lo que os he contado podéis imaginar que las consecuencias serían nefastas.

Las ECUs se comunican mediante paquetes CAN. La comunicación a través de CAN es “broadcast” y, aunque existen algunas redes segmentadas, cada ECU decide si un paquete de datos está destinado a él o no. No existe ningún tipo de autenticación ni identificación de la fuente de un paquete. En caso de tener acceso a los buses de comunicación CAN, es posible capturar el tráfico entre las distintas ECUs. No sólo eso, también es posible inyectar paquetes que interactúen con los distintas ECUs del vehículo. Esto puede proporcionar un control total, incluyendo el sistema de frenos, motor, luces y cualquier otra funcionalidad que incorpore el vehículo. Durante los últimos años, han surgido diversos estudios que demuestran que es posible interferir con todos estos sistemas del vehículo, como podrían ser los frenos. ¡Qué desastre, nos quedamos sin frenos! ¡Frenos rotos, coches locos!

Por ello, un punto clave se centra en si es posible o no obtener acceso a dicha comunicación. ¿Podrían ser la conexión a Internet o mediante smartphone (bluetooth) posibles vías de acceso a dicha comunicación….? Eso es lo que vamos a ver en esta breve serie de dos artículos.

Además de todas estas funcionalidades que implementan los coches, existen también las relacionadas con la comunicación y servicios derivados de Internet que se incluyen en la nueva generación de coches “conectados”. No me refiero a la asistencia al aparcamiento, sino de acceso a redes sociales, correo electrónico, conectividad con el smartphone, cálculo de rutas, aplicaciones que se ejecutan en el coche, etc.

La conexión coche-Internet se puede realizar de dos modos:

  • A partir de la tarjeta SIM del vehículo. Esta conexión es la que se utiliza en los servicios/aplicaciones: In Car Browser Apps por ejemplo.

  • A partir del smartphone del usuario (vía bluetooth). Modalidad utilizada en los servicios In Car Smarphones Apps.

Audi ha sido pionero en este campo cuando en 2005 puso en marcha proyectos conjuntos con Google y Nvidia para desarrollar software y hardware, y en 2009 la marca de los cuatro aros ofreció por primera vez conexión a Internet en un automóvil. El sistema Audi Connect se ofrece en casi todos los modelos de la marca, incluido el A1. Los ocupantes de cualquier vehículo Audi equipado con este sistema pueden navegar y acceder al correo electrónico en todo momento, así como utilizar un gran número de servicios online de Google mediante el acceso a Internet.

La conexión se realiza a través de una tarjeta SIM vinculada a una línea de datos, aunque como alternativa se puede acoplar el móvil al equipo del coche vía Bluetooth. Otra función es el punto de acceso inalámbrico WLAN, con la que el teléfono del automóvil permite que el acompañante y los ocupantes de las plazas traseras puedan conectar vía Wi-Fi y de forma simultánea hasta ocho dispositivos diferentes (ordenadores portátiles, iPads, etc) para navegar por Internet, consultar el correo o incluso jugar online, independientemente de sus sistemas operativos. Todo el control de este teléfono se realiza a través del mando del MMI Navigation Plus de Audi, utilizando el volante multifunción, mediante la pantalla táctil con reconocimiento de escritura que se ofrece en algunos modelos, o incluso mediante control por voz.

La inclusión de estas tecnologías implica una serie de nuevos riesgos a los que el usuario no tenía que hacer frente… hasta ahora. Pero eso lo veremos en el siguiente artículo de la serie.