Piratage de voitures Kia : contrôler un véhicule à distance avec une simple plaque d’immatriculation
(samcurry.net)- Le 11 juin 2024, une vulnérabilité a été découverte dans des véhicules Kia permettant de contrôler à distance des fonctions essentielles du véhicule à partir de sa seule plaque d’immatriculation
- Un attaquant pouvait récupérer discrètement des informations personnelles de la victime, comme son nom, son numéro de téléphone, son adresse e-mail et son adresse physique
- En exploitant cette vulnérabilité, un attaquant pouvait s’ajouter à l’insu du propriétaire comme second utilisateur invisible du véhicule
- Un outil de démonstration a été créé pour montrer l’impact de la faille, mais il n’a ni été publié ni utilisé de manière malveillante
- Cette vulnérabilité a ensuite été corrigée, l’outil n’a pas été publié, et l’équipe de Kia a confirmé que la faille n’avait jamais été exploitée à des fins malveillantes
Véhicules concernés
- Différents modèles Kia des années 2014 à 2025 étaient concernés
- Selon le modèle, il était possible d’utiliser des fonctions comme le verrouillage/déverrouillage à distance, le démarrage/l’arrêt à distance, le klaxon/les feux à distance, la caméra à distance, etc.
Détails de la vulnérabilité
Il y a environ deux ans, nous avons découvert des vulnérabilités de sécurité chez plus de 12 constructeurs automobiles. Nous avons trouvé des problèmes critiques permettant de localiser à distance, couper le moteur, déverrouiller et démarrer plus de 15 millions de véhicules. - Paul Roberts
- Comme beaucoup de temps s’était écoulé, il a été décidé de revisiter les sites des constructeurs où des vulnérabilités avaient déjà été trouvées
- Le site owners de Kia et son application mobile étaient intéressants, car ils permettaient d’envoyer des commandes de contrôle du véhicule via Internet
- Le site web transmettait les commandes à l’API backend via un serveur proxy, tandis que l’application accédait directement à l’API
- Exemple de requête HTTP envoyée par le site owners pour demander le déverrouillage des portes :
POST /apps/services/owners/apigwServlet.html HTTP/2 Host: owners.kia.com Httpmethod: GET Apiurl: /door/unlock Servicetype: postLoginCustomer Cookie: JSESSIONID=SESSION_TOKEN; - Le serveur utilisait
JSESSIONIDpour créer un identifiant de sessionSid, transmis ensuite à l’API backend comme suit :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était le jeton de session, etVinkeyun UUID associé au numéro d’identification du véhicule (VIN)
Vulnérabilité de l’infrastructure concessionnaire
- Nous avons aussi décidé d’examiner le site des concessionnaires Kia, car nous voulions comprendre comment Kia traitait les informations clients lors de l’achat d’un véhicule neuf
- Sur le site concessionnaire, nous avons trouvé l’URL envoyée par e-mail aux clients pour enregistrer un véhicule neuf :
https://kiaconnect.kdealer.com/content/kDealer/… - Le domaine
kiaconnect.kdealer.com, jamais vu auparavant, a attiré l’attention - Dans cette URL, le paramètre
tokenservait de clé VIN, un jeton d’accès à usage unique généré par le concessionnaire, permettant de modifier le véhicule désigné par le paramètrevin - Lors du chargement de l’URL, une requête HTTP était envoyée pour vérifier la validité du jeton :
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 } - Il était intéressant de constater que l’URI de requête du site concessionnaire était le même que celui du site owners, à savoir
/apps/services/kdealer/apigwServlet.html - Nous avons supposé l’existence d’un proxy relayant les requêtes vers une API interne réservée aux concessionnaires
- En examinant le code JavaScript, nous avons trouvé des appels d’API correspondant à des fonctions réservées aux employés, comme la consultation de véhicules, la consultation de comptes, l’enregistrement et la résiliation
- Nous avons essayé d’accéder aux endpoints d’API avec le VIN d’un véhicule nous appartenant, mais nous avons obtenu une erreur 401 Unauthorized. Cela ne fonctionnait pas avec un jeton concessionnaire
Accès à l’API concessionnaire avec un compte classique
- Nous avons donc décidé de créer un compte classique sur le site concessionnaire pour générer un jeton d’accès, puis d’essayer d’utiliser celui-ci pour accéder à l’API, car le format ressemblait à celui du site owners
- En tentant de nous inscrire sur le site concessionnaire de la même manière que sur le site owners, cela a fonctionné !
- Après connexion et émission d’un jeton d’accès, l’appel à l’API de consultation VIN auparavant inaccessible a renvoyé le nom, le numéro de téléphone et l’adresse e-mail du propriétaire du véhicule
- Cela signifiait qu’en s’authentifiant sur le portail concessionnaire avec le compte classique que nous avions créé et en utilisant des en-têtes de canal modifiés, il était possible d’accéder à toutes les API réservées aux concessionnaires
Accès non autorisé au véhicule
- Après plusieurs heures d’analyse du code JavaScript, nous avons compris le fonctionnement des endpoints d’enregistrement, de résiliation et de modification du véhicule
- Les 4 étapes suivantes permettaient d’accéder au véhicule de la victime :
- Générer un jeton concessionnaire et extraire la valeur
tokende l’en-tête de réponse HTTP - Obtenir l’adresse e-mail et le numéro de téléphone de la victime
- Modifier les droits d’accès du propriétaire existant à l’aide de l’e-mail divulgué et du VIN
- Ajouter l’attaquant comme nouveau propriétaire du véhicule
- Générer un jeton concessionnaire et extraire la valeur
- Du point de vue de la victime, aucune notification n’indiquait qu’un accès à son véhicule avait eu lieu ni que ses autorisations avaient été modifiées
- Après avoir obtenu le VIN à partir de la plaque d’immatriculation de quelqu’un, un attaquant pouvait suivre discrètement la victime via l’API et envoyer des commandes comme ouvrir les portes, démarrer le véhicule ou faire retentir le klaxon
Création d’un tableau de bord de preuve de concept
- Pour montrer la gravité de cette vulnérabilité, nous avons créé un tableau de bord de preuve de concept permettant à un attaquant (1) de saisir la plaque d’immatriculation d’un véhicule Kia, (2) de récupérer les informations personnelles du propriétaire, puis (3) d’exécuter des commandes de contrôle du véhicule
- La page "Exploit" permettait de tenter un accès non autorisé au véhicule, et la page "Garage" de lancer des commandes et de suivre sa position
- Les tests ont été menés sur une Kia verrouillée louée, et la vidéo en haut du billet montre le véhicule piraté depuis un smartphone, avec déverrouillage/verrouillage à distance, démarrage/arrêt du moteur, klaxon et géolocalisation
Conclusion
- De la même façon que Meta pourrait, au cours du développement, introduire par erreur une modification de code permettant à quelqu’un de prendre le contrôle de votre compte Facebook, les constructeurs automobiles peuvent eux aussi créer ce type de vulnérabilités sur votre véhicule
- Des vulnérabilités continueront d’être découvertes dans les automobiles
Chronologie
- 06/07/24 16:40 UTC - Demande à l’équipe Kia sur la manière de signaler la vulnérabilité
- 06/10/24 13:21 UTC - Réponse reçue de l’équipe Kia
- 06/11/24 22:41 UTC - Signalement de la vulnérabilité
- 06/12/24 18:20 UTC - Envoi d’un e-mail d’alerte lié au ticket en raison de la gravité
- 06/14/24 18:00 UTC - Réponse de l’équipe Kia indiquant que l’enquête était en cours
- 06/18/24 16:41 UTC - Envoi d’un e-mail d’alerte lié au ticket et de captures d’écran de l’outil en raison de la gravité
- 06/20/24 02:54 UTC - Envoi d’un e-mail d’alerte lié au ticket et de captures d’écran montrant l’accès via saisie de plaque d’immatriculation
- 08/12/24 12:30 UTC - Demande de mise à jour via l’e-mail d’alerte lié au ticket
- 08/14/24 17:41 UTC - Réponse de l’équipe Kia indiquant que la vulnérabilité était corrigée et en cours de test
- 09/26/24 08:15 UTC - Confirmation de la correction puis divulgation publique
L’avis de GN⁺
- Un cas choquant qui montre que le piratage automobile devient une réalité. À mesure que les véhicules connectés se multiplient, ce type de vulnérabilité risque de devenir encore plus grave
- Cet incident illustre clairement le manque de maturité des constructeurs automobiles en matière de sécurité et la faiblesse de la conception de leurs systèmes. L’adoption d’un cycle de développement sécurisé (SSDLC), avec gestion des vulnérabilités logicielles et revue de code, semble urgente
- Les technologies de contrôle à distance des véhicules améliorent le confort d’usage, mais élargissent en même temps la surface d’attaque. Il sera important de trouver un équilibre entre technologie, sécurité et vie privée
- L’affaire met aussi en évidence les limites d’une authentification fondée sur des données personnelles. Pouvoir détourner un véhicule en connaissant uniquement sa plaque d’immatriculation est bien trop fragile. Un renforcement de l’authentification, via biométrie ou authentification multifacteur, paraît nécessaire
- Les utilisateurs devraient pouvoir connaître et contrôler l’état de sécurité de leur véhicule. Des fonctions d’alerte indiquant qui a accédé à la voiture et quelles commandes ont été exécutées seraient nécessaires
4 commentaires
Ouh, c’est terrible.
Je pense qu’une option permettant de déconnecter physiquement le véhicule d’Internet devrait bien évidemment être proposée aux propriétaires.
Je me demandais comment fonctionnait le système d’abonnement, et en fait ils font adhérer les gens en l’offrant gratuitement pendant plusieurs années à la base..
Avis sur Hacker News
La décision de Kia d'omettre l'antidémarrage sur ses véhicules américains a provoqué un problème national de vols de voitures
Il serait possible de créer une application de « ride share » qui crawlerait la base de données vulnérable de Kia pour afficher les véhicules Kia à proximité et les déverrouiller
Le problème est que n'importe qui peut s'enregistrer comme concessionnaire, et qu'un concessionnaire peut consulter les informations de véhicules qui n'ont pas été vendus par lui
Selon l'article, à l'origine seuls Kia et les concessionnaires pouvaient suivre les véhicules, mais désormais des personnes « non autorisées » peuvent aussi le faire
Le problème est que Kia détient énormément de données sur les véhicules et leurs propriétaires
Le frère d'un propriétaire de Kia subit des effets négatifs sur sa santé mentale à cause du vol de véhicule
Je n'achèterais pas un véhicule qu'il faut activer en créant un compte en ligne
Il n'existe actuellement aucun véhicule neuf sur le marché sans fonctions connectées
En tant que propriétaire d'une Kia, je suis soulagé que la vulnérabilité ait été corrigée et qu'elle n'ait pas été exploitée de façon malveillante
Je pense qu'il ne faut pas connecter les véhicules à Internet