Não podemos usar cápsulas alternativas em nossas máquinas de café. Não podemos reparar nossos tratores. Não podemos reparar nossos telefones. Não podemos escanear em nossas impressoras multifuncionais com cartuchos vazios. E o novo episódio da série é «os contribuintes poloneses não podem reparar os trens que pagaram», ou melhor, não sem a ajuda de um grupo de hackers…
A história começa com um pouco de política e orçamento: Koleje Dolnośląskie, conhecido como Lower Silesian Railways, é um operador ferroviário na região da Baixa Silésia, no sudoeste da Polônia. Esse operador público utiliza um total de onze trens Impuls 45WE fabricados pela empresa polonesa Newag. No entanto, a manutenção fica a cargo de outra empresa, Serwis Pojazdów Szynowych ou SPS.
Por quê? Simplesmente porque SPS venceu a licitação: os trens precisam de manutenção obrigatória a cada milhão de quilômetros percorridos. Tanto SPS quanto Newag competiram no processo, mas a oferta do fabricante original foi 750 mil dólares mais cara. Com um total de 5,5 milhões de dólares por onze trens, a SPS ficou com o contrato, e aí começaram seus problemas: Os trens que chegavam às oficinas acabavam mortos, sem se mover um centímetro.
Como reviver um trem bloqueado por DRM
Agora, a SPS tem toda a informação relevante (o manual de manutenção chega a 20.000 páginas), as oficinas e os contatos. Recondicionar um trem requer (em termos bem relaxados) uma desmontagem completa, o envio das peças aos fabricantes para recertificação, retorno e montagem… mas os trens da Newag continuavam imóveis, apesar de toda a telemetria indicando condições ótimas. O primeiro trem parado deu lugar a um segundo; o terceiro sofreu uma falha na bateria, e o quarto, que tomou seu lugar… também parou ao passar pela manutenção. Um novo relato de outra oficina em Szczecin joga mais lenha na fogueira: Um trem Impuls entra em manutenção e morre.
A primeira resposta oficial da Newag foi que os trens pararam por um «sistema de segurança», que não aparece em nenhuma das 20 mil páginas do manual. O downtime dos trens se traduz em penalidades contratuais e, diante da falta de alternativas, as oficinas acabam contatando um grupo de hackers, o «Dragon Sector».
As dificuldades não demoram a aparecer. O barramento CAN dos computadores usa protocolos estranhos, o SDK oficial só permite fazer uploads de software (ou seja, nada de dumps), e uma versão modificada do Ghidra teve que entrar na equação… tudo isso com a iminente quebra do contrato entre a SPS e a Lower Silesian Railways pairando sobre suas cabeças. História longa resumida: Às 08:42 do último dia, um dos computadores modificados conseguiu fazer o trem voltar a rodar.
Então, os trens podem funcionar novamente, mas resta uma enorme dúvida: por que falharam em primeiro lugar? Meses adicionais de análise e engenharia reversa confirmaram a presença de coordenadas GPS associadas a oficinas de reparo e manutenção. Basicamente, uma condição no código bloqueava completamente os trens se passassem no mínimo dez dias nessas oficinas. A isso se somaram bloqueios por troca de componentes, e em outro trem foi descoberto um «hard stop» após percorrer um milhão de quilômetros, algo semelhante ao famoso conflito por as almofadas da Epson em suas impressoras.
Até o momento, os pesquisadores descobriram links remotos via GSM e analisaram o software de 29 trens. Em 24 deles encontraram toda espécie de bloqueios e barreiras que não aparecem na documentação.
Artigo original em polonês: clique aqui
Tradução para o inglês: clique aqui
Vimos em: Hackaday