Trens NEWAG da Polônia ficam bloqueados após reparos em oficinas terceirizadas
(social.hackerspace.pl)- Pesquisadores fizeram engenharia reversa do código PLC dos trens NEWAG Impuls EMU da Polônia por cerca de um ano, investigando um problema em que eles paravam após manutenção em oficinas terceirizadas
- A fabricante atribuiu a causa a falhas de manutenção e defendeu que a manutenção fosse feita por ela, mas o código continha uma lógica que bloqueava o trem com erros falsos sob certas condições
- Algumas versões do controlador tentavam identificar oficinas terceirizadas por coordenadas GPS, e era possível destravar o trem com uma combinação não documentada de teclas na cabine
- Em versões posteriores do software PLC, o desbloqueio por combinação de teclas desapareceu, mas a lógica de bloqueio permaneceu; após determinada atualização, a HMI chegou a exibir um aviso de violação de direitos autorais
- O dispositivo de telemetria GSM do trem transmitia as condições de bloqueio e, em alguns casos, também indicava a possibilidade de bloqueio remoto
Engenharia reversa do código PLC do NEWAG Impuls EMU
- q3k, redford e mrtick fizeram engenharia reversa do código PLC dos trens NEWAG Impuls EMU por cerca de um ano
- Os trens em questão apresentavam sintomas de bloqueio por motivos arbitrários depois de passarem por manutenção em oficinas terceirizadas
- A fabricante afirmou que a causa era falha de manutenção das oficinas terceirizadas e defendeu que a manutenção deveria ser feita pela fabricante, não por terceiros
Condições de bloqueio presentes no código
- O código PLC incluía uma lógica para bloquear o trem com códigos de erro falsos
- O bloqueio podia ocorrer após uma data específica
- O bloqueio também podia ser acionado quando o trem ficava sem operar por determinado período
- Uma versão do controlador continha coordenadas GPS, usadas para limitar esse comportamento a oficinas terceirizadas
Método de desbloqueio não documentado e mudanças posteriores
- Era possível desbloquear o trem pressionando uma combinação de teclas específica nos controles da cabine
- Esse método de desbloqueio não era documentado
- Em versões mais recentes do software PLC, o desbloqueio por combinação de teclas foi removido, mas a lógica de bloqueio continuou presente
Aviso na HMI e telemetria GSM
- Após uma atualização específica da NEWAG, os controles da cabine passaram a exibir uma mensagem de aviso relacionada a violação de direitos autorais
- A mensagem aparecia quando a HMI detectava algumas das condições em que o bloqueio deveria ter sido acionado, mas o trem continuava em operação
- Os trens tinham um dispositivo de telemetria GSM
- O dispositivo transmitia as condições de bloqueio
- Em alguns casos, parecia possível bloquear o trem remotamente
1 comentários
Opiniões no Hacker News
Esses trens são usados exclusivamente por um número considerável de empresas ferroviárias regionais na Polônia. A classificação de manutenção vai de P1 até P5, a mais complexa; antigamente, só grandes empresas assumiam P3 ou superior, mas há alguns anos a European Union Agency For Railways abriu o mercado, e concorrentes menores começaram a vencer licitações com preços muito mais baixos
Tudo começou quando 4 trens que passaram por manutenção na SPS Mieczkowski nem sequer ligavam; a empresa teve de pagar uma multa de €500 mil, e os trens foram devolvidos à Newag. Ao mesmo tempo, trens de outras empresas também pararam de se mover só porque tinham ficado tempo demais em um lugar, embora nem tivessem passado por manutenção. No fim, a SPS Mieczkowski contratou a Dragon Sector para investigar, e foram encontradas várias rotinas separadas que desativavam os trens
O caso está sendo investigado pelo Central Anti-Corruption Bureau da Polônia, mas é duvidoso que isso cause um grande impacto na Newag. O Office of Rail Transport polonês é uma agência que costumava receber enxurradas de reclamações e emitir ordens até por pequenos erros nos horários dos trens, mas se afastou da intervenção neste caso; e a compra de trens segue um processo licitatório muito rigoroso, então as empresas ferroviárias praticamente não têm margem para se mexer
https://sip.lex.pl/akty-prawne/dzu-dziennik-ustaw/kodeks-kar...
Há uma quantidade enorme de provas para demonstrar o que aconteceu, então é muito pouco provável que consigam escapar. Mesmo assim, estão tentando se safar alegando que foram hackeados. A versão seria algo como hackers terem feito flash do firmware dos trens mantidos por uma concorrente para transformá-los em tijolos, mas as coordenadas de GPS dos trechos ferroviários concorrentes estavam literalmente hardcoded
Mas, considerando que a Newag queria continuar se expandindo na Itália, acho que eles não teriam sabotado esses trens também. Claro, talvez tenham achado aceitável queimar até novos clientes
Há links para um texto mais longo e detalhes adicionais enterrados nos comentários
Em polonês:
https://zaufanatrzeciastrona.pl/post/o-trzech-takich-co-zhak...
https://wiadomosci.onet.pl/kraj/awarie-pociagow-newagu-haker...
Em inglês:
https://zaufanatrzeciastrona-pl.translate.goog/post/o-trzech...
https://wiadomosci-onet-pl.translate.goog/kraj/awarie-pociag...
Como contexto adicional, a Polônia é dividida em 16 voivodships e, desde as reformas do início dos anos 2000, praticamente cada região tem sua própria empresa ferroviária regional, que cooperam entre si. Há mais de um ano, basicamente todo mundo já sabia que havia algo suspeito acontecendo com os trens da Newag. As falhas continuavam em trens pertencentes a várias empresas, que usavam prestadores de manutenção terceirizados, não a Newag. Por isso, a oficina contratou hackers, e levou tempo para entender, por meio de engenharia reversa, exatamente o que estava acontecendo
https://en.wikipedia.org/wiki/Voivodeship
Lembrei do “crash” AARD que a Microsoft usou no passado para praticamente arruinar a concorrência do DR-DOS
O código AARD era um trecho de código incluído nas versões beta do Microsoft Windows 3.1, feito para detectar se o Windows estava sendo executado não sobre o MS-DOS ou o PC DOS, mas sobre um compatível concorrente como o DR-DOS e, nesse caso, exibir uma mensagem de erro obscura. Esse código em linguagem de máquina, criptografado com XOR, automodificante e deliberadamente ofuscado, usava várias estruturas e funções não documentadas do DOS
https://en.wikipedia.org/wiki/AARD_code
https://www.geoffchappell.com/notes/windows/archive/aard/drd...
https://news.ycombinator.com/item?id=36042213
No fim, quem impede as coisas boas de durarem somos nós, humanos. O OS/2 Warp era um excelente sistema operacional
A propósito, o DR-DOS já era um produto sem saída desde o lançamento. Era óbvio demais que pessoas e OEMs não comprariam dois sistemas operacionais juntos: um sistema operacional gráfico e um DOS que funcionava como bootloader desse sistema gráfico. A ideia de que existiria, por um período significativo, um mercado independente para DOS 16 bits somente texto era uma fantasia completa, e o DR-DOS também não era relevante em volume de vendas. Mesmo que o código AARD tivesse entrado nas versões finais reais do Windows 3.x, isso não teria mudado nada
Um trem ser desativado se ficar parado por “tempo demais”... acho que até a Microsoft gostaria de ter esse nível de controle sobre a plataforma
As ações da Newag caíram bastante depois que o post foi publicado; será este o primeiro caso de correção de preço causada pelo Mastodon?
https://g.co/kgs/WVku4C
Em 21 de novembro de 2022, houve uma situação bem cômica em que outra composição, que nem estava em operação, se recusou a funcionar. O computador reportou falha no compressor, mas, quando os mecânicos verificaram, não havia nenhum problema com o compressor. Ainda assim, o trem não levantava o pantógrafo e, ao analisarem o código do computador, encontraram a condição que forçava a falha
Era algo como: se o dia for 21 ou maior, o mês for 11 ou maior e o ano for 2021 ou maior, reportar falha no compressor
> 2021-11-21Este fabricante não acabou paralisando infraestrutura crítica e literalmente fazendo a Polônia de refém? É um crime ousado a um ponto difícil de acreditar, e não tenho muita certeza de que eles conseguirão simplesmente sair impunes
O mundo é pequeno mesmo. Abri o HN e encontrei uma história digna de filme sobre trens em que já andei várias vezes. É bem possível que eu tenha passado por um dos trens que efetivamente ficaram parados
De qualquer forma, isso significa que não houve revisão de código, ou que os revisores aceitaram por algum motivo. Não sei bem qual das duas opções é mais assustadora
Isto parece ter sido intencional por parte do fabricante do trem, e é bem claro que o fabricante mandou escrever o código. Não parece ser uma situação em que um hacker inseriu algo escondido sem que os administradores soubessem. Fico curioso sobre quem faria que tipo de revisão de código
Lendo outros comentários, parece que o artigo no topo do HN mudou, e alguns comentários foram escritos com base em um artigo que tinha bem menos informações. Então acho que foi por isso que os comentários ficaram confusos
Infelizmente, os trens da Newag têm qualidade bem melhor que os da outra fabricante polonesa, a Pesa. Devem ser tão confiáveis que foi preciso criar falhas artificiais
Fico imaginando quem codificou essas condições maliciosas e quem sabia delas. Será que ninguém pensou em denunciar internamente?
Para referência, há uma página de avaliações anônimas de funcionários sobre a empresa: https://www.gowork.pl/opinie_czytaj,19587
Parece um ambiente de trabalho bastante tóxico
Vai ser interessante ver como essa situação afetará o contrato com a empresa europeia de serviços ferroviários Akiem. A Akiem fechou um contrato de 164 milhões de euros com a Newag para serviços e trens destinados à França
[1] https://biznes.pap.pl/pl/news/all/info/3509606,newag-inks-eu...