- 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
JSESSIONIDpara generar un ID de sesiónSidy 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 Sidera el token de sesión yVinkeyera 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
tokenera 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ámetrovin - 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:
- Generar un token de concesionario y extraer el valor de "token" desde los encabezados de respuesta HTTP
- Obtener el correo electrónico y número de teléfono de la víctima
- Modificar el permiso de acceso del propietario existente usando el correo filtrado y el VIN
- 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
Uf, qué terrible.
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.
Tenía curiosidad por el esquema de tarifas, pero veo que te hacen suscribirte ofreciéndolo gratis por varios años de entrada...
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
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
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"
El problema es que Kia conserva muchos datos sobre los vehículos y sus propietarios
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
Actualmente no hay vehículos nuevos en el mercado sin funciones de conectividad
Como propietario de un Kia, siente alivio de que la vulnerabilidad haya sido corregida y no se haya explotado con malas intenciones
Cree que los vehículos no deberían estar conectados a internet