domingo, julio 26, 2015

Hacker, You Can Drive My Car [and maybe I'll love you]

Decía la canción de los míticos Beatles eso de "Baby, You Can Drive My Car", en una poesía para la posteridad que cuenta la historia de una chica que quiere ser una estrella de Hollywood y que se enamora de un hombre al que ofrece ser su chófer... [aunque aún no tuviera coche] para completar con un "...and maybe I'll love you". Preciosa. A mí no me gusta conducir en el monótono trayecto de atascos yendo a la oficina o en esos momentos en que lo hago pensando en trabajo, pero sí que me gustan los coches y conducir de vez en cuando en viajes largos escuchando Spotify. Uno de mis sueños siempre ha sido hacerme la Costa Oeste de Estados Unidos Norte a Sur por la carretera del Pacífico mientras suenan los grandes éxitos de Bon Jovi. Dormir en hoteles al borde del océano y terminar en Santa Mónica o San Diego para bañarme en la playa. Mola. Ójala lo consiga hacer pronto.

Figura 1: Hacker, you can drive my car

Me gustan los coches, y por eso pongo mimo y cuidado cuando me compro un nuevo Maligno-Móvil, ya que lo voy a disfrutar durante años y quiero algo diferente siempre. Por desgracia, no soy muy buen conductor y los días en que estoy presionado por estrés, agobiado de trabajo o con muchas preocupaciones personales tiendo a despistarme y tener algún que otro sobresalto. Alguien me dijo que en el último año y medio había tenido el coche más tiempo en el taller que en circulación, y es que he tenido algún que otro "cambio de aerodinámica no deseado" con él. Necesito un chófer yo también para esos días de trabajo, donde conducir no es un placer sino una necesidad, pero cuando me compré mi último Maligno-Móvil, la ciencia no había puesto los coches que conducen solos como en Yo, Robot en el mercado. Ahora, todo parece diferente.

Las declaraciones de Bill Gates en 1997 sobre la industria del coche

En el año 1997 Bill Gates hizo una referencia en una conferencia a cómo la industria de la informática había avanzado de rápido en los últimos 20 años. En esa referencia, para que la gente pudiera darse cuenta de los avances tecnológicos que habían existido desde los primeros computadores de los años 50, para pasar por los minis, los PC, el nacimiento del Internet de consumo y la multimedia, decidió compararlo con la industria automovilística diciendo algo como:
"Si la industria de la automoción hubiera mantenido el ritmo en evolución al que va Silicon Valley en el desarrollo de la informática, los conductores podrían comprar a día de hoy vehículos con motores V30 que alcanzasen las 10.000 millas por hora o coches que consumieran 1 galón cada 1.000 millas, y por un precio de menos de 50 USD"
En esta comparativa Bill Gates quería hacer notar que la evolución, tanto del hardware como del software, había sido a un ritmo exponencial, nunca visto en ninguna otra industria a lo largo de la historia, pero a la gente le llamó mucho la atención y empezó a correr el bulo de que el presidente de General Motors le contestó - algo que no es cierto -. Lo que sí que pasó es que en el año 1999 se empezó a contar la historia con un chiste en el que se recogía una supuesta nota de prensa de General Motors que decía cosas como:
Si General Motors hubiera desarrollado la tecnología como lo hace Microsoft, nosotros conduciríamos hoy día coches con las siguientes características: 
1.- Sin ninguna razón, tu coche se estrellaría dos veces al día. 
2.- Cada vez que se pinten las líneas de la carretera deberías comprarte un nuevo coche. 
3.- De vez en cuando, al ejecutar una maniobra como girar a la izquierda causaría que tu coche se apagase y se negase a arrancar y tú tendrías que re-instalar el motor. 
4.- Cuando tu coche se apagase en mitad de la autopista sin ningún motivo, tú lo aceptarías, rearrancarías y seguirías conduciendo.

[..]"
La falsa nota que se creó para generar un chiste que se contó durante años tenía más puntos, todos ellos pensados para generar humor en las personas por lo irrisorio y absurdo de lo allí contado. Pero esos tiempos ya terminaron y hoy esos 13 puntos no parecen ni imposibles, ni improbables, ya que hace ya tiempo que la industria del software y la industria automovilística se unió.

Los pasos tecnológicos de la industria de automoción

Lo cierto es que desde hace muchos años la industria de la automoción sí que fue acelerando su evolución tecnológica y sacando mucho más del desarrollo de soluciones para el control del vehículo y la conducción que necesitaban de mucho software y hardware específico. Siempre suelo contar en este punto cómo los ingenieros-hackers que trabajan en la dura competición de la Formula 1, las carreras Indy o los SuperTurismos se dejan los ojos para hackear las normas y la tecnología con nuevos inventos. 
Descubrimientos que como el ABS, el ESP, el efecto suelo, la suspensión inteligente, la tracción Quattro, el Kerts o el F-duct, pasan de un entorno de competición al mundo del consumo con los años, adaptados eso sí, a la normativa vigente.


Figura 3: Patrick Depallier conduciendo el Tyrrell P34 con 6 ruedas en Montecarlo.
Ganó hasta que lo prohibieron.

En el entorno de consumo, a día de hoy, los vehículos cuentan con un sistema informático completo dentro de ellos, con una unidad centralita que configura la funciones principales del vehículo - llamada ECU "Engine Control Unit", una serie de unidades de control distribuidas por todo el coche y unos interfaces de usuario muy definidos que van desde el sistema de entretenimiento, pasando por los pedales, palancas de cambio y volantes, hasta llegar a los sensores internos que detectan situaciones en las que aplicar ABS, ESP o el control de tracción a las cuatro ruedas.

Algunos hackeos del coche: Arranque, Configuración y Conducción

Supongo que muchos conoceréis los primeros hacks en los coches, que tuvieron lugar con los sistemas de llaves. Códigos de cerraduras que eran copiados o robados y empleados en abrir un coche y llevárselo. En Septiembre de 2012, ya como colofón a una década de hacks con las cerraduras electrónicas, llegó el hackeo de las llaves de los BMW 1, que con un dispositivo de unos 30 USD más o menos, podrías copiar cualquier llave y llevarte cualquier coche.

Figura 4: Gadget para robar los BMW 1

El caso de los BMW 1 era especial, ya que llamaba la atención al ser uno de los primeros coches masivos en los había un botón de arranque y apagado y no había que meter la llave, así que estaba claro que toda la lógica tenía que estar allí. Yo la primera vez que me subí a uno - que he de decir disfruté mucho - fue algo de lo que más me llamó la atención.  Lo mejor de todo es que años después BMW lo volvió hacer con un sistema de control remoto que no tenía HTTPs y que permitía a cualquiera robar el coche con una simple app. Esto obligó a la compañía a parchear 2.2 Millones de coches.

En el caso de las centralitas, sucede algo similar. Cuando has llevado tu vehículo a un taller habrás visto que los mecánicos conectan un aparato de control de la centralita para sacar la información de los errores. Esto no es nada nuevo, y desde hace décadas los vehículos reportan sus fallos y se configuran vía estas centralitas.


Figura 5: Hacking de ECU en DefCON 21

En la DefCON 21, dos investigadores españoles contaron cómo era posible configurar diferentes valores en los parámetros con que se comercializa un vehículo a través de un hardware construido por ellos mismos con Arduino que implementaba el protocolo K-Line. Podrías utilizar el mismo coche pero hacerle una especie de "overclocking" para ponerlo a tu gusto... pero también podrías hacer cosas mucho más peligrosas.


Figura 6: Charlie Miller y Chris Valasek en DEFCON 21

En esa mismo año, Charlie Miller y Chris Valasek contaron también en DefCON 21 cómo habían hackeado un Toyota Prius para conducirlo desde un ordenador personal, tal y como se puede ver en su presentación en Las Vegas.


Figura 7: Charlie Miller y Chris Valasek quitan frenos a Ford Escape

Estos dos investigadores llevan años investigando y haciendo ingeniería inversa de los protocolos utilizados en los coches, y sus vídeos son muchos en la red sobre esta materia. En este otro caso podéis ver cómo desde el asiento de al lado, Chris Valasek le quita los frenos desde el ordenador al Ford Escape que conduce Charlie Miller, configurando en tiempo real el coche. ¿Miedo? Pues era de esperar que llegara el Connected Car.

El Google Car: Los accidentes y el coche como plataforma

Con el conocimiento de que se podía controlar el coche directamente desde la ECU, los ingenieros de Google comenzaron a trabajar en la idea de hacer un coche que condujera solo. Para ello, dentro de los laboratorios de Google X destinaron a un montón de ingenieros a trabajar en justo lo que habéis visto en el vídeo superior, controlar la conducción del vehículo constantemente para, por medio de inteligencia artificial, hacer que el vehículo condujera solo.

Yo monté en uno de los prototipos de Google cuando visité Google X y tuve la suerte de conocer a Sergey. El coche iba controlado por un conductor de emergencia y un ingeniero que monitorizaba el ordenador desde el asiento de copiloto para ver si todo iba bien. El ordenador iba mandando las órdenes al sistema informático del vehículo para que acelerase, frenase o moviera la dirección, todo muy chulo, pero solo se podía utilizar en algunas zonas del estado de California que se habían habilitado para eso. Muestra esto de lo alineados que están los gobernantes con la innovación en Silicon Valley.


Figura 8: Cómo ve un coche sin conductor la carretera

Estando en el coche, que era un Toyota como en el caso de los hackeos iniciales de Charlie Miller y Chris Valasek, le pregunté a los ingenieros muchas cosas. Les pregunté si habían recibido los manuales del fabricante de coches o habían hecho ingeniería inversa, a lo que me comentaron que los habían "hackeado" ellos, además de algo que me vino a la cabeza en ese instante:
- "Oye, ¿habéis implementado algoritmos para tratar con accidentes no evitables?" 
- "No, los coches no tendrán accidentes, están programados para ello", contestó uno de los ingenieros con cara de sorpresa. 
- "No creo yo que eso sea así, habrá situaciones que no se pueden predecir, como un humano cometiendo un error, un gato que salta o un fallo de cualquier tipo que obligue al conductor a tomar una decisión lo más rápido posible para salvar vidas", le argumenté.
No habían contemplado nada de eso en aquellos momentos, porque inicialmente los vehículos estaban pensados para que condujeran solos en un entorno donde todos los coches conducirán solos, pero hasta que eso llegue - e incluso llegando - harán falta esos algoritmos. De hecho, el Google Car ya se ha visto envuelto en muchos accidentes - siempre por culpa de terceros -, pero que tal vez podrían haberse evitado, o limitado su impacto, de existir esos algoritmos. ¿Quién sabe? De hecho, Google ahora publica los informes de los accidentes de sus coches sin conductor, para evitar que se corran rumores sin información.
Lo cierto es que Google está haciendo a la industria del coche conectado algo similar a lo que hizo Apple a la industria del teléfono. En lugar de ser una empresa de teléfonos la que construyó el SmartWatch, fue una empresa tecnológica. Tal vez por lo que dijo Bill Gates en 1997 de la velocidad a la que se trabaja en Silicon Valley, y ahora parece que en el mundo de la automoción Google quiere hacer lo mismo.

Es su industria, ha puesto el pie sobre ella y es a a la que va a aplicar disrupción de la buena. Tiene ya mucho por avanzado en ese camino. Ya tiene Google Maps, Google Street View, el sistema operativo Android para construir sobre él, Waze para tener más información del tráfico y parte de Uber a través de Google Ventures. Todo eso, para dar soporte a su proyecto del coche conectado de conducción autónoma. Apple parece que va por detrás, y los rumores - que no dejan de ser rumores - son que comprará alguna casa como Tesla o similares, para revolucionar esta industria, aunque Google parece que va muy por delante.

Figura 10: ¿Apple Car con Tesla?

No pasa nada, ya veremos quien se queda con las próximas industrias, como la de la gestión de los hogares o, la más e importante de todas. ¿Quién construirá Matrix y "dirupcionará" el Connected Human?

El Connected Car y los hackeos remotos

Lo cierto es que, si los coches están conectados a Internet, existe una posibilidad de que cualquiera remotamente consiga hacer algo de lo que han hecho los hackers o los sistemas de inteligencia artificial que hemos visto, pero ahora desde la red. Es decir, configurar el freno, la dirección y la velocidad a la que va un coche. Pero podrían hacerse cosas más sutiles, como cambiar los parámetros del ABS, ESP o la tracción a las cuatro ruedas. Mil detalles que, si alguien de forma maliciosa pudiera hacerlos, podría convertirse en una gran catástrofe. Y se puede hacer.

En el año 2014, Jaime Andrés Restrepo presentó en la Campus Party México cómo era posible ejecutar comandos remotamente a partir de un fallo en el sistema Chevistar de Chevrolet. Aquí el vídeo de la presentación.


Figura 11: Hackeando carros en Latinoamérica

Y de nuevo Charlie Miller y Chris Valasek han conseguido hacerlo. Ambos son grandes researchers - no hay que olvidar que Charlie Miller - al que he tenido la suerte de conocer y entrevistar - fue el primero que consiguió controlar remotamente un iPhone por medio de un exploit, y que lo hizo varios años en la CanSecWest, así que localizar un bug y explotarlo remotamente en un coche no debería ser tan complicado para él y Chris

Figura 12: Charlie Miller (izda) y Chris Valasek (derecha) controlado el Jeep Cherokee para Wired

En su demostración lo han hecho con un Jeep Cherokee para conseguir pararlo en mitad de la autopista, tal y como decía la leyenda urbana que pasaría en 1999 si la industria de los automóviles hiciera tecnología como Microsoft. El círculo se cierra. La ironía en el futuro será tener un accidente en un coche sin conductor por culpa de un bug en el driver.

Lo  cierto es que hace unos años, tras ver las demos de hacking de aviones, un hacker en Alemania en el año 2013 me contó que ya había reportado varios bugs remotos como estos, pero nunca vi ninguna noticia pública de esto. Ahora es público, ya se sabe que se puede, y lo que no sabemos es si se ha usado ya en el pasado. ¿Quién sabe? Yo, sigo colgado con los billetes listos y preparados para hacer ese viaje por la costa del Pacífico, así que si quieres venir conmigo solo tienes que decir "Hacker, You Can Drive My Car".

Saludos Malignos!

3 comentarios:

  1. Interesante la entrada de hoy. De hecho estuve pensando sobre todo esto hace unos días cuando en un episodio de Mr. Robot dos hackers se hacen con lo que creo que era un furgón Ford. Me he quedado un tanto pillado con lo de hackear aviones...glups!!
    Así que me apunto al viaje "Hacker, I can drive your car (pero sin mariconadas)" y si eso en lugar de Bon Jovi ponemos a Bon Javi, no canto tan bien pero será en directo. Saludos no tan malignos como los suyos ; )

    ResponderEliminar
  2. En Latinoamérica desde enero de 2014 se denunció un fallo grave en el sistema chevistar de Chevrolet que permitía la ejecución remota de comandos desde cualquier parte del mundo a otro vehículo en cualquier país con el servicio... Todo fue documentado y expuesto en: http://youtu.be/0eUKrbjfctM

    ResponderEliminar
  3. Bus error, driver executed

    ResponderEliminar