Caso de hack no banheiro do trem
(devever.net)- Foi confirmada uma vulnerabilidade de DoS no banheiro acessível dos trens britânicos Class 800, explorando o momento em que o estado da porta e a detecção da alavanca de trava ficam dessincronizados, fazendo com que a porta trave assim que se fecha
- O projeto anterior com botões separava “fechar” e “travar”, evitando situações em que alguém pudesse trancar o banheiro por fora, mas era fácil para o usuário se confundir sobre o estado da trava
- O projeto mais recente com alavanca é mais intuitivo, mas o método da Hitachi, em vez de retornar a alavanca, bloqueia o movimento com um pino metálico, criando uma folga entre o jogo da alavanca e a interpretação do controlador
- A reprodução consiste em, depois de fechar a porta, mover a alavanca apenas o suficiente para que o pino de trava não engate, abrir a porta novamente para fazer o pino sair no vazio e então mover a alavanca para a posição de travado
- Em um dos testes, o controlador da porta entrou em modo out-of-order, mas a demonstração só foi realizada quando não havia ninguém esperando e o trem tinha vários banheiros
Estrutura de trava da porta do banheiro no Class 800
- Os trens britânicos Class 800 têm banheiros acessíveis com portas motorizadas
- Os banheiros da geração anterior usavam uma estrutura com botões
open,closeelockno interior- O usuário precisava apertar
close, esperar a porta fechar e então apertarlock - Não havia botão separado de
unlock; ao apertar o botão internoopen, a trava era liberada automaticamente e a porta se abria
- O usuário precisava apertar
- Separar “fechar” e “travar” pode impedir um ataque de negação de serviço em que alguém aperta
closee sai antes de a porta fechar, tornando o banheiro permanentemente indisponível - Em compensação, isso era confuso para usuários não acostumados com máquinas de estado, podendo causar situações em que a porta não era travada corretamente ou a pessoa achava que estava travada quando não estava
Vulnerabilidade surgida no sistema de trava por alavanca
- Os banheiros acessíveis mais recentes costumam usar uma alavanca em vez de botões para travar a porta
- Isso é mais intuitivo para o usuário
- No entanto, essa alavanca não é uma alavanca mecânica ligada diretamente ao mecanismo de trava, mas sim uma entrada para um microcontrolador
- Em alguns trens britânicos, quando se tenta mover a alavanca para a posição de travado com a porta aberta, a alavanca volta para a posição unlocked, tratando a inconsistência de estado
- No método da Hitachi, em vez de fazer a alavanca voltar, um pequeno pino metálico se projeta para fixá-la na posição unlocked quando ela não deveria ser movida para a posição de travado
- A vulnerabilidade surge da folga entre o ponto em que a alavanca é detectada como “travada” e o ponto em que o pino metálico realmente consegue engatar
- Depois de fechar a porta, é possível mover a alavanca até uma posição em que o pino não engata, mas o controlador ainda não a interpreta como locked
- Nesse estado, ao abrir a porta, o pino de trava se projeta no vazio
- Como o pino não toca a alavanca, é possível movê-la para a posição locked
- Depois disso, o botão
closecontinua funcionando, e a porta trava no instante em que se fecha
- Foi publicado um vídeo demonstrando esse problema
- No segundo teste no Class 800, o controlador da porta do banheiro entrou em modo out-of-order
- Isso não aconteceu no primeiro teste
- Quando o autor desceu do trem, o banheiro já estava funcionando novamente
- Não se sabe se houve um reset automático depois de algum tempo ou se alguém no trem o reiniciou
- A demonstração só foi feita quando não havia ninguém esperando pelo banheiro e o trem tinha vários banheiros; o objetivo do vídeo não era de fato causar DoS no banheiro, mas mostrar que isso era possível
1 comentários
Comentários do Hacker News
No ensino fundamental, isso também acontecia com aquelas fechaduras analógicas de girar à mão. Do lado de fora da porta havia uma interface parecida com uma fenda de parafuso, mais ou menos assim, então uma criança que saía 5 minutos antes do fim da aula dizendo “preciso ir ao banheiro” trancava todos os cubículos pelo lado de fora com uma chave de fenda ou um Swiss Army knife, e aí todos pareciam ocupados
Uma vez, enquanto eu usava o banheiro em um trem na Suécia, a porta elétrica começou a abrir. A maçaneta estava ao alcance, então tentei empurrá-la para fechar, mas no fim tive que priorizar subir as calças
O banheiro daquele vagão era maior do que um assento duplo comum, e do lado de fora havia até assentos virados para o banheiro. Foi bem constrangedor, mas todo mundo nasce pelado, então acabou virando uma história engraçada, e eu não fiquei curioso a ponto de voltar para descobrir a causa; simplesmente voltei ao meu lugar e tentei fingir que ninguém tinha visto
Antigamente, na Austrália, havia aparelhos que pareciam uma tentativa inicial de telefone público digital, e alguns ainda existem, embora eu ache que não vão durar muito. Se você mantivesse pressionado o botão de idioma antes e durante o ato de tirar o fone do gancho, o telefone público mostrava “Out of Order”, e a mensagem permanecia mesmo depois de recolocar o fone no gancho, até a próxima pessoa tirar o fone Como bons estudantes do ensino médio, adotamos uma abordagem puramente científica para arruinar a vida de muita gente. Se deixássemos 2 de 3 telefones públicos “desligados” desse jeito, ninguém investigava os fones supostamente quebrados o suficiente para reverter o estado, e uma longa fila se formava diante do único que funcionava. Mas, se desligássemos os 3, usuários irritados testavam os fones e acabavam fazendo todos voltarem ao normal; foi um estudo reproduzível em praticamente todos os conjuntos de telefones públicos do nosso bairro
Um certo vagão usado em linhas do Reino Unido, acho que vi perto de Bradford, tinha exatamente esse erro de design no botão interno de fechar.
Eu tenho o reflexo de apertar “fechar” ao sair, por hábito de deixar as coisas arrumadas, então precisava tomar muito cuidado; acho que, na primeira vez que usei, acabei apertando de fato e só percebi o que tinha feito com os outros passageiros depois de ouvir o clique
Há também um aspecto psicológico em tornar fechar e trancar ações separadas. Alguns trens na Dinamarca têm apenas um botão de “fechar”, o que é bem desconcertante à primeira vista
É verdade que o design antigo confundia as pessoas, mas não sei por que não escolheram a solução óbvia de adicionar um botão de destravar. Ou então poderiam ter usado uma fechadura mecânica em que as pessoas claramente pudessem confiar
A pior fechadura de banheiro que já vi era um botão estranho que trancava ao ser pressionado, mas passava tão pouca confiança sobre estar de fato trancado que o dono colocou uma placa explicando exatamente como trancar a porta e que ela realmente ficava trancada
Não sei qual era o problema das antigas fechaduras mecânicas dos banheiros de trem. Muitos passageiros, especialmente os mais velhos, têm dificuldade para usar corretamente esses dispositivos elétricos sofisticados; já houve muitos constrangimentos por portas que na prática não estavam trancadas, e algumas pessoas parecem achar divertido quebrá-los de propósito
Às vezes alguém realmente precisa ir com urgência e precisa de um banheiro funcionando dentro do trem
O design dos botões também não era particularmente claro. Entendo a vantagem de um mecanismo elétrico de abertura e fechamento, já que a porta de correr é pesada, mas a trava deveria ter sido física, ou no mínimo se comportar como uma trava física
Para que usuários com deficiência também possam operar tudo da forma mais autônoma possível em um processo privado como usar o banheiro, é provável que esse sistema fosse praticamente a única opção
Além disso, nas estações, ela pode ser trancada automaticamente para que as pessoas só a usem entre estações, reduzindo o mau cheiro durante o embarque e desembarque
Dito isso, se não houver intertravamento, até uma fechadura mecânica pode ser facilmente colocada em estado de negação de serviço. Quem já trancou um carro ou prédio deixando a chave dentro certamente se lembra disso
Esse tipo de hack mecânico é sempre divertido de descobrir. Mas a pessoa infeliz esperando pelo banheiro e descobrindo que ele está trancado embora não haja ninguém dentro também posso ser eu
Essas coisas são mais difíceis de testar e não são apenas um problema de software simples ou de máquina de estados. Existem “hacks” mecânicos realmente perigosos, como o caso do aparelho de radioterapia Therac-25, que administrava doses incorretas de radiação
Não entendo por que é preciso colocar microcontroladores em tudo. Banheiros de trem têm basicamente o mesmo caso de uso dos banheiros de avião, e em todos os aviões em que já estive havia uma trava deslizante à moda antiga, que funcionava sem problemas
Fico me perguntando se o banheiro de trem mencionado no texto original tem um temporizador para impedir que alguém ocupe o banheiro durante toda a viagem, e se por isso uma trava mecânica não serviria
Ouvi dizer que os “superloos”, banheiros públicos autolimpantes instalados nas calçadas, têm limite de tempo e reproduzem um aviso de voz alguns minutos antes de abrirem. Mais preocupantes são os casos em que a limpeza automática começou com alguém lá dentro. Se a pessoa anterior segura a porta para economizar dinheiro e deixa a próxima entrar, o banheiro entende que está vazio e, na prática, tenta afogar o usuário “não registrado”
Além disso, quando não estão em uso, elas fecham a porta automaticamente para conter odores. O principal motivo é que a porta não é amigável para cadeirantes. Muitos usuários de cadeira de rodas não têm força ou destreza suficiente para mover a porta. É bem difícil projetar um sistema de porta mecânica que satisfaça esses três requisitos, mas a UI certamente poderia ser melhor
Pessoalmente, eu teria feito de modo que fosse necessário manter pressionado o botão “fechar” durante todo o fechamento da porta. Se a pessoa soltasse o botão no meio, ela abriria de novo, e só depois de totalmente fechada permaneceria fechada e “trancada”. Não seria necessária uma trava mecânica de verdade, mas deveria haver uma grande luz vermelha de cadeado acesa
Botões nivelados com a superfície ou alavancas de perfil baixo como a da foto têm pouco peso e pouco curso, e não precisam oferecer vantagem mecânica, então podem ser mais robustos contra certos ataques mecânicos. Quando possível, prefiro mecanismos simples sem software, mas não sou eu quem lida diretamente com os problemas de custo e confiabilidade
https://www.gableseng.com/wp-content/uploads/2020/05/G7330-....
Fiquei sem palavras
Acho que o motivo original para introduzir botões foi a acessibilidade, e entendo que aviões mais modernos também estão tentando migrar para sistemas semelhantes pelo mesmo motivo
Os banheiros de trem no Reino Unido são um clássico de coletânea de maus exemplos de design. Há pessoas que não conseguem trancar a porta e ficam expostas ao vagão, pessoas que não conseguem fechá-la e pessoas que não conseguem abri-la
Isso quando você consegue chegar ao banheiro e o usuário anterior não o deixou destruído
Ao tornar o banheiro mais acessível para um grupo, ele pode se tornar menos acessível para outro. É uma questão de decidir qual nível a sociedade escolhe. Alguns trens no Reino Unido têm um equilíbrio razoável, com um banheiro grande acessível para cadeirantes e um banheiro pequeno tradicional, mas muitas vezes têm dificuldade em informar isso aos passageiros