L'unica cosa che mancava: DRM sui treni
DRM sui treni

Non possiamo usare capsule alternative nelle nostre macchine da caffè. Non possiamo riparare i nostri trattori. Non possiamo riparare i nostri telefoni. Non possiamo scansionare con le nostre stampanti multifunzione quando le cartucce sono vuote. E il nuovo episodio della serie è: «i contribuenti polacchi non possono riparare i treni che hanno pagato», o meglio, non senza l'aiuto di un gruppo di hacker…

La storia inizia con un po' di politica e budget: Koleje Dolnośląskie, noto come Lower Silesian Railways, è un operatore ferroviario nella regione della Bassa Slesia, nel sud-ovest della Polonia. Questo operatore pubblico utilizza un totale di undici treni Impuls 45WE prodotti dall'azienda polacca Newag. Tuttavia, la manutenzione è affidata a un'altra società, Serwis Pojazdów Szynowych o SPS.

Perché? Semplicemente perché SPS ha vinto la gara: i treni devono ricevere manutenzione obbligatoria ogni milione di chilometri percorsi. Sia SPS che Newag hanno partecipato al processo, ma l'offerta del produttore originale era 750.000 dollari più cara. Con un totale di 5,5 milioni di dollari per undici treni, SPS si è aggiudicata il contratto, e lì sono iniziati i suoi problemi: i treni che entravano nelle officine finivano morti, senza muoversi di un centimetro.

Come rianimare un treno bloccato dal DRM

L'unica cosa che mancava: DRM sui treni
«È ora di hackerare»

Ora, SPS dispone di tutte le informazioni rilevanti (il manuale di manutenzione arriva a 20.000 pagine), delle officine e dei contatti. Rimessa a nuovo di un treno richiede (in termini molto approssimativi) uno smontaggio completo, l'invio dei pezzi ai produttori per la ricertificazione, il ritorno e il riassemblaggio... ma i treni di Newag restavano immobili, nonostante tutta la telemetria indicasse condizioni ottimali. Il primo treno fermato ha dato origine a un secondo, il terzo ha subito un guasto alla batteria, e il quarto che ha preso il suo posto... si è fermato anch'esso durante la manutenzione. Un nuovo rapporto da un'altra officina a Stettino getta altra benzina sul fuoco: un treno Impuls entra in manutenzione e muore.

La prima risposta ufficiale di Newag è stata che i treni si sono fermati per un «sistema di sicurezza», che non appare in nessuna delle 20.000 pagine del manuale. Il tempo di fermo dei treni si traduce in penali contrattuali, e di fronte alla mancanza di alternative, le officine finiscono per contattare un gruppo di hacker, «Dragon Sector».

Le difficoltà non tardano ad arrivare. Il bus CAN dei computer utilizza protocolli strani, l'SDK ufficiale consente solo di effettuare caricamenti di software (cioè niente dump), e una versione modificata di Ghidra è dovuta entrare in gioco... tutto questo con l'imminente rottura del contratto tra SPS e Lower Silesian Railways sulle loro spalle. Per farla breve: alle 08:42 dell'ultimo giorno, uno dei computer modificati è riuscito a far tornare a muovere il treno.

Quindi, i treni possono funzionare di nuovo, ma resta un enorme dubbio: perché si sono fermati in primo luogo? Mesi di analisi e ingegneria inversa hanno confermato la presenza di coordinate GPS associate alle officine di riparazione e manutenzione. In pratica, una condizione nel codice bloccava completamente i treni se passavano un minimo di dieci giorni in quelle officine. A questo si sono aggiunti blocchi per cambi di componenti, e in un altro treno è stato scoperto uno «hard stop» dopo aver percorso un milione di chilometri, qualcosa di simile al famoso conflitto per le spugnette Epson nelle loro stampanti.

L'unica cosa che mancava: DRM sui treni
Le officine identificate tramite le coordinate

Ad oggi, i ricercatori hanno scoperto collegamenti remoti via GSM, e hanno analizzato il software di 29 treni. In 24 di essi hanno trovato ogni tipo di blocchi e barriere che non compaiono nella documentazione.

Articolo originale in polacco: Clicca qui. Traduzione in inglese: Clicca qui. Lo abbiamo visto su: Hackaday.