Passer au contenu

Dieselgate : comment les constructeurs automobiles nous ont arnaqués

Des chercheurs ont décortiqué le code informatique présent dans une série de voitures diesel. Leur analyse montre comment l’arnaque aux émissions a été concrètement réalisée.

Volkswagen, Mitsubishi, Fiat Chrysler, Daimler, Renault, GM… La liste de constructeurs automobiles aspirés par le scandale des moteurs diesel truqués – également appelé « Dieselgate » – ne cesse de s’allonger. Mais comment, sur le plan technique, cette arnaque a-t-elle été implémentée ? Quel code a été utilisé pour berner les instances de régulation ? Un groupe international de sept chercheurs vient récemment d’apporter des réponses à ces questions, à l’occasion de la conférence « IEEE Symposium on Security & Privacy », qui s’est tenue la semaine dernière à San José.

Pendant un an, ils ont inspecté à la loupe un type bien précis d’unités de contrôle du moteur, à savoir l’EDC17 de l’équipementier Bosch. Ce boîtier est utilisé dans les voitures du groupe Volkswagen, ainsi que les Fiat 550X. Il a pour rôle de réguler les valves et les injections du moteur en s’appuyant sur tout un tas d’indicateurs récupérés auprès de sondes : vitesse, accélération, embrayage, freinage, pression gazeuse, température de combustion, teneur en oxygène des éjections, etc.

Les fans de tuning à la source de l’enquête

Pour réaliser leur étude, les chercheurs ont récupéré près de 1000 images de firmwares de ce type d’appareil sur des forums de fans de tuning de voitures et sur des portails web de certains équipementiers d’accessoires (« aftermarket »). Cette grande variété de logiciels s’explique par le fait que chaque modèle de voiture dispose d’une version adaptée du firmware qui lui est propre, et celle-ci est régulièrement modifiée et mise à jour.  

Les chercheurs ont décortiqué certains firmwares à la main, révélant précisément la manière dont le dispositif de trucage était implémenté. Le principe de l’arnaque est toujours le même: l’unité de contrôle cherche à savoir si le véhicule se trouve dans un cycle de test d’émission ou non.

Or, il s’avère que ce n’est pas très compliqué. Afin d’obtenir des résultats comparables, les tests d’émission suivent un protocole très précis et leur déroulement est toujours le même. Accélérations, freinages, changements de vitesse… tout est chronométré à la seconde près. Le comportement d’un véhicule testé est, par conséquent, très particulier et donc prévisible.

Exemple d’un cycle de test d’émission

Toutefois, les stratégies de détection varient d’un constructeur à l’autre, et parfois même d’une version de firmware à l’autre. Pour l’unité de contrôle de la Fiat 500X, l’arnaque est plutôt simple. Au bout de 26 minutes et 40 secondes, l’appareil va automatiquement réduire la fréquence de fonctionnement du « piège à NOx » (« Lean NOx Trap »), un dispositif catalytique capable de piéger les oxydes d’azote, qui figurent parmi les principaux polluants générés par les moteurs diesel. Pourquoi 26 minutes et 40 secondes ? Parce que cela « correspond au temps d’exécution des cycles de tests d’émission standardisés », expliquent les chercheurs.

Détection kilométrique

Chronométrer la durée d’un test éventuel, c’est simple à implémenter mais c’est quand même un peu brut de fonderie. Chez le groupe Volkswagen, la détection est beaucoup plus subtile et efficace, dans la mesure où elle peut se faire déjà au bout de quelques minutes. Dans les voitures du groupe allemand, l’unité de contrôle du moteur dispose d’une fonction dite de « condition acoustique », un nom bidon derrière lequel se cache un calcul qui, à chaque instant, va vérifier si le nombre de kilomètres parcourus depuis le démarrage se trouve dans un intervalle bien défini.

Que représente cet intervalle ? Il correspond au nombre de kilomètres que « parcourt » une voiture lorsqu’elle est soumise à un test d’émission. A chaque test d’émission standard, on peut en effet faire correspondre une courbe kilométrique assez précise, qui découle directement de son protocole. La fonction « acoustique » consiste à flanquer cette courbe d’une double barrière mini et maxi. Tant que le véhicule se trouve à l’intérieur de cette espèce de tunnel kilométrique, le moteur fonctionne en mode « Hmlg » (i.e. « Homologation »), en dehors il bascule en mode « Rd » (i.e. « Real driving »).

Courbes de détection de test implémentées dans les voitures Volkswagen. On voit que les tunnels de détection épousent parfaitement les courbes kilométriques des tests d’émission.

Les chercheurs ont développé un outil d’analyse statique de code pour voir si ce type de détection était très répandu dans les voitures du groupe Volkswagen. Résultat : sur plus 963 firmwares testés, 406 intègrent ce dispositif. Les logiciels truqués se retrouvent dans plusieurs gammes du groupe :  VW Golf, VW Passat, VW Tiguan, VW Octavia, VM Sharan, Seat Alhambra, Seat Ateca, Scoda Octavia, Scoda Superb, Scoda Yeti, Audi A3, Audi A4, Audi A6, Audi TT, etc.

L’impact du mode « Rd » sur le fonctionnement du moteur peut également varier d’une version de firmware à l’autre. Le hacker Felix Domke, qui a participé à cette étude internationale, a pu constater en 2015 que la réduction catalytique sélective (SCR, Selective Catalytic Reduction) de sa Volkswagen Sharan se mettait immédiatement en mode dégradé quand le tunnel de courbes était franchi. SCR est une technique qui permet de réduire les oxydes d’azote en injectant de l’urée (« AdBlue ») dans le flux gazeux qui sort après combustion.

Felix Domke à la conférence 32C3. Le cercle rouge indique l’arrêt du fonctionnement catalytique SCR. Il intervient pile au moment où la voiture sort du tunnel kilométrique.

Mais le kilométrage par durée de parcours n’est pas le seul indicateur utilisé par les constructeurs automobiles pour détecter un test d’émission. A partir de 2009, un autre indicateur apparaît dans les firmwares de Volkswagen, à savoir l’angle de rotation du volant. Si celui dévie de plus de 20 ° par rapport à la position centrale, l’appareil passe immédiatement en mode « Rd ». Facile.

Calcul de la force de rotation

Les fonctions de détection peuvent être encore beaucoup plus compliquées. En 2016, Felix Domke s’est penché sur le firmware d’une Opel Zafira (groupe General Motors). Là encore, il a découvert un dispositif de triche basé sur des courbes à ne pas dépasser. Mais cette fois-ci, il ne s’agit pas de courbes kilométriques, mais de courbes qui représentent la force de rotation du moteur (i.e. son moment cinétique) pour chaque vitesse enclenchée. Dès que le moteur dépasse ces courbes – ce qui arrive à chaque fois que l’on fait un trajet réel –  il passe dans un mode écologique dégradé. Par contre, le hacker a pu constater que le moteur ne dépasse jamais ces courbes quand il suit un protocole de test. CQFD.

En haut, une Opel Zafira en cycle de test. En bas, une Opel Zafira en conduite réelle.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Gilbert KALLENBORN