No podemos usar cápsulas alternativas en nuestras máquinas de café. No podemos reparar nuestros tractores. No podemos reparar nuestros teléfonos. No podemos escanear en nuestras impresoras multifunción con cartuchos vacíos. Y el nuevo episodio de la serie es «los contribuyentes polacos no pueden reparar los trenes que pagaron», o mejor dicho, no sin la ayuda de un grupo de hackers…
La historia comienza con una pizca de política y presupuesto: Koleje Dolnośląskie, conocido como Lower Silesian Railways, es un operador ferroviario en la región de Baja Silesia, al sudoeste de Polonia. Este operador público utiliza un total de once trenes Impuls 45WE fabricados por la compañía polaca Newag. Sin embargo, el mantenimiento está a cargo de otra compañía, Serwis Pojazdów Szynowych o SPS.
¿Por qué? Simplemente porque SPS ganó la licitación: Los trenes deben recibir mantenimiento obligatorio por cada millón de kilómetros recorridos. Tanto SPS como Newag compitieron en el proceso, pero la oferta del fabricante original fue 750 mil dólares más cara. Con un total de 5.5 millones de dólares por once trenes, SPS se quedó con el contrato, y ahí comenzaron sus problemas: Los trenes que entraban a los talleres terminaban muertos, sin moverse un centímetro.
Cómo revivir un tren bloqueado por DRM
Ahora, SPS tiene toda la información relevante (el manual de mantenimiento llega a las 20.000 páginas), los talleres y los contactos. Reacondicionar un tren requiere (en términos muy relajados) un desarme completo, el envío de las piezas a sus fabricantes para la recertificación, regreso y ensamble… pero los trenes de Newag seguían inmóviles, a pesar de toda la telemetría indicando condiciones óptimas. El primer tren detenido dio lugar a un segundo, el tercero sufrió una falla de su batería, y el cuarto que tomó su lugar… también se detuvo al pasar por mantenimiento. Un nuevo reporte de otro taller en Szczecin arroja más leña al fuego: Un tren Impuls entra a mantenimiento, y muere.
La primera respuesta oficial de Newag fue que los trenes se detuvieron por un «sistema de seguridad», el cual no aparece en ninguna de las 20 mil páginas del manual. El downtime de los trenes se traduce en penalizaciones contractuales, y ante la falta de alternativas, los talleres terminan contactando a un grupo de hackers, «Dragon Sector».
Las dificultades no tardan en aparecer. El bus CAN de los ordenadores utiliza protocolos extraños, el SDK oficial sólo permite realizar cargas de software (o sea, nada de dumps), y una versión modificada de Ghidra debió entrar en la ecuación… todo esto con la inminente ruptura del contrato entre SPS y Lower Silesian Railways sobre sus cabezas. Historia larga hecha corta: A las 08:42 del último día, uno de los ordenadores modificados logró que el tren vuelva a rodar.
Entonces, los trenes pueden funcionar otra vez, pero queda una duda enorme: ¿Por qué fallaron en primer lugar? Meses adicionales de análisis e ingeniería inversa confirmaron la presencia de coordenadas GPS asociadas a talleres de reparación y mantenimiento. Básicamente, una condición en el código bloqueaba los trenes por completo si pasaban un mínimo de diez días en esos talleres. A esto se sumaron bloqueos por cambios de componentes, y en otro tren se descubrió un «hard stop» después de recorrer un millón de kilómetros, algo similar al famoso conflicto por las almohadillas de Epson en sus impresoras.
Hasta la fecha, los investigadores descubrieron enlaces remotos vía GSM, y analizaron el software de 29 trenes. En 24 de ellos encontraron toda clase de bloqueos y barreras que no aparecen en la documentación.
Artículo original en polaco: Haz clic aquí
Traducción al inglés: Haz clic aquí
Lo vimos en: Hackaday