Pareciera que cada gran conferencia de seguridad tiene su propia demostración de alguna debilidad en los sistemas de los automóviles inteligentes; así, el hacking de vehículos no deja de estar presente y ekoparty, evento que estamos cubriendo y apoyando en Argentina, no fue la excepción: Jaime Restrepo, fundador de la comunidad DragonJAR, explicó cómo encontró fallas en el dispositivo integrado a su propio auto y para qué podían ser utilizadas.
Las investigaciones anteriores, que les contamos tras asistir a eventos como DEF CON, se basaban en el control físico del vehículo para accionar la bocina, cortar los frenos, alterar la medición de la velocidad y otras acciones; pero ayer, en ekoparty, Jaime Restrepo mostró cómo se podía tomar control de su auto en forma remota.
La compañía que fabrica tu auto sabe lo que hiciste
Según contó en su presentación, titulada "Hackeando carros en Latinoamérica", todo empezó cuando recibió un mail de la compañía fabricadora del auto que había adquirido, diciendo que se había excedido de velocidad en varias oportunidades; había muchas probabilidades de que sea cierto, confesó, así que decidió analizar un poco la información con la que contaba la empresa. Al seguir el enlace incluido en el correo, vio que la URL estaba separada por carpetas y probó cambiándole un número. Para su sorpresa, se encontró con información de otros usuarios: cada dueño tenía su página de datos.
En este punto, y “siempre con fines didácticos”, el investigador hizo un script para automatizar la descarga de datos, que incluían número telefónico del auto (único para cada uno y creado para el envío de comandos), la placa o patente, los kilómetros recorridos, el número de frenadas en seco, la velocidad máxima que alcanzó, las veces que superó los límites de velocidad y datos personales como nombre y correo electrónico.
Enviar comandos por SMS al vehículo es tan fácil para el usuario como para el ladrón
Restrepo usó esta información para sacar conclusiones que publicó en su blog, respecto a la cantidad de cosas que la compañía sabía de los conductores de sus autos. Leyendo el manual de uso, descubrió que podían enviarse comandos por SMS para abrir y cerrar los seguros o ubicar al auto haciendo que toque bocina, porque tiene un número telefónico al que se pueden enviar estas acciones. Esto, dijo, es “tan fácil para el usuario como para el ladrón”; sabiendo ese número que identifica al vehículo, cualquiera podría enviarle esos mensajes con acciones.
Al advertir el agujero de seguridad, la compañía añadió como medida extra un código de 5 dígitos que se debía ingresar junto al comando. De esta forma, el comando a enviar sería “abrir 12345”, por ejemplo. Aquí aflora, entonces, la utilización por defecto de contraseñas débiles y fáciles de adivinar, que los usuarios, a priori, ni siquiera saben que deben cambiar.
Además, Restrepo descubrió que no se bloqueaba la cantidad de intentos, por lo que se dedicó a tratar de “robar” su propia contraseña. Consideró usar fuerza bruta, pero le hubiera costado casi 4.000 dólares, contemplando el costo de cada SMS a enviar y 41 horas de trabajo. Entonces, descargó las listas de contraseñas numéricas de cinco dígitos más utilizadas. Naturalmente, “12345” era la más utilizada, con algunas variaciones como “54321”.
Mediante una herramienta que creó, tomó el listado, un comando y el número telefónico del auto, integrado en la fuente, y mandó SMS probando combinaciones; después de 238 mensajes y media hora, con un costo total de 5 dólares, dio con la clave de su propio auto.
Otros posibles vectores de ataque: sistema bluetooth e Ingeniería Social
El sistema de manos libres para escuchar música, recibir llamadas e interactuar con el soporte técnico traía por defecto la clave “0000” en todos los vehículos. La funcionalidad insegura analizada por Restrepo radica en la posibilidad de mandar audio al dispositivo, mismo que se reproducía automáticamente incluso si se lo enviara a otro vehículo que no sea el suyo. Como todos los carros tienen la misma contraseña, no fue demasiado difícil dar con esta conclusión.
Por otro lado, la Ingeniería Social también podría ser un vector de ataque ya que, con los datos que tenía de los demás conductores, Restrepo pudo hacerse pasar por el encargado del área técnica de satisfacción al cliente de la compañía fabricante. En su presentación, incluyó el audio de su conversación telefónica con usuario, en la que le consultaba si había tenido inconvenientes técnicos con su vehículo ya que había reportes de problemas en la zona que habitaba. Con un poco de ingenio, logró obtener más datos y confirmar los que tenía en la planilla descargada.
Los resultados de la investigación
Cabe destacar que, como en todas las investigaciones con fines de concientización y mejora, nada de lo realizado por Jaime Restrepo persiguió fines maliciosos ni de perjuicio a usuarios. Se trató de buscar hasta dónde se podía corromper el sistema de los vehículos inteligentes para entender cuán vulnerables podrían ser sus usuarios a la ejecución de comandos remotos o la filtración de sus datos personales, por ejemplo.
Los hallazgos de la investigación fueron reportados a la compañía fabricante en repetidas ocasiones durante el año pasado, y luego de varios intentos sin respuesta, un representante del servicio que permite la interacción entre el celular y la computadora interna del vehículo se acercó a Restrepo para hablar del asunto, afirmando que la compañía estaba trabajando en una solución para mejorar el sistema.
Lo preocupante es que estos agujeros podían explotarse en diversos países de Latinoamérica, y de ahí el título de la presentación. Con estas técnicas, podía enviar comandos que responderían vehículos en Venezuela, México, las Islas Galápagos y otras zonas.
Una vez más, queda manifiesta la necesidad de que se considere la seguridad en forma extensiva desde la fabricación, para que los sistemas implementados no presenten debilidades ni sean fáciles de explotar.
Seguiremos contándoles novedades y descubrimientos presentados en esta conferencia, ¡no se pierdan nuestra cobertura de ekoparty en Argentina!