Dans le contexte: Les applications à distance pour les voitures sont très pratiques. J’adore démarrer ma Subaru Legacy à distance pour lui permettre de se réchauffer un peu maintenant que le temps se refroidit. Cependant, ces fonctionnalités ne sont pas sans risque. Certains sont calculés. Par exemple, vous pouvez limiter les risques de vol de voiture en ne déverrouillant ou en ne démarrant pas la voiture à moins d’avoir une ligne de vue directe. D’autres menaces sont hors de votre contrôle, comme la sécurité de l’application distante.
Ces applications de voiture à distance pratiques qui vous permettent de démarrer, de déverrouiller, de klaxonner et même de localiser votre voiture à partir de votre téléphone ne sont peut-être pas aussi sécurisées que vous le pensiez. Les pirates ont trouvé un moyen de faire toutes ces choses sans avoir besoin de vos identifiants de connexion.
L’astuce travaillé pour plusieurs marques, dont les véhicules Acura, Honda, Infiniti et Nissan. Cela pourrait également fonctionner sur BMW, Hyundai, Jaguar, Land Rover, Lexus, Subaru et Toyota puisqu’ils utilisent tous le même fournisseur télématique. La liste des voitures était si large car il semble que SiriusXM soit la société qui gère les services à distance pour tous ces fabricants.
Plus de piratage de voitures !
Plus tôt cette année, nous avons pu déverrouiller, démarrer, localiser, flasher et klaxonner à distance tous les véhicules Honda, Nissan, Infiniti et Acura connectés à distance, totalement non autorisés, ne connaissant que le numéro VIN de la voiture.
Voici comment nous l’avons trouvé et comment cela fonctionne : pic.twitter.com/ul3A4sT47k
—Sam Curry (@samwcyo) 30 novembre 2022
Les pirates ignoraient que SiriusXM était même dans ce secteur d’activité, car il est mieux connu pour sa fonctionnalité de radio par satellite. Cependant, si vous possédez l’une de ces marques, vous savez probablement déjà que SiriusXM est derrière les services à distance de votre voiture puisque vous devez créer un compte pour les utiliser.
Hacker autoproclamé, chasseur de primes de bogues et ingénieur en sécurité du personnel pour Yuga Labs Sam Curry a expliqué dans un fil Twitter que tout ce dont lui et son équipe avaient besoin pour accéder à n’importe quel profil de conducteur était le numéro d’identification du véhicule (VIN) de la voiture. Ce code est unique pour toutes les voitures. Cependant, il est facilement accessible en se promenant dans n’importe quel parking car il est visible à travers le pare-brise sur le tableau de bord de la plupart des véhicules.
Il a fallu un certain temps aux chercheurs pour rétroconcevoir les applications, mais puisque SiriusXM a mis tous ses œufs dans le même panier, ils n’en avaient besoin que d’un pour une preuve de concept – NissanConnect. Ils ont contacté quelqu’un qui possédait une Nissan et ont emprunté ses informations d’identification pour approfondir le processus d’authentification.
Tout en explorant cette avenue, nous avons continué à voir SiriusXM référencé dans le code source et la documentation relative à la télématique des véhicules.
C’était super intéressant pour nous, car nous ne savions pas que SiriusXM offrait une fonctionnalité de gestion de véhicule à distance, mais il s’avère que c’est le cas ! pic.twitter.com/Thxkdkdhn4
—Sam Curry (@samwcyo) 30 novembre 2022
Les applications fonctionnent en communiquant avec un domaine appartenant à SiriusXM, et non avec le constructeur automobile, comme on pourrait le penser intuitivement. Par essais et erreurs, Curry a découvert que le seul paramètre dont l’application NissanConnect et le serveur d’authentification hébergé se souciaient était « customerId ». La modification d’autres champs, comme « vin », n’a eu aucun effet.
Au cours de son espionnage, l’équipe a découvert que le champ customerId avait un préfixe « nissancust » et un en-tête « Cv-Tsp » qui spécifiait « NISSAN_17MY » pour le véhicule de test. S’ils modifiaient l’une de ces variables, les requêtes échouaient. Ils ont donc mis ce point final en veilleuse et se sont concentrés sur les autres.
Plusieurs heures plus tard, les chercheurs ont rencontré une réponse HTTP au format « vin [that] ressemblait étrangement au préfixe « nissancust » de la requête HTTP précédente. « Ils ont donc essayé d’envoyer l’ID avec préfixe VIN en tant que customerId. Étonnamment, il a renvoyé un jeton de porteur, ce qui était en quelque sorte un moment eureka. Ils ont essayé jeton pour envoyer une demande de récupération du profil utilisateur, et cela a fonctionné !
Le format du paramètre « customerId » était intéressant car il y avait un préfixe « nissancust » à l’identifiant avec l’en-tête « Cv-Tsp » qui spécifiait « NISSAN_17MY ».
Lorsque nous avons modifié l’une de ces entrées, cette requête a échoué.
—Sam Curry (@samwcyo) 30 novembre 2022
Les chercheurs ont accédé à diverses informations sur les clients via HTTP, notamment le nom, le numéro de téléphone, l’adresse et les détails de la voiture de la victime. En utilisant cela comme cadre, ils ont créé un script python pour accéder aux détails du client de tout VIN saisi. Plus de coups et d’incitations ont conduit Curry à découvrir qu’il pouvait non seulement afficher les informations de compte, mais également utiliser l’accès pour envoyer des demandes de commande à la voiture.
« Nous pourrions exécuter des commandes sur des véhicules et récupérer des informations sur les utilisateurs à partir des comptes en ne connaissant que le numéro VIN de la victime, quelque chose qui était sur le pare-brise », a tweeté Curry. « Nous avons pu déverrouiller, démarrer, localiser, flasher et klaxonner à distance tous les véhicules Honda, Nissan, Infiniti et Acura connectés à distance, totalement non autorisés, ne connaissant que le numéro VIN. [sic] de la voiture. »
Il a renvoyé « 200 OK » et a renvoyé un jeton porteur ! C’était excitant, nous générions un jeton et il indexait le VIN arbitraire comme identifiant.
Pour nous assurer que cela n’était pas lié à notre session JWT, nous avons complètement supprimé le paramètre d’autorisation et cela fonctionnait toujours ! pic.twitter.com/zCdCHQfCcY
—Sam Curry (@samwcyo) 30 novembre 2022
De plus, les appels API pour les services télématiques fonctionnaient même si l’utilisateur n’avait plus d’abonnement SiriusXM actif. Curry a également noté qu’il pouvait inscrire ou désinscrire les propriétaires de véhicules du service à volonté.
Ne paniquez pas si vous possédez l’une de ces marques et utilisez sa fonctionnalité à distance. Yuga Labs a contacté SiriusXM au sujet de la faille de sécurité béante, et il a immédiatement publié un correctif avant que les chercheurs n’annoncent la vulnérabilité plus tôt cette semaine.