dezembro 28, 2023

[Segurança] Retrospectiva: Hackeando trens

Essa história é tão legal, mas tão legal mesmo, que merece um post aqui no blog!!!

Na minha opinião, essa'é uma das melhores histórias de hacking de todos os tempos, que mostram como o hacking pode ser benéfico para as empresas e a sociedade, batendo de frente contra regras pré-estabelecidas para favorecer um pequeno grupo.

Resumindo a história, hackers poloneses foram contratados para identificar e quebrar bloqueios de software em trens e, assim, permitir a manutenção por terceiros.

Tudo começou quando a Lower Silesian Railway (Koleje Dolnośląskie), uma empresa operadora de linhas trens na Polônia, contratou uma empresa terceira para realizar a manutenção de seus trens modelo Impuls 45WE fabricados pela Newag. Ela optou por essa empresa especializada, chamada SPS em vez de contratar o serviço da própria fabricante, que era bem mais caro. Mas, depois da manutenção, misteriosamente o trem não ligava mais (sem motivo aparente). Todos os componentes estavam ok, mas mesmo assim o trem simplesmente não dava partida.


Isso aconteceu com 5 trens que foram enviados para manutenção. Ao todo, 6 dos 11 trens da empresa estavam parados, causando grande prejuízo para a empresa e para a população (afinal, com menos trens em operação, a qualidade do serviço é impactada). Segundo o fabricante, Newag, os trens foram bloqueados por um “sistema de segurança” – mas nas 20 mil páginas de instruções de manutenção dos trens, não há sequer uma menção a isso. E a Newag se recusou a colaborar.

Talvez tomado pelo desespero, alguém na SPS resolveu pesquisar no Google por "Polish Hackers" e em maio de 2022 acabou contratando um grupo de pesquisadores de segurança: Michał “Redford” Kowalczyk, Sergiusz “q3k” Bazański (ambos do grupo Dragon Sector) e Kuba “PanKleszcz” Stępniewicz. No local, eles tiveram acesso à um dos trens que não se movia, dois computadores sobressalentes e os arquivos SDK do fabricante. Em paralelo, a operadora de trens não podia mais esperar e estava prestes a suspender o contrato com a SPS e enviar os trens para manutenção no fabricante. Foi dado o prazo de apenas uma semana para os hackers investigarem os trens!


Depois de muito trabalho, os três pesquisadores analisaram o dump de memória de vários computadores de vários trens e, comparando os trens que funcionavam e os que estavam parados, eles identificaram algumas diferenças. Resumindo muito a história, eles descobriram algumas flags que, ao serem modificadas, permitiram que o computador desse a partida no trem. Menos de uma hora antes do deadline, eles conseguiram provar que era possível colocar os trens de volta à operação.


Após alguns meses de estudos e engenharia reversa, os pesquisadores descobriram várias condições no código do software de controle dos trens que poderiam interromper ou impactar a operação dos trens da Newag, como por exemplo:
  • bloqueio do tem em caso de troca de componentes (verificado pelo número de série);
  • uma instrução para parar após rodar um milhão de quilômetros;
  • uma condição no código que disparava o alarme de "falha no compressor", e paralisação do trem, caso o dia seja maior ou igual a 21, o mês maior ou igual a 11, e para anos maiores que 2o21. Os pesquisadores batizaram o dia 21/11 como "international compressor failure day";
  • foi identificado um equipamento, de hardware, conectado a rede GSM e que recebia informações de bloqueio pelo computador on-board - possivelmente para enviar essas informações ao fabricante;
  • o código do PLC continha lógica que travaria o trem com códigos de erro falsos se o trem não estivesse funcionando por mais de 10 dias;
  • em outra versão, foi identificada uma instrução para interromper o funcionamento se o trem ficasse 10 dias ou mais em algumas localidades específicas. Pelas coordenadas de GPS incluídas no código, foi possível identificar que se tratavam de oficinas de manutenção de outras empresas.

Também foi descoberta uma forma para desfazer o bloqueio imposto pelo computador on-board através de uma sequência correta de cliques nos botões na cabine e na tela do computador de bordo. Quando a notícia da pesquisa chegou à mídia, os trens receberam uma atualização de software que removeu essa opção de “conserto”.

Ou seja, resumindo a treta: o fabricante dos trens tinha incluído, no software de controle à bordo, diversas condições para obrigar a manutenção dos trens por ele mesmo, além de forçar situações de suposto problema.

A Newag não assumiu o B.O., ameaçou processar os pesquisadores e está dizendo que isso é uma campanha de difamação da concorrência. A Newag também está tentando obrigar a retirada dos trens de circulação, alegando que representam um risco de segurança por terem sido hackeados.

O caso foi apresentado no evento Oh My H@ck, na Polônia, e no 37th Chaos Communication Congress (37C3): Breaking "DRM" in Polish trains (veja o vídeo aqui).

Para saber mais:

Nenhum comentário:

Creative Commons License
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of my employee.