La seule chose qui manquait : le DRM dans les trains
Le DRM dans les trains

Nous ne pouvons pas utiliser capsules alternatives dans nos machines à café. Nous ne pouvons pas réparer nos tracteurs. Nous ne pouvons pas réparer nos téléphones. Nous ne pouvons pas scanner avec nos imprimantes multifonction à cartouches vides. Et le nouvel épisode de la série est « les contribuables polonais ne peuvent pas réparer les trains qu'ils ont payés », ou plutôt, pas sans l'aide d'un groupe de hackers…

L'histoire commence avec un peu de politique et de budget : Koleje Dolnośląskie, connu sous le nom de Lower Silesian Railways, est un opérateur ferroviaire de la région de Basse-Silésie, dans le sud-ouest de la Pologne. Cet opérateur public utilise au total onze trains Impuls 45WE fabriqués par la société polonaise Newag. Cependant, la maintenance est assurée par une autre société, Serwis Pojazdów Szynowych, ou SPS.

Pourquoi ? Simplement parce que SPS a remporté l'appel d'offres : les trains doivent subir une maintenance obligatoire tous les millions de kilomètres parcourus. SPS et Newag ont tous deux participé au processus, mais l'offre du fabricant d'origine était 750 000 dollars plus chère. Avec un total de 5,5 millions de dollars pour onze trains, SPS a obtenu le contrat, et c'est là que ses problèmes ont commencé : les trains qui entraient dans les ateliers finissaient morts, sans bouger d'un centimètre.

Comment faire revivre un train bloqué par le DRM

La seule chose qui manquait : le DRM dans les trains
Trains avec DRM

Maintenant, SPS dispose de toutes les informations pertinentes (le manuel de maintenance atteint les 20 000 pages), des ateliers et des contacts. Remettre à neuf un train nécessite (en termes très relâchés) un démontage complet, l'envoi des pièces à leurs fabricants pour recertification, le retour et l'assemblage… mais les trains de Newag restaient immobiles, malgré toute la télémétrie indiquant des conditions optimales. Le premier train arrêté a été suivi d'un deuxième, le troisième a subi une panne de batterie, et le quatrième qui a pris sa place… s'est également arrêté lors de la maintenance. Un nouveau rapport d'un autre atelier à Szczecin ajoute de l'huile sur le feu : un train Impuls entre en maintenance et meurt.

La première réponse officielle de Newag a été que les trains se sont arrêtés à cause d'un « système de sécurité », qui n'apparaît dans aucune des 20 000 pages du manuel. Le downtime des trains se traduit par des pénalités contractuelles, et face au manque d'alternatives, les ateliers finissent par contacter un groupe de hackers, « Dragon Sector ».

Les difficultés ne tardent pas à apparaître. Le bus CAN des ordinateurs utilise des protocoles étranges, le SDK officiel ne permet que des téléchargements de logiciels (c'est-à-dire, pas de dumps), et une version modifiée de Ghidra a dû entrer dans l'équation… tout cela avec la rupture imminente du contrat entre SPS et Lower Silesian Railways au-dessus de leurs têtes. Pour faire court : à 08h42 du dernier jour, l'un des ordinateurs modifiés a réussi à faire rouler à nouveau le train.

Ensuite, les trains peuvent fonctionner à nouveau, mais une énorme question demeure : pourquoi ont-ils échoué en premier lieu ? Des mois supplémentaires d'analyse et d'ingénierie inverse ont confirmé la présence de coordonnées GPS associées aux ateliers de réparation et de maintenance. En gros, une condition dans le code bloquait complètement les trains s'ils passaient au moins dix jours dans ces ateliers. S'ajoutent à cela des blocages dus à des changements de composants, et dans un autre train, on a découvert un « arrêt brutal » après avoir parcouru un million de kilomètres, un peu comme le célèbre conflit concernant les tampons d'Epson sur ses imprimantes.

La seule chose qui manquait : le DRM dans les trains
Les ateliers identifiés par leurs coordonnées

À ce jour, les chercheurs ont découvert des liens distants via GSM et ont analysé le logiciel de 29 trains. Dans 24 d'entre eux, ils ont trouvé toutes sortes de blocages et de barrières qui n'apparaissent pas dans la documentation.

Article original en polonais : Cliquez ici

Traduction en anglais : Cliquez ici

Nous l'avons vu sur : Hackaday