URL: https://linuxfr.org/news/pratiques-dans-l-industrie-ferroviaire-un-train-de-retard Title: Pratiques dans l'industrie ferroviaire : un train de retard... Authors: Andre Rodier Ysabeau đŸ§¶, BAud, L'intendant zonard, martoni, FrancoisA30, bobble bubble et BenoĂźt Sibaud Date: 2023ćčŽ12月15æ—„T19:10:20+01:00 License: CC By-SA Tags: ccc, ransomware, train, droit_de_rĂ©parer, pologne, newag et 37c3 Score: 69 Une histoire, comme il en est tant, hĂ©las, de pratiques anticoncurrentielles dans l’industrie. Oubliez les imprimantes et les tracteurs, cette fois-ci, nous passons Ă  une Ă©tape supĂ©rieure : les trains. Oui, oui, les trains, vous avez bien lu. _Si_ les faits se confirment, un constructeur de train polonais aurait Ă©tĂ© pris en flagrant dĂ©lit de pratiques anti-concurrentielles. ---- ---- # Les faits Au printemps 2022, le premier des onze trains du modĂšle _Newag Impuls 45WE_, exploitĂ©s par la compagnie rĂ©gionale Koleje Dolnoƛląskie en Basse-SilĂ©sie, est en fin de vie. Leur maintenance est gĂ©rĂ©e par la sociĂ©tĂ© _Serwis PojazdĂłw Szynowych_, (_SPS_), qui a remportĂ© l’appel d’offre, pour un prix total d’environ 5,1 millions d’euros (22 millions de zƂoty). Cette inspection est obligatoire, aprĂšs un million de kilomĂštres. Le constructeur Ă  l’origine des trains, la sociĂ©tĂ© _Newag_, a Ă©galement participĂ© Ă  l’appel d’offres, mais leur prix Ă©tait supĂ©rieur d’environ 696 000 € (3 millions de zƂoty). L’entretien d’un train est une affaire complexe : chaque piĂšce doit ĂȘtre dĂ©montĂ©e et envoyĂ©e aux fabricants concernĂ©s pour ensuite ĂȘtre rĂ©-assemblĂ©es Ă  leur retour. SPS effectue l’inspection conformĂ©ment au manuel fourni, d’environ vingt mille pages. Une fois le premier train remontĂ©, l’ordinateur de bord indique le succĂšs de l’opĂ©ration et la conformitĂ© de l’ensemble. Cependant, les onduleurs ne fournissent pas de tension aux moteurs et le train n’avance pas, sans que personne ne comprenne. Les techniciens de service recherchent, vĂ©rifient et re-vĂ©rifient les composants, parcourent les instructions – et ne trouvent aucune rĂ©ponse. Koleje Dolnoƛląskie dispose de onze trains _Impuls_ et, selon le calendrier, un autre est en cours de maintenance. Tandis que le premier est toujours immobilisĂ©, le deuxiĂšme train arrive, subit la mĂȘme rĂ©vision, avec malheureusement, le mĂȘme rĂ©sultat. Tout fonctionnait parfaitement avant la maintenance, mais les moteurs refusent de dĂ©marrer une fois celle-ci terminĂ©e. Pour empirer la situation, le constructeur refuse d’aider. Nous avons maintenant deux trains Ă  l’arrĂȘt dans l’atelier. Le troisiĂšme rate l’inspection en raison d’une panne de batterie, et un quatriĂšme train est envoyĂ© Ă  sa place. La sociĂ©tĂ© dĂ©cide d’utiliser la quatriĂšme pour remorquer une des locomotives en panne. Cependant, une fois connectĂ©e Ă  l’une d’entre elle, la nouvelle locomotive s’arrĂȘte Ă©galement, mais la raison semble diffĂ©rente et totalement inconnue. Pendant ce temps, dans un autre atelier, Ă  _Szczecin_, une autre locomotive Impuls tombe en panne, dans des circonstances trĂšs similaires : elle ne redĂ©marre pas aprĂšs la maintenance. Le problĂšme devient si grave que les mĂ©dias s’en mĂȘlent et relatent l’affaire. Les six trains les plus longs de Koleje Dolnoƛląskie Ă©tant hors service, les horaires doivent ĂȘtre rĂ©duits, des trains de remplacement doivent ĂȘtre envoyĂ©s, et les passagers s’entassent dans des trains trop courts. Newag explique que les trains sont bloquĂ©s par un « systĂšme de sĂ©curitĂ© », mais rien n’est mentionnĂ© dans les pages du manuel. Chaque journĂ©e d’un train immobilisĂ© dans l’atelier coĂ»tant plusieurs milliers de zlotys en pĂ©nalitĂ©s contractuelles, et avec plusieurs trains en attente, la tension chez SPS augmente. Le problĂšme n’étant identifiĂ© ni par les mĂ©caniciens ni par les Ă©lectriciens, quelqu’un finit rechercher des hackers polonais, et contacte le groupe _Dragon Sector_. SPS prend donc contact avec eux, dont les reprĂ©sentants incrĂ©dules finissent par signer le contrat. Le projet est entrepris par des membres de Dragon Sector, spĂ©cialement ceux connus pour avoir hackĂ©s le BIOS de portables Toshiba -- MichaƂ « Redford » Kowalczyk et Sergiusz « q3k » BazaƄski. Kuba « PanKleszcz » Stępniewicz, qui a de l’expĂ©rience dans l’automatisation industrielle, se joint Ă©galement Ă  l’équipe. L’équipe se met rapidement au travail et Kuba part en voyage Ă  l’atelier. Une fois sur place, ils reçoivent un train qui ne roule pas, deux ordinateurs de rechange et les fichiers SDK du fabricant de l’ordinateur. Ils commencent par Ă©couter le bus de donnĂ©es CAN (Controller Area Network), mais sans information sur les protocoles, la tĂąche s’avĂšre ardue. Ils tentent de tĂ©lĂ©charger le microcode de l’ordinateur de bord, mais la documentation du SDK permet uniquement les mises Ă  jour, pas d’inspecter la version installĂ©e. La premiĂšre tentative d’utilisation d’une ancienne version du micrologiciel, sur un ordinateur de rechange se solde par un Ă©chec : l’ordinateur ne rĂ©pond plus. Ils trouvent finalement l’interface de dĂ©bogage sur le dernier ordinateur de rechange, et octet par octet, en extraient la mĂ©moire. L’ordinateur est basĂ© sur l’architecture Infineon TriCore, souvent utilisĂ©e dans l’industrie automobile, et les chercheurs finissent enfin par examiner le code en utilisant une version modifiĂ©e de Ghidra. Les travaux avancent doucement, mais l’échĂ©ance approche et les trains tombent toujours en panne. Dos au mur, Koleje Dolnoƛląskie, dĂ©cide de coopĂ©rer avec Newag sur l’entretien des trains en panne, y compris ceux qui, selon l’appel d’offres initial, devaient ĂȘtre entretenus uniquement par SPS. Le contrat devant ĂȘtre rĂ©siliĂ© d’ici une semaine, les chercheurs se mettent Ă  travailler de plus belle. Le groupe est enfin en possession de tous les micro-logiciels des trains, autant ceux en Ă©tat de marche que ceux en panne. Chacun des trains ayant des fonctionnalitĂ©s particuliĂšres et une version diffĂ©rente du logiciel, l’analyse est difficile, mais ils commencent Ă  identifier une piste. Entre un ordinateur en Ă©tat de marche et un autre en panne, certaines plages de mĂ©moire diffĂšrent. Une fois corrigĂ©es sur un ordinateur en panne, celui-ci dĂ©marre enfin. Le test Ă©tant effectuĂ© sur un ordinateur isolĂ© sur un bureau, il s’arrĂȘte dĂšs que le logiciel dĂ©tecte qu’il manque le reste du train, mais il est prĂȘt Ă  faire fonctionner les onduleurs. Moins de 24 heures avant la date fatidique, les chercheurs identifient des paramĂštres supplĂ©mentaires pour faire dĂ©marrer le train. Malheureusement, le condensateur du dernier ordinateur de bord en Ă©tat de marche brĂ»le pendant les expĂ©riences. AprĂšs un nouveau brainstorming et de nombreuses tentatives pour combiner deux ordinateurs endommagĂ©s en un seul, le premier est rĂ©parĂ©, et Ă  2 heures du matin, la veille de l’heure apocalyptique, les chercheurs configurent l’ordinateur qui fera dĂ©marrer le train. Un de nos hĂ©ros monte Ă  bord d’un train (d’une autre compagnie) pour rejoindre l’atelier avec un ordinateur probablement en Ă©tat de marche devant les reprĂ©sentants des chemins de fer de Basse-SilĂ©sie, qui ont annoncĂ© leur visite pour 9h30. Malheureusement, le train que prend le chercheur pour se rendre sur place est en retard. Finalement, dans la matinĂ©e, un chercheur Ă©quipĂ© d’un ordinateur arrive sur les lieux et le connecte au train en panne. Et celui-ci ne bouge pas... Un autre brainstorming identifie le dernier drapeau oubliĂ© et Ă  8h42 le train parvient enfin Ă  dĂ©marrer ! La dĂ©lĂ©gation de Koleje Dolnoƛląskie, voyant Ă  9h30 que les trains ont une chance de reprendre vie, ne rĂ©silie pas le contrat avec SPS. ## Pourquoi le train est tombĂ© en panne ? DĂ©terminer comment faire dĂ©marrer le train ne reprĂ©sentait qu’une petite partie du problĂšme. Il fallait maintenant dĂ©couvrir pourquoi il Ă©tait tombĂ© en panne. Des mois d’analyse et de rĂ©tro-ingĂ©nierie ont permis de rĂ©vĂ©ler des conditions extrĂȘmement intĂ©ressantes inscrites dans le code logiciel de diffĂ©rents trains fournis par Newag. AprĂšs des centaines d’heures passĂ©es Ă  Ă©tudier les codes Ă©mis par des dizaines de trains, il a Ă©tĂ© possible d’identifier des mĂ©canismes provoquant des pannes soudaines dans les trains. Les valeurs numĂ©riques 53,13845 et 17,99011 trouvĂ©es dans le code informatique semblaient familiĂšres Ă  premiĂšre vue. Il s’est rapidement avĂ©rĂ© qu’il s’agissait de coordonnĂ©es GPS, indiquant les environs de la gare de Bydgoszcz GƂówna, ou, plus prĂ©cisĂ©ment, le centre de service PESA situĂ© juste Ă  cĂŽtĂ©. BientĂŽt, les coordonnĂ©es d’autres services susceptibles d’effectuer des rĂ©parations et des inspections de trains en Pologne ont Ă©galement Ă©tĂ© trouvĂ©es. Ci-dessous, nous montrons le pseudo-code de l’algorithme : ```c check1 = 53.13845 < lat && lat < 53.13882 && 17.99011 < long && long < 17.99837 ; check2 = 53.14453 < lat && lat < 53.14828 && 18.00428 < long && long < 18.00555 ; check3 = 52.17048 < lat && lat < 52.17736 && 21.53480 < long && long < 21.54437 ; check4 = 49.60336 < lat && lat < 49.60686 && 20.70073 < long && long < 20.70840 && (this->lock_function_test & 1) ; check5 = 53.10244 < lat && lat < 53.10406 && 18.07817 < long && long < 18.08243 ; check6 = 50.12608 < lat && lat < 50.12830 && 19.38411 < long && long < 19.38872 ; check7 = 52.77292 < lat && lat < 52.77551 && 18.22117 < long && long < 18.22724 ; ``` Les paires de coordonnĂ©es dĂ©finissent les zones d’atelier. Il existe une condition inscrite dans le code informatique qui exige que le train soit dĂ©sactivĂ© s’il passe au moins dix jours dans l’un de ces ateliers. L’un des ateliers appartient Ă  Newag lui-mĂȘme - mais une condition logique diffĂ©rente a Ă©tĂ© dĂ©finie pour ses coordonnĂ©es, probablement Ă  des fins de test. D’autres surprises furent bientĂŽt dĂ©couvertes. Il s’agissait notamment du blocage du train lorsqu’un de ses composants (vĂ©rifiĂ© par son numĂ©ro de sĂ©rie) Ă©tait remplacĂ©. Une option permettant d’annuler le verrouillage a Ă©galement Ă©tĂ© dĂ©couverte -- cela ne nĂ©cessitait pas de dĂ©finir des indicateurs au niveau de la mĂ©moire de l’ordinateur, mais uniquement la sĂ©quence appropriĂ©e de clics sur les boutons dans la cabine et sur l’écran de l’ordinateur de bord. Lorsque les informations sur le lancement rĂ©ussi des trains Impuls sont parvenues aux mĂ©dias, les trains ont reçu une mise Ă  jour logicielle qui supprimait cette possibilitĂ© de « rĂ©paration ». Un code a Ă©tĂ© trouvĂ© sur un autre train lui indiquant de « casser » aprĂšs avoir parcouru un million de kilomĂštres. ## VĂ©rifier la date... Une situation assez cocasse a Ă©tĂ© rencontrĂ©e dans une autre escouade qui a refusĂ© de dĂ©marrer, le 21 novembre 2022, alors qu’elle n’était pas sur place Ă  ce moment-lĂ . L’ordinateur signale une panne du compresseur, les mĂ©caniciens n’ont, pourtant, identifiĂ© aucune panne sur le compresseur. Les [pantographes](https://fr.wikipedia.org/wiki/Pantographe_(transport)) ne fonctionnant toujours pas, l’analyse du code informatique a dĂ©tectĂ© une condition de crash suivante, qui signalait une panne de compresseur : ```txt si le jour est supĂ©rieur ou Ă©gal au 21 et si le mois est supĂ©rieur ou Ă©gal Ă  11 et si l’annĂ©e est supĂ©rieure ou Ă©gale Ă  2021 ``` La situation Ă©tait amusante, car le train devait ĂȘtre inspectĂ© en novembre 2021 (un an avant la panne), mais par coĂŻncidence, la condition n’a pas fonctionnĂ©. Le train a Ă©tĂ© entretenu un instant plus tĂŽt et n’a Ă©tĂ© relancĂ© qu’en janvier 2022 - et cette date ne rĂ©pondait plus Ă  la condition logique sophistiquĂ©e dĂ©crite ci-dessus. C’est probablement l’incapacitĂ© de l’auteur du logiciel Ă  Ă©crire correctement des conditions qui a obligĂ© Ă  attendre le 21 novembre 2022 pour que l’on puisse constater l’effet prĂ©vu. ## Surprise matĂ©rielle Les surprises ne se cachent pas seulement dans les logiciels informatiques. Dans l’un des dĂ©pĂŽts, les chercheurs ont dĂ©couvert un dispositif signĂ© comme « convertisseur UDP / CAN », permettant vraisemblablement une communication Ă  distance avec le train. Le supprimer n’a pas empĂȘchĂ© quoi que ce soit de fonctionner. L’analyse a montrĂ© que l’ordinateur de bord envoyait des informations sur l’état du verrouillage Ă  cet appareil et que l’appareil lui-mĂȘme Ă©tait connectĂ© Ă  un modem GSM. ## Pas seulement Ă  WrocƂaw L’information selon laquelle le service SPS avait rĂ©ussi Ă  rĂ©parer les trains Newag « cassĂ©s » est rapidement parvenue Ă  d’autres services. Cela s’est avĂ©rĂ© ĂȘtre un problĂšme assez courant. À WrocƂaw, ils ont analysĂ© 13 rames Impuls, mais celles qui circulaient Ă  Koleje Mazowieckie sont Ă©galement tombĂ©es en panne (une unitĂ©), deux Ă  Opole, quatre Ă  Cracovie, une Ă  Zielona GĂłra, quatre Ă  Szczecin et une Ă  SKM. Heureusement, chacune a Ă©tĂ© rĂ©parĂ©e Ă  l’aide d’un outil dĂ©veloppĂ© par nos chercheurs, qui supprime les verrous logiciels de l’ordinateur de bord. Au total, nos collĂšgues ont analysĂ© le logiciel de 29 trains, et seulement cinq ont trouvĂ© des surprises allant au-delĂ  des instructions d’exploitation officielles. ## La suite Nous laissons l’évaluation des solutions utilisĂ©es par le fabricant aux lecteurs et clients de cette entreprise. Il est intĂ©ressant de noter que, mĂȘme si des poursuites judiciaires sont en cours, il est difficile de trouver en Pologne une institution qui ferait autre chose qu’exprimer un intĂ©rĂȘt amical dans cette affaire. Nous n’avons connaissance d’aucune mesure prise par « l’Office de la protection des consommateurs et de la concurrence », ni par « l’Office du transport ferroviaire », qui semble pourtant appropriĂ©e. Cette derniĂšre Ă  pour rĂŽle de surveiller les pratiques des sociĂ©tĂ©s qui travaillent avec les organisations gouvernementales locales. Que des voyageurs aient subi des dĂ©sagrĂ©ments ou forcĂ©s Ă  utiliser des transports alternatifs pendant des mois semble pourtant Ă©ligible Ă  un dĂ©dommagement. La seule institution connue Ă  avoir pris des mesures est le CERT Polska, qui a Ă©tĂ© informĂ© de la dĂ©couverte par les chercheurs. Le commentaire que nous avons reçu montre que CERT Polska a informĂ© les « autoritĂ©s compĂ©tentes » et que l’affaire est traitĂ©e par les autoritĂ©s chargĂ©es de l’application de la loi. Nous fĂ©licitons les meilleurs hackers polonais pour leur dĂ©couverte intĂ©ressante et l’exĂ©cution professionnelle de la commande. DĂ©cidĂ©ment rien n’est plus motivant qu’une date limite demain matin. L’article ci-dessus n’est qu’un bref rĂ©sumĂ© de la prĂ©sentation donnĂ©e lors de la confĂ©rence _Oh My H@ck_ le 5 dĂ©cembre 2023 par les membres de l’équipe : Jakub Stępniewicz, Sergiusz BazaƄski et MichaƂ Kowalczyk. L’article a omis de nombreux dĂ©tails et une grande partie technique de l’analyse -- nous ne pouvons qu’espĂ©rer que cela motivera les auteurs de l’étude Ă  rĂ©diger et publier son cours. Mis Ă  jour le 05/12/2023 Ă  16h00 # RĂ©ponse de l’Office des transports ferroviaires (UTK) Nous avons reçu la position officielle de l’Office des transports ferroviaires (UTK), que nous citons intĂ©gralement ci-dessous :>Le prĂ©sident de l’UTK est au courant de l’affaire et a vĂ©rifiĂ© les informations concernant les analyses effectuĂ©es sur les logiciels des vĂ©hicules ferroviaires et coopĂšre Ă©galement avec les services compĂ©tents Ă  ce sujet. En collaboration avec CERT Polska (une Ă©quipe créée pour rĂ©pondre aux incidents violant la sĂ©curitĂ© Internet), une rĂ©union avec le constructeur ferroviaire a Ă©tĂ© organisĂ©e. Les vĂ©hicules rĂ©pondent aux exigences essentielles prĂ©cisĂ©es dans les dispositions des directives europĂ©ennes. C’est la personne qui commande le vĂ©hicule qui dĂ©termine les conditions de service et de garantie dans le cadre de la libertĂ© contractuelle. Ces exigences sont incluses dans les contrats d’achat de trains. Toute limitation des capacitĂ©s de service, y compris les limitations introduites dans le logiciel, peut constituer un Ă©ventuel litige civil entre le client et le fabricant. Le prĂ©sident de l’UTK n’est pas l’autoritĂ© compĂ©tente en la matiĂšre. >ConformĂ©ment Ă  l’art. 41 alinĂ©a 2 de la loi du 5 juillet 2018 relative au systĂšme national de cybersĂ©curitĂ© (texte consolidĂ© : Journal des lois de 2023, articles 913, 1703), l’autoritĂ© chargĂ©e de la cybersĂ©curitĂ© du secteur des transports (hors sous-secteur du transport par eau) est l’autoritĂ© compĂ©tente en matiĂšre de cybersĂ©curitĂ©. Ministre chargĂ© des questions de transports. ## Liens - [Newag_Impuls](https://pl.wikipedia.org/wiki/Newag_Impuls) (pl) - [Infineon_TriCore](https://en.wikipedia.org/wiki/Infineon_TriCore) (en) - [Ghidra](https://en.wikipedia.org/wiki/Ghidra) (en) - [CERT Polska](https://en.wikipedia.org/wiki/CERT_Polska) (en) - [journal LinuxFr.org](https://linuxfr.org/users/chocolatineflying/journaux/devoir-hacker-un-train) - BadCyber [Dieselgate, but for trains – some heavyweight hardware hacking](https://badcyber.com/dieselgate-but-for-trains-some-heavyweight-hardware-hacking/) (en) - 404media [Polish Hackers Repaired Trains the Manufacturer Artificially Bricked. Now The Train company is threatening them](https://www.404media.co/polish-hackers-repaired-trains-the-manufacturer-artificially-bricked-now-the-train-company-is-threatening-them/) (en) - [l’histoire par un ses hackers](https://social.hackerspace.pl/@q3k/111528162462505087) (en) - HackADay [The Deere Disease Spreads To Trains](https://hackaday.com/2023/12/06/the-deere-disease-spreads-to-trains/) (en)

AltStyle ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /