BLOG
Shiwen Dialogue 040 | Jailbreaker sa Renault juste pour l'heure
Petit dialogue d’ouverture
Shiwen: Le 2 novembre, l’hacker éthique estonien Rasmus Moorats a publié un article sur son blog avec un titre très direct : pour réparer l’horloge de sa voiture, il a piraté le système de navigation de sa propre voiture. La voiture était une Renault Latitude de 2014, équipée du système TomTom Carminat LIVE, qui fonctionnait avec un système modifié basé sur le noyau Linux 2.6 des années 2011. L’article est rapidement devenu populaire sur Hacker News, obtenant plus de 500 points et plus de deux cents commentaires. Ce qui est intéressant, c’est que la méthode technologique était extrême, mais l’objectif était très simple : corriger une heure d’écart dans l’horloge de la voiture. Yongliang, quel est l’histoire ?
Yongliang: L’incident était très banal. L’Estonie a un heure de sommeil d’hiver ; à la fin octobre, le fuseau horaire passe de UTC+3 à UTC+2, ce qui fait qu’l’horloge de la voiture est lente d’une heure. Il a cherché dans le menu de configuration, mais n’a trouvé aucune option pour modifier l’heure. Le propriétaire précédent lui avait rappelé lors de la vente de sa voiture : pour changer l’horloge, il fallait une carte SD contenant des cartes routières. Il ne l’a pas cru à l’époque, pensant que le propriétaire précédent ne pouvait pas accéder au menu, donc il n’a pas demandé de carte. Plus tard, il a confirmé par contre, le propriétaire avait raison : la définition du menu de configuration se trouvait dans cette carte ; sans carte, le système de navigation ne savait même pas comment accéder au menu de configuration.
Q1: Comment une seule carte SD a-t-elle pu bloquer l’horloge ?
Shiwen: Alors il fallait trouver un moyen d’obtenir une carte, n’est-ce pas ? On pouvait copier une carte, non ?
Yongliang: Non, c’était le premier obstacle. Le système utilisait un DRM : il vérifiait le CID de la carte SD (un identifiant unique gravé sur la carte) et la signature du fichier était liée à ce CID. Si on copiait le fichier sur une carte vide, elle serait directement rejetée. Moorats a supposé que ce système DRM visait à prévenir la piratage des cartes routières. Il a cherché des canaux de vente de véritables cartes auprès de tiers, et le coût de transport jusqu’en Estonie était d’environ 60 euros. Selon ses propres mots, il a dit : je ne veux pas de cartes routières, je utilise la navigation de mon téléphone, je veux juste corriger l’heure. Alors il a pris une décision qui a fait rire tout le monde avant de le faire taire : il n’a pas acheté de carte, mais a piraté le système de navigation lui-même.
Shiwen: Du point de vue de l’investissement et du retour, n’est-ce pas complètement inutile ?
Yongliang: Si on calcule les coûts, bien sûr que ce n’est pas rentable. 60 euros pour un transfert une fois suffisait, mais pirater le système nécessitait plusieurs semaines de travail gratuit. Mais pour lui, ce n’était pas une question de coût, c’était une question de principe : la voiture était une propriété qu’il avait achetée, mais l’une de ses fonctions fondamentales était bloquée par une carte proprietaire. C’est précisément là que se jouait le conflit sur le droit de réparation : on croit avoir acheté un produit, mais en réalité, on n’a obtenu que la permission d’utiliser le produit, et la clé de cette permission est entre les mains du fournisseur.
Q2: Comment la chaîne de piratage s’est-elle déroulée ?
Shiwen: Parlons de sa méthode technologique. Qu’a-t-il fait en premier ?
Yongliang: La première étape était de chercher auprès des anciens. Il a trouvé un ancien qui avait créé un repository (écrit en français, l’auteur du repository explique son utilisation intensive d’un LLM), et a obtenu le URL de téléchargement du firmware. Dans le firmware, un fichier appelé ttsystem est un système de fichiers ext3, qui correspond au système de fichiers racine de l’appareil. Ensuite, il a fait ce que je considère comme la plus professionnelle des étapes : avec QEMU, il a créé un simulateur, a personnalisé le noyau 2.6 de la même version, a installé les correctifs, et a ajouté un simulateur CAN simple. Le système voulait se réinitialiser tous les 3 secondes, mais après avoir installé les correctifs, il a ignoré les appels de système de réinitialisation, maintenant le système en état de veille. Avec le simulateur, il pouvait tester des attaques sans toucher la véritable voiture.
Shiwen: Qu’a-t-il vu dans le simulateur ?
Yongliang: En voyant cet appareil de 2011, j’ai été surpris par la sécurité stricte : le rootfs est只读, la carte SD est en vfat et noexec, et il y a également une couche de unionfs. Presque toutes les partitions sont soit只读, soit interdites d’exécution. Son commentaire est que ce niveau de sécurité dans un appareil de 2011 est surprenant. Il a également analysé le décodeur du langage de script personnalisé de l’interface utilisateur de la voiture, ttn, et a découvert qu’un fichier de script appelé master.script était chargé à chaque démarrage, ce qui constitue une porte d’entrée pour les attaques.
Shiwen: Quels outils lui a donnés ce langage de script ?
Yongliang: Deux outils incomplets. Le premier est le commande SHEX, qui permet à execve d’exécuter n’importe quel binaire, mais accepte seulement un token séparé par espace : il permet de contrôler quelle programmation s’exécute, sans pouvoir transmettre de paramètres. Bien que la carte SD soit noexec, elle peut être contournée en utilisant /bin/sh pour charger le script sur la carte, mais sans paramètres, il n’y a pas d’accès possible. Le second est la commande LOG, qui permet d’écrire une ligne de caractères ASCII imprimables dans une destination spécifique. LOGFILE définit une traversée de répertoires, et ttn fonctionne en tant que root, ce qui théoriquement permet d’écrire n’importe où dans le système. Mais le rootfs est只读, les autres partitions sont noexec, donc l’écriture ne peut pas être exécutée. Il a également effectué des tests de frappe sur le décodeur d’images avec Unicorn, obtenant de nombreuses lectures out-of-bounds, mais aucune écriture utilisable. Les deux pièces du puzzle ne s’emboîtent pas.
Shiwen: Alors comment a-t-il finalement assemblé les pièces ?
Yongliang: C’est la partie la plus intéressante de l’article. Il a pensé à une technique classique pour exploiter des vulnérabilités du noyau, core_pattern : écrire un pipe avec une commande dans /proc/sys/kernel/core_pattern, et lorsque le programme coule, le noyau exécute cette commande en tant que root pour traiter le coredump. Cette fonctionnalité a été introduite à partir de 2.6.24, et le noyau de la voiture est exactement à 2.6.28. Ainsi, il a utilisé la traversée de répertoires de LOG pour pointer LOGFILE vers core_pattern, a écrit une commande pipe pour exécuter le payload sur la carte avec /bin/sh, puis a utilisé SHEX pour exécuter /bin/dbus-monitor : ce programme se suicide avec SIGABRT lorsqu’il ne peut pas se connecter au bus système, générant un coredump sans faire redémarrer l’ensemble du système. Le noyau voyant qu’il y a un coredump, exécute docilement la commande sur sa carte SD en tant que root. Le master.script final ne contient que trois lignes. Après avoir obtenu le contrôle, sa première action a été de faire une sauvegarde complète de l’eMMC avec dd, puis il a découvert que les heures étaient stockées dans /mnt/flash/settings.dat. La voiture n’a pas de concept de fuseau horaire, donc les heures sont récupérées depuis le GPS et stockées en minutes : il a changé la heure de 180 à 120, et c’était fini.
Q3: Qu’est-ce qui se dit dans les commentaires ?
Shiwen: Plus de deux cents commentaires sur HN, qu’est-ce qui se dit principalement ?
Yongliang: La direction des commentaires positifs est étonnamment cohérente : l’absurdité du problème de l’heure est un mal de l’industrie. Un utilisateur expérimenté a dit que le problème de l’heure du VCR était une vieille histoire des années 90, mais à l’époque on pouvait au moins le régler ; sans carte SD propriétaire, il est impossible de corriger l’heure, ce qui peut être considéré comme un design extrêmement peu convivial pour les utilisateurs. D’autres ont donné des exemples de leur propre expérience : un programmeur professionnel de l’Arizona a dit que son nouveau Honda CRV avait une heure d’écart tous les six mois, et il n’a toujours pas compris comment le régler. Un autre a voulu réparer le système de son Honda de 2014, simplement parce qu’il ne supportait pas que le véhicule envoye automatiquement des commandes de lecture à chaque connexion Bluetooth. Des utilisateurs canadiens sont encore plus inquiets : plusieurs provinces cesseront de régler l’heure au printemps prochain, et les règles DST des nombreux systèmes de conduite ne seront pas mises à jour, ce qui entraînera des problèmes similaires.
Shiwen: Est-ce qu’il a dit qu’il prenait un chemin plus long ?
Yongliang: Oui. Certains ont dit que l’auteur aurait dû simplement acheter la carte de l’ancien propriétaire, parfois les utilisateurs ordinaires ont raison ; d’autres ont proposé une solution commerciale : remplacer le système de conduite par un autre, et s’assurer qu’il prend en charge les fonctions de contrôle du volant. Un propriétaire Volkswagen Scirocco a dit que la commande DST était déjà présente dans le menu de son véhicule, tout en critiquant l’excellente conception ergonomique et du firmware de Renault depuis des années. Plusieurs opinions pointent vers le même fait : certains fabricants font passer le changement d’heure comme une simple commande, d’autres le gardent dans le DRM. La différence ne réside pas dans la difficulté technique, mais dans ce que les fabricants considèrent comme des utilisateurs.
Q4: Dans les logiciels d’entreprise, à quoi ressemble cette carte SD ?
Shiwen: Avec une équipe technique depuis dix-sept ans, est-ce que cette situation vous semble familière ?
Yongliang: C’est très familier. C’est mon expérience, pas une statistique : dans l’histoire d’achat de presque toutes les grandes entreprises, on trouve ce genre de scénario. Un système dit qu’il faut ajouter un module pour cette fonctionnalité, un module dit que son fonctionnement dépend de son serveur de licences, le format de sortie est privé, et pour migrer les données, il y a une série de contraintes qui attendent vos interfaces. Renault utilise une carte, les logiciels d’entreprise utilisent un contrat, la structure est identique : ce que le fournisseur s’assure de ne pas vendre, c’est ce à quoi vous êtes incapable de vous passer. Le DRM prétend protéger contre le piratage, mais en réalité, il empêche les utilisateurs d’utiliser la fonction de base de régler l’heure. Lorsque les moyens de protection contre le piratage commencent à entraver l’utilisation de la propriété par le propriétaire, cela dépasse les limites.
Shiwen: L’auteur dit que la sécurité en 2011 était inattendablement forte, comment est-ce aujourd’hui en 2026 ?
Yongliang: Une personne déterminée a démonté un ensemble d’outils open-source. QEMU, Unicorn et les outils de reverse engineering sont tous gratuits, et la stratégie de sécurité basée sur le flou a une date limite, qui est déterminée par la courbe des coûts du reverse engineering. Cette courbe est maintenant réduite par l’AI, et il y a des preuves dans l’article : le dépôt précédent de l’auteur utilise intensivement LLM pour l’aide. Le reverse engineering était autrefois une compétence spécialisée pour un petit groupe, mais aujourd’hui le coût d’accès diminue clairement. Pour les fabricants, cela signifie que la protection des utilisateurs avec des formats privés s’affaiblit : ceux qui ne peuvent pas pirater achèteront la carte, et ceux qui peuvent le faire n’auront pas besoin de dépenser un centime. Le pouvoir de fixation des prix des stratégies de blocage commence à se dérober des mains des fournisseurs.
Q5: En mettant de côté les controverses, que peuvent emprunter les ingénieurs ?
Shiwen: Qu’est-ce que cet article peut apprendre pour ceux qui travaillent dans le domaine technique ?