¬ŅQu√© pasar√≠a si pudi√©ramos controlar un coche que est√° en la otra punta del mundo desde un ordenador en nuestra casa? Es justo lo que ha conseguido hacer Troy Hunt, un investigador de seguridad inform√°tica y hacker, usando un navegador web, una conexi√≥n a Internet y un Nissan LEAF normal y corriente.

El experimento comenzó en una charla de Hunt durante una conferencia de seguridad para desarrolladores, cuando un asistente se dio cuenta de que su coche, un Nissan LEAF, podía ser controlado a través de Internet usando la aplicación para móviles de Nissan. Si se imitaban los métodos de la app, cualquier otro Nissan LEAF podría ser controlado de la misma forma, desde cualquier lugar. El control se limita al sistema de climatización, pero saber que algo así es posible resulta cuanto menos revelador.

Hunt se puso en contacto con otro investigador de seguridad y due√Īo de un LEAF, Scott Helme. Helme vive en el Reino Unido y Hunt en Australia. Entre ambos organizaron un experimento en el que el LEAF de Helme ser√≠a controlado por Hunt, literalmente desde la otra punta del mundo. Aqu√≠ tienes el v√≠deo que hicieron durante el experimento:

Como puedes ver, Hunt fue capaz de acceder al LEAF del Reino Unido sin que Helme tuviera siquiera que arrancarlo. Desde Australia, pudo recopilar una gran cantidad de datos que guardaba el ordenador del coche sobre los viajes recientes, las distancias de esos viajes (registrados en yardas, curiosamente), la información sobre el consumo de energía, el estado de la carga y mucho más. También fue capaz de hacerse con el control del sistema de climatización para encender la calefacción o al aire acondicionado y los asientos climatizados.

Advertisement

Tiene sentido que sean éstas las opciones disponibles porque son el conjunto de cosas que se pueden hacer desde la aplicación móvil del Nissan LEAF, que la gente usa para calentar o enfriar sus coches antes de subirse a ellos, o para comprobar el estado de las baterías y cosas así.

La app es la clave para saber cómo acceder al LEAF vía web, porque así es como lo hace la propia aplicación. El investigador original (Jan) descubrió que su usaba un ordenador como proxy entre Internet y la app, las peticiones realizadas por la aplicación a los servidores de Nissan se podían ver. Este es el aspecto de una de esas peticiones:

GET https://[redacted].com/orchestration_1111/gdc/BatteryStatusRecordsRequest.php?RegionCode=NE&lg=no-NO&DCMID=&VIN=SJNFAAZE0U60XXXXX&tz=Europe/Paris&TimeFrom=2014-09-27T09:15:21

Advertisement

Si te fijas en ese c√≥digo, puedes ver que parte de la petici√≥n incluye una etiqueta ‚ÄúVIN‚ÄĚ, que es el N√ļmero de Identificaci√≥n del Veh√≠culo o n√ļmero de bastidor (aqu√≠ est√° oculto a prop√≥sito). Cambiar ese n√ļmero VIN es todo lo que hay que hacer para acceder a cualquier Nissan LEAF en particular. Y ten en cuenta que el n√ļmero de bastidor es visible a trav√©s del parabrisas de cada coche, por ley.

Hunt describe el proceso en su web, y se√Īala algunos detalles alarmantes:

Lo que llam√≥ la atenci√≥n de Jan no fue que pudiera obtener el estado actual de la bater√≠a de su LEAF, sino que la petici√≥n de su m√≥vil no parec√≠a contener ning√ļn dato de identidad sobre su sesi√≥n autenticada.

En otras palabras, pod√≠a acceder a la API de manera an√≥nima. Es una petici√≥n GET as√≠ que no se pasa nada en el cuerpo de la petici√≥n ni aparece nada parecido a un token en el encabezado de la solicitud. De hecho, lo √ļnico que identifica a su veh√≠culo es el VIN, que he ofuscado parcialmente en la URL de arriba.

Advertisement

Por lo tanto, no hay ning√ļn sistema de seguridad para evitar el acceso a los datos de un LEAF, ni se producen intentos de verificar la identidad en cualquiera de los dos extremos de la conexi√≥n.

Y la cosa va a peor.

Después probó a arrancarlo y observo esta petición:

GET https://[redacted].com/orchestration_1111/gdc/ACRemoteRequest.php?RegionCode=NE&lg=no-NO&DCMID=&VIN=SJNFAAZE0U60XXXXX&tz=Europe/Paris

Esa petición devolvía esta respuesta:

{

status:200

message: ‚Äúsuccess‚ÄĚ,

userId: ‚Äú******‚ÄĚ,

vin: ‚ÄúSJNFAAZE0U60****‚ÄĚ,

resultKey: ‚Äú***************************‚ÄĚ

}

Esta vez aparec√≠a informaci√≥n personal sobre Jan: su ID de usuario, que era una variaci√≥n de su nombre real. La petici√≥n tambi√©n devolvi√≥ el n√ļmero de bastidor pasado en la solicitud junto con una clave resultKey.

Luego apagó el climatizador y observó que la aplicación emitía esta solicitud:

GET https://[redacted].com/orchestration_1111/gdc/ACRemoteOffRequest.php?RegionCode=NE&lg=no-NO&DCMID=&VIN=SJNFAAZE0U60XXXXX&tz=Europe/Paris

Todas estas peticiones se realizaron sin un token de autenticaci√≥n de ning√ļn tipo; fueron emitidas de forma an√≥nima. Jan prob√≥ a cargarlas en Chrome y recibi√≥ una respuesta correcta sin problemas. Estaba bastante claro que la API ten√≠a cero controles de acceso, pero la posibilidad de invocarla bajo la identidad de otros veh√≠culos todav√≠a no estaba clara.

Advertisement

Aunque no entiendas de programaci√≥n, est√° claro lo que todo esto significa: cualquier persona tiene la posibilidad de obtener los datos personales y controlar algunas funciones del veh√≠culo desde pr√°cticamente cualquier lugar con una conexi√≥n a Internet siempre que se sepa el n√ļmero de bastidor del coche objetivo.

Hunt demostr√≥ que esto era posible despu√©s de investigar un poco. Utilizo una herramienta para generar n√ļmeros de bastidor de LEAF (s√≥lo los √ļltimos 5 o 6 d√≠gitos van cambiando) y envi√≥ una peticion de estado de la bater√≠a a todos esos n√ļmeros. Pronto consigui√≥ una respuesta correcta de vuelta. Hunt explica la importancia de esto:

Ya no era el coche de Jan, era el LEAF de otra persona. Nuestra sospecha de que el n√ļmero de bastidor era el √ļnico identificador necesario se confirm√≥ y se volvi√≥ evidente que hab√≠a una carencia total de autenticaci√≥n por parte del servicio.

No es s√≥lo una cuesti√≥n de conocer el estado del veh√≠culo, recuerda que las otras APIs pueden encender y apagar el climatizador del coche. Cualquiera podr√≠a enumerar los n√ļmeros de bastidor y controlar una funci√≥n f√≠sica de todos los veh√≠culos que respondan. Eso era un tema muy serio. Inform√© a Nissan un d√≠a despu√©s de haber descubierto esto (quer√≠a que Jan me proporcionara m√°s informaci√≥n primero), pero a d√≠a de hoy ‚ÄĒ32 d√≠as despu√©s‚ÄĒ el problema sigue sin resolverse. Puedes leer una cronolog√≠a del problema m√°s abajo, pero sin duda ha habido muchos mensajes y una llamada telef√≥nica durante un periodo de m√°s de cuatro semanas y s√≥lo ahora he decidido desvelarlo p√ļblicamente...

Advertisement

(Vamos a aclarar algo: esto no es una guía de cómo hackear un LEAF ajeno. Notarás que hemos censurado algunas partes de las direcciones de los servidores para que no puedas ir a curiosear fácilmente e intentar hacer maldades).

Actualmente sólo se pueden controlar algunas funciones del aire acondicionado, calefacción y ventilación del coche, además de acceder a información como el estado de carga y su historial de conducción. Pero eso es más preocupante e importante de lo que podrías imaginar.

Advertisement

No sólo tenemos el clásico problema de privacidad de tener a disposición de cualquiera tus trayectos y destinos frecuentes, sino que si cualquiera podría, por ejemplo, hackear el aire acondicionado para que agote la batería del LEAF y así dejar a su conductor varado en alguna parte.

Por ahora no existe un control de encendido remoto o para abrir el coche, pero el LEAF sigue siendo un automóvil completamente eléctrico, o lo que es lo mismo, todas sus funciones pueden ser manipuladas de forma electrónica. Por ejemplo, el volante puede ser controlado por los motores utilizados para dar energía al cruce asistido (como pude ver cuando visitamos el lugar de pruebas de Nissan) y su aceleración es controlada mediante cableados.

Al momento de escribir estas l√≠neas dudo que ning√ļn LEAF en el mundo est√© en peligro, m√°s all√° de la posibilidad de quedarse sin bater√≠a o que su interior est√© tan fr√≠o como un refrigerador; pero eso no quiere decir que en un futuro no podr√≠an conseguir hacer otras cosas. Esto es un fallo de seguridad enorme que Nissan debe corregir lo m√°s pronto posible.

Advertisement

Ya han pasado m√°s de 30 d√≠as y Nissan no ha resuelto el problema, seg√ļn Hunt. El investigador de seguridad nos detall√≥ todo el contacto que ha tenido con Nissan sobre este problema hasta la fecha:

Durante un mes me he acercado a Nissan en varios ocasiones para solucionar esto, pero no fue sino hasta después de los artículos publicados en los foros franceses y aquel correo electrónico canadiense que les avisé que yo mismo publicaría un artículo al respecto.

Así fue el orden de todo lo sucedido:

23 de enero: envié todos los detalles acerca de mis descubrimientos a la división de Amenazas de Seguridad e Inteligencia de Nissan en los Estados Unidos.

30 de enero: llamé por teléfono a Nissan para explicarles por completo cómo descubrí el riesgo de seguridad y las posibles consecuencias que podría tener. También les envié más detalles por correo electrónico.

12 de febrero: les envi√© un correo electr√≥nico pregunt√°ndoles acerca de los avances en el tema y les ofrec√≠ todo mi apoyo. A esto me respondieron ‚Äúestamos haciendo avances en la b√ļsqueda de una soluci√≥n‚ÄĚ.

20 de febrero: les envi√© m√°s detalles que obtuve del propietario canadiense (incluyendo un enlace a la discusi√≥n en los foros p√ļblicos) y les advert√≠ que estar√≠a publicando este art√≠culo ‚Äúm√°s tarde esta semana‚ÄĚ.

24 de febrero: publiqué este artículo en el blog, 4 semanas y 4 días después de haberles notificado de la vulnerabilidad.

En total les envi√© diez correos electr√≥nicos y tuve una llamada telef√≥nica. Esta ma√Īana casualmente recib√≠ un correo pidi√©ndome ‚Äúesperar algunas semanas‚ÄĚ antes de publicar el art√≠culo, pero tomando en cuenta que el tema ya est√° siendo discutido en muchas comunidades en Internet, y que ya les hab√≠a dado m√°s de un mes desde que les notifiqu√© del fallo, les volv√≠ a advertir que publicar√≠a esta misma noche y no recib√≠ otra respuesta.

Advertisement

No obstante, estoy dispuesto a a√Īadir una actualizaci√≥n al art√≠culo si ellos quieren a√Īadir alg√ļn mensaje o contribuir en algo.

A√ļn as√≠ me gustar√≠a aclarar que Nissan manej√≥ este tema muy bien. Era bastante sencillo contactar a la persona indicada para tratar cada asunto y se tomaron el tiempo y la molestia de escuchar y analizar toda la informaci√≥n que les ofrec√≠. Fueron bastante atentos, y aunque me hubiese gustado ver este fallo solucionado mucho m√°s r√°pido, si lo comparo con otras experiencias en materia de fallos de seguridad descubiertos, Nissan se comport√≥ de manera ejemplar.

Advertisement

Est√° muy bien que Nissan haya sido ‚Äúejemplar‚ÄĚ pero hubiese sido mucho mejor que ellos implementaran al menos alguna medida de seguridad b√°sica en sus coches, antes de hacer vulnerable los datos y sus controles en Internet.

La seguridad por oscuridad simplemente no va a seguir funcionando, como ya ha demostrado Troy Hunt con su cuidadoso y metódico trabajo. No estoy seguro de por qué los fabricantes de automóviles no parecen tomarse en serio este tipo problemas de seguridad, pero es hora de que lo hagan.

Advertisement

Ahora los relaciones p√ļblicas de la empresa tendr√°n que enfrentarse a la mala prensa de esta noticia y de las pr√≥ximas historias que saldr√°n. Seguro que tu t√≠a de Facebook acaba coment√°ndote que ahora los terroristas pueden controlar los Nissan LEAF para perseguirnos como perros de caza.

Hasta que los coches necesiten una recarga.

***

Psst! también puedes seguirnos en Twitter y Facebook :)