7 puntos por GN⁺ 2024-09-27 | 4 comentarios | Compartir por WhatsApp
  • El 11 de junio de 2024, se descubrió una vulnerabilidad en vehículos Kia que permitía controlar de forma remota funciones clave del auto usando solo la placa
  • Un atacante podía obtener silenciosamente información personal de la víctima, como nombre, número de teléfono, correo electrónico y dirección física
  • Aprovechando esta vulnerabilidad, un atacante podía agregarse a sí mismo como un segundo usuario invisible del vehículo sin que el dueño lo supiera
  • Se creó una herramienta de demostración para mostrar el impacto de la vulnerabilidad, pero no se publicó ni se utilizó de forma maliciosa
    • La vulnerabilidad fue corregida posteriormente, la herramienta no se lanzó y el equipo de Kia confirmó que no hubo explotación maliciosa de esta falla

Vehículos afectados

  • Se vieron afectados varios modelos de Kia, desde 2014 hasta 2025
  • Según el modelo, era posible usar funciones como bloqueo/desbloqueo remoto, encendido/apagado remoto, claxon/luces remotos y cámara remota

Detalles de la vulnerabilidad

Hace unos 2 años, encontramos vulnerabilidades de seguridad en más de 12 fabricantes de automóviles. Descubrimos fallas críticas que permitían rastrear remotamente la ubicación, apagar el motor, desbloquear y encender más de 15 millones de vehículos. - Paul Roberts

  • Después de bastante tiempo, decidieron volver a revisar los sitios de los fabricantes donde antes habían encontrado vulnerabilidades
  • El sitio owners de Kia y su app móvil resultaron interesantes porque permitían enviar comandos de control del vehículo a través de internet
  • El sitio web enviaba los comandos al API backend a través de un servidor proxy, mientras que la app accedía directamente al API
  • Ejemplo de solicitud HTTP que enviaba el sitio owners para pedir el desbloqueo de puertas:
    POST /apps/services/owners/apigwServlet.html HTTP/2  
    Host: owners.kia.com  
    Httpmethod: GET   
    Apiurl: /door/unlock  
    Servicetype: postLoginCustomer  
    Cookie: JSESSIONID=SESSION_TOKEN;   
    
  • El servidor usaba JSESSIONID para generar un ID de sesión Sid y reenviarlo al API backend así:
    GET /apigw/v1/rems/door/unlock HTTP/1.1  
    Host: api.owners.kia.com  
    Sid: 454817d4-b228-4103-a26f-884e362e8dee  
    Vinkey: 3ecc1a19-aefd-4188-a7fe-1723e1663d6e  
    
  • Sid era el token de sesión y Vinkey era un UUID asociado al número de identificación del vehículo (VIN)

Vulnerabilidad en la infraestructura de concesionarios

  • También decidieron revisar el sitio web de concesionarios de Kia, porque querían entender cómo Kia manejaba la información de clientes al comprar un auto nuevo
  • En el sitio del concesionario, identificaron la URL del correo que se envía al cliente para registrar un vehículo nuevo:
    https://kiaconnect.kdealer.com/content/kDealer/…  
    
  • Les llamó la atención el dominio kiaconnect.kdealer.com, que no habían visto antes
  • En esa URL, el parámetro token era una clave VIN, un token de acceso de un solo uso generado por el concesionario. Permitía modificar el vehículo especificado en el parámetro vin
  • Al cargar la URL, se enviaba una solicitud HTTP para verificar la validez del token:
    POST /apps/services/kdealer/apigwServlet.html HTTP/1.1   
    Host: kiaconnect.kdealer.com  
    
    {  
      "token": "985a49f0-1fe5-4d36-860e-d9b93272072b",  
      "vin": "5XYP3DHC9NG310533",   
      "scenarioType": 3,  
      "loginPref": null  
    }  
    
  • También les pareció interesante que el URI de solicitud del sitio de concesionarios fuera similar al del sitio owners: /apps/services/kdealer/apigwServlet.html
  • Supusieron que existía un proxy que reenviaba solicitudes a un API interno para concesionarios
  • Al revisar el código JavaScript, encontraron llamadas a API para funciones exclusivas de empleados, como consulta de vehículos del concesionario, consulta de cuentas, registro y baja
  • Intentaron acceder a endpoints del API usando el VIN de un vehículo propio, pero recibieron un error 401 Unauthorized. No funcionaba con el token del concesionario

Acceso al API de concesionarios con una cuenta normal

  • Entonces decidieron crear una cuenta normal en el sitio de concesionarios, generar un token de acceso e intentar entrar al API con ese token, porque el formato se parecía al del sitio owners
  • Intentaron registrarse en el sitio de concesionarios igual que en el sitio owners, y funcionó
  • Tras iniciar sesión y obtener un token de acceso, llamaron al API de consulta por VIN al que antes no podían entrar, y la respuesta incluía el nombre, teléfono y correo electrónico del dueño del vehículo
  • Eso significaba que, autenticándose en el portal de concesionarios con una cuenta común y usando encabezados de canal modificados, podían acceder a todos los API exclusivos para concesionarios

Acceso no autorizado al vehículo

  • Después de varias horas analizando el código JavaScript, entendieron cómo funcionaban los endpoints de registro, baja y modificación del vehículo
  • Era posible acceder al vehículo de la víctima siguiendo estos 4 pasos:
    1. Generar un token de concesionario y extraer el valor de "token" desde los encabezados de respuesta HTTP
    2. Obtener el correo electrónico y número de teléfono de la víctima
    3. Modificar el permiso de acceso del propietario existente usando el correo filtrado y el VIN
    4. Agregar al atacante como nuevo propietario del vehículo
  • Desde la perspectiva de la víctima, no había ninguna alerta indicando acceso a su vehículo ni cambios en los permisos
  • Un atacante podía obtener el VIN a partir de la placa de alguien y luego usar el API para rastrear en secreto a la víctima y enviar comandos como abrir las puertas, encender el vehículo o hacer sonar el claxon

Creación de un dashboard de prueba de concepto

  • Para mostrar la gravedad de la vulnerabilidad, crearon un dashboard de prueba de concepto en el que un atacante podía (1) ingresar la placa de un vehículo Kia, (2) obtener los datos personales del propietario y (3) ejecutar comandos de control del vehículo
  • La página "Exploit" intentaba obtener acceso no autorizado al vehículo, y la página "Garage" permitía ejecutar comandos y rastrear la ubicación
  • Probaron el sistema con un auto Kia rentado y bloqueado, y en el video al inicio del blog se puede ver cómo hackean el vehículo desde un smartphone y luego realizan acciones remotas como bloquear/desbloquear puertas, encender/apagar el motor, hacer sonar el claxon y rastrear la ubicación

Conclusión

  • Así como Meta podría introducir accidentalmente durante el desarrollo un cambio de código que permitiera a alguien secuestrar su cuenta de Facebook, los fabricantes de automóviles también pueden crear vulnerabilidades similares en sus vehículos
  • Seguirán apareciendo vulnerabilidades en los automóviles

Cronología

  • 06/07/24 16:40 UTC - Consulta al equipo de Kia sobre el método para reportar la vulnerabilidad
  • 06/10/24 13:21 UTC - Respuesta recibida del equipo de Kia
  • 06/11/24 22:41 UTC - Reporte de la vulnerabilidad
  • 06/12/24 18:20 UTC - Envío de correo de alerta del ticket debido a la gravedad
  • 06/14/24 18:00 UTC - El equipo de Kia respondió que estaba investigando
  • 06/18/24 16:41 UTC - Envío de correo de alerta del ticket y capturas de pantalla de la herramienta por la gravedad
  • 06/20/24 02:54 UTC - Envío de correo de alerta del ticket y captura mostrando acceso mediante ingreso de placa
  • 08/12/24 12:30 UTC - Solicitud de actualización por correo de alerta del ticket
  • 08/14/24 17:41 UTC - El equipo de Kia respondió que la vulnerabilidad estaba resuelta y en pruebas
  • 09/26/24 08:15 UTC - Tras confirmar la resolución de la vulnerabilidad, se hizo pública

Opinión de GN⁺

  • Es un caso impactante que muestra que el hackeo de automóviles ya es una realidad. A medida que aumenten los autos conectados, este tipo de vulnerabilidades será aún más grave
  • Este incidente muestra con claridad la falta de conciencia de seguridad de los fabricantes de automóviles y un diseño de sistemas muy deficiente. Parece urgente adoptar un ciclo de vida de desarrollo seguro (SSDLC), junto con gestión de vulnerabilidades de software y revisión de código
  • La tecnología de control remoto de vehículos aumenta la comodidad, pero al mismo tiempo amplía la superficie de ataque. Será importante encontrar un equilibrio entre tecnología, seguridad y privacidad
  • También deja en evidencia los problemas de los métodos de autenticación basados en datos personales. Que sea posible tomar control de un vehículo solo con conocer la placa es demasiado débil. Hará falta un esquema de autenticación reforzado, como biometría o autenticación multifactor
  • Los usuarios deben poder conocer y controlar el estado de seguridad de su vehículo. Se necesitan funciones de alerta que informen quién accedió a mi auto y qué comandos ejecutó

4 comentarios

 
aer0700 2024-09-28

Uf, qué terrible.

 
unsure4000 2024-09-27

Creo que debería existir una opción adecuada para que los propietarios puedan desconectar físicamente la conexión entre el vehículo e internet.

 
bbulbum 2024-09-30

Tenía curiosidad por el esquema de tarifas, pero veo que te hacen suscribirte ofreciéndolo gratis por varios años de entrada...

 
GN⁺ 2024-09-27
Opiniones de Hacker News
  • La decisión de Kia de omitir el inmovilizador en los vehículos de EE. UU. provocó un problema nacional de robo de autos

    • Como resultado, los robos de vehículos se dispararon en ciudades como Milwaukee y Chicago
    • Era posible robar un auto solo con un cable USB doblado
  • Se podría crear una app de "viajes compartidos" que rastree la base de datos vulnerable de Kia para mostrar vehículos Kia cercanos y desbloquearlos

  • El problema es que cualquiera puede registrarse como concesionario, y los concesionarios pueden consultar incluso la información de vehículos que no vendieron

    • Un empleado del concesionario podría abusar de esto para acosar a alguien
  • Según el artículo, originalmente solo Kia y los concesionarios podían rastrear los vehículos, pero ahora también pueden hacerlo personas "no autorizadas"

    • Esto hace preguntarse por qué está bien que una empresa rastree vehículos, pero es un problema cuando lo hace otra persona
  • El problema es que Kia conserva muchos datos sobre los vehículos y sus propietarios

    • Esta vulnerabilidad ya fue corregida, pero el problema de los datos sigue ahí
  • El hermano de alguien que tiene un Kia está sufriendo efectos negativos en su salud mental debido al robo del vehículo

  • No compraría un vehículo que requiera crear una cuenta en línea para activarlo

    • Un Kia que tuvo antes consumía 1 cuarto de aceite cada 1,000 millas antes de llegar a las 100,000 millas
  • Actualmente no hay vehículos nuevos en el mercado sin funciones de conectividad

    • Da curiosidad saber si sería posible fabricar un vehículo no conectado
  • Como propietario de un Kia, siente alivio de que la vulnerabilidad haya sido corregida y no se haya explotado con malas intenciones

    • Sin embargo, Kia todavía tiene mucho por mejorar
  • Cree que los vehículos no deberían estar conectados a internet