Si estás leyendo el blog de Kaspersky con regularidad, probablemente sepas que es muy posible hackear un automóvil moderno. De hecho, escribí un artículo acerca de esto, basado en una investigación muy citada realizada por las Universidades de Wisconsin y California en San Diego allá por el año 2010. El único problema – por supuesto – es que la investigación se llevó a cabo hace tres años, está algo desactualizada. Para nuestra suerte, el Dr. Charlie Miller, el famoso hacker de Apple e investigador en seguridad informática, junto con Chris Valasek, jefe de inteligencia de seguridad en IOActive, hicieron una presentación sobre hackeos de coches la semana pasada en la conferencia de seguridad Def Con, que comenzó en el Hotel Río justo al otro lado de la carretera del Caesars Palace de las Vegas el día que Black Hat terminó.
Además, la investigación de Valasek y Miller – que se concreta en un documento de más de 100 páginas – es mucho más extensa que el trabajo anterior. Miller y Valasek detallan qué coches utilizaron, en cambio los investigadores de la UC de San Diego y de la Universidad de Washington no. Valasek y Miller publican todo, dan detalles, brindan los códigos que utilizaron para que las computadoras se comuniquen con el vehículo y la forma de engañarlo, el diseño de los ordenadores de a bordo y cómo están conectados en red y mucho más. Los investigadores tomaron uno de sus coches para hacer la prueba de hackeo en la carretera y, literalmente, se reían en el asiento trasero con sus computadoras portátiles, mientras manipulaban el auto que manejaba el periodista de Forbes Andy Greenberg.
Antes de empezar a hablar de cosas divertidas, una lección rápida sobre los coches y sus equipos internos: los coches modernos contienen pequeñas computadoras llamadas unidades de control eléctrico (ECU en inglés). El número de ECU varía, en algunos autos puede contener hasta cincuenta ECUs. La ECU sirve a una multitud de propósitos. En los autos de Miller y Malasek, cada ECU ayudaba a controlar y monitorear todo, desde el control del motor para la administración de energía de dirección hidráulica hasta el sistema anti-bloqueo rápido para cinturones de seguridad, o para controlar tecnologías de asistencia al aparcamiento y un sinnúmero de otras cosas de las cuales nunca había oído hablar. Casi todos estos ECUs están conectados en red con el CAN (acrónimo del inglés Controller Area Network), un protocolo de comunicaciones basado en una topología bus para la transmisión de mensajes en entornos distribuidos. El CAN y los ECUs actúan juntos como el sistema nervioso central del vehículo moderno, se comunican uno con el otro para reportar velocidad y revoluciones por minuto o para informar al sistema antes de la colisión cuando un accidente está a punto de producirse de manera que pueda frenar rápidamente, apagar el motor, bloquear los cinturones de seguridad o hacer cualquier otra cosa que se hace cuando un coche está a punto de chocar. La mayoría de estas señales se activan por sensores integrados en el ECU.
Por si sirve de algo, Valasek y Miller estaban trabajando con un Ford Escape 2010 y un Toyota Prius 2010, aunque su investigación es probablemente aplicable a otras marcas y modelos también.
Los investigadores compraron un cable ECOM bastante barato que se ejecuta al conectar este dispositivo a una máquina Windows a través de un puerto USB. Con una pequeña modificación, se podría conectar el otro extremo del cable ECOM a los puertos OBD II del coche (ésta es la cosa bajo el volante que los mecánicos utilizan para comunicarse con su coche bajo inspecciones u otros trabajos y en la cual se puede conectar una herramienta de diagnóstico con el fin de restablecer códigos de motor, apagar la luz del motor, etc.). Una vez que se han enchufado, empiezan a monitorear cómo los ECUs se comunican entre ellos a lo largo del CAN y cómo ésto genera efectos en sus dos vehículos. Finalmente lograron un firme control sobre los protocolos de comunicación, suplantándolos (dando sus propias señales para imitar lo que pasa entre los CAN y cada una de las ECU).
Dependiendo de con qué coche estuviesen trabajando los investigadores, podían hacer cosas diferentes. Voy a mencionar algunas de las cosas más interesantes que lograron hacer para cada vehículo específico, se puede leer el informe por sí mismo si quieres más información.
Descubrieron que podían manipular el cuentakilómetros, la odómetro y el indicador de combustible. En el caso del indicador de velocidad, se encontraron con que el control de velocidad ECU del vehículo envía repetidamente señales a través del CAN a la ECU del panel de instrumentación. Con el fin de engañar al velocímetro, los investigadores enviaron señales falsas para el tablero de instrumentos de supervisión ECU. Una vez que alcanzaron la tasa correcta de la señal, pudieron hacer que el velocímetro muestre las velocidades que querían.
Las puertas del Prius podrían ser bloqueadas y desbloqueadas. Los bloqueos pueden ser físicamente anulados, lo que significa que no podían encerrar a alguien en el interior del coche, pero podrían acceder al coche por fuera para desbloquearlo.
En la Ford, lanzaron un ataque de denegación de servicio, haciendo que la ECU supervise la dirección de tráfico del CAN, haciendo que la dirección asistida se apague, y limitando el radio de giro a apenas un 45 por ciento de su capacidad. También descubrieron que podían manipular el módulo de asistencia al aparcamiento (el ECU que controla las funciones automáticas de aparque en paralelo a otro carro). Reconocen, sin embargo, que este sistema sólo entrará en funcionamiento a velocidades muy bajas y que lo peor que podría pasar es que el auto choque contra el que se está tratando de estacionar en paralelo a él.
Los investigadores también se metieron con la asistencia a la dirección del Prius. La ECU del Prius se había establecido para que la función de asistencia de parqueo sólo funcionase si el coche fuera a la inversa y en los viajes de menos de cuatro millas por hora. Así, Valasek y Miller engañaron al coche para que piense que iba a la inversa, cuando en realidad estaba avanzando normal y también lo engañaron para que piense que se movía más lento de cuatro millas por hora, cuando en realidad viajaba más rápido que eso. No pudieron girar el volante con tanta precisión como hicieron con la función de auto-aparcamiento, pero podían controlar la rueda dando fuertes sacudidas esporádicas, en un sentido o en el otro.
El Prius también tiene una característica para inclinar el coche un poco hacia un camino si se detecta que un conductor está virando fuera de la carretera. La ECU a cargo de esta función sólo permite un giro de cinco grados del volante. Los investigadores pudieron secuestrar esta función y, mientras que cinco grados constituye un cambio relativamente pequeño en la dirección, es un cambio significativo si se tiene en cuenta que el coche se mueve a gran velocidad en el tráfico o en caminos estrechos.
En la Ford es posible enviar un comando al CAN que le dirá el coche de interferir los frenos. De esta forma, no pueden parar el coche. El freno sólo funcionará si el coche está en movimiento a menos de cinco millas por hora, que es bastante lento, pero aún así es lo suficientemente rápido para que uno de los investigadores haya chocado el Ford Escape en una pared de su garaje durante el proceso de prueba.
Hay un mensaje que el CAN del Ford puede enviar a eliminar a uno o más de los pistones, elementos del motor de combustión interna. Valasek y Miller utilizaron ingeniería inversa y enviaron este código una y otra vez. El coche no arrancaba hasta que dejaron de enviar ese código. El Prius es también vulnerable a desconectar su motor, aunque -técnicamente- en diferentes caminos, pero que son similares en su forma de accionar.
También encontraron un comando para apagar todas las luces de dentro y fuera del Ford. La ECU a cargo de la iluminación sólo servía si el coche no se movía, pero si los investigadores emitían el comando mientras que el coche estaba detenido, el coche seguiría la orden, incluso después de estar en marcha. Esto apagó todas las luces, lo que significa que el auto podría andar por la carretera sin luces de freno. Además, una vez que se estaciona el auto, no sale de allí – probablemente debido a que la ECU de la cual hablamos también controla el interruptor del freno que permite que la unidad salga. Los investigadores pudieron jugar con los faros del Prius -encendiéndolos y apagándolos- pero sólo si el conductor tenía el faro en automático, característica que enciende o apaga las luces en función de la cantidad de luz fuera del coche.
Si bien pudieron jugar un poco con el control de velocidad del Prius, los investigadores no fueron capaces de hacer que el coche se acelere en el control de velocidad, lo cual es bueno. Dicho esto, se las arreglaron para engañar al coche en bajar la velocidad e incluso detenerse haciendo creer al sistema pre-colisión que el coche estaba a punto de chocar contra un objeto delante de él. Incluso si el conductor presiona el pedal del acelerador, el coche seguirá frenado. Para que el Prius acelere fuera del control de cruce, los investigadores tuvieron que modificar su cable ECOM y conectarse directamente a la consola de administración de energía (el ECU que controla las aceleraciones del coche), porque esa ECU no estaba conectada al CAN. Sólo lograron hacer que el coche acelere durante unos segundos después de haberse acabado la gasolina. Sin embargo, dicha aceleración no deseada podría ser potencialmente peligrosa.
Otra función del sistema de pre-colisión está en accionar el motor del cinturón de seguridad de manera que se apriete frente a un inminente accidente. Valasek y Miller podrían causar que esto ocurra en cualquier momento.
Los investigadores también hablaron largo y tendido sobre el potencial para la inyección de código en el ECU y en el CAN (es decir, con la infección del malware). No voy a entrar en demasiados detalles aquí, más que decir que es muy posible inyectar código allí y ejecutarlo en estas máquinas (es tan posible que en las últimas 20 ó 30 páginas de su informe está dedicado a este tema).
Un dato adicional a tener en cuenta con este tipo de truco es que requiere acceso físico al coche y (por ahora) es imposible llevar a cabo estas actividades de forma remota.
Hay una medida de defensa obvio para asegurarse de que tu coche no puede ser hackeado: comprar un coche muy viejo. Esta defensa funciona, pero, francamente, tu “pirateable” auto Nissan Máxima de 2013 es mucho, mucho más seguro que mi “in-hackeable” Honda Accord de 1998. Tu “hackeable” coche tiene todo tipo de características de seguridad salvajes y sensores que te permiten saber si algo ha ido mal incluso antes de tomar en el camino. Con mi viejo coche, es una apuesta al destino cada vez que tomo la carretera.
La realidad es que Miller y Valasek son dos de las personas más inteligentes en la industria de la seguridad. Su trabajo es eliminar y hackear cosas porque realmente quieren hacer del mundo de las cosas conectadas un lugar más seguro. Además de eso, y a pesar de que su investigación incluye todos los códigos y técnicas necesarios para hacer lo que hicieron, ellos se encuentran entre los únicos seres humanos en el mundo con los conocimientos técnicos para llevar a cabo un ataque tan complicado. Si esto no disipa tus temores, también debes saber que los fabricantes de automóviles – al igual que las empresas de tecnología – están metidos en este tipo de investigación y en la mejora de los vehículos en base a ella.
Si no lo has visto todavía, dirígete a la página web de Forbes. Allí puedes ver el video de Andy Greenberg conduciendo mientras Valasek y Miller hackean activamente el Toyota Prius mientras él lo maneja. Es un buen momento. Lo prometo.