El incidente de hackeo del baño del tren
(devever.net)- En el baño accesible de los trenes británicos Class 800 se confirmó una vulnerabilidad de DoS que aprovecha el momento en que se desajustan el estado de la puerta y la detección de la palanca de bloqueo, haciendo que la puerta se bloquee en cuanto se cierra
- El diseño anterior con botones separaba “cerrar” y “bloquear” para evitar que alguien pudiera dejar el baño bloqueado desde afuera, pero hacía más fácil que el usuario se confundiera sobre el estado del seguro
- El diseño más reciente con palanca es más intuitivo, pero el método de Hitachi no regresa la palanca, sino que bloquea su movimiento con un pasador metálico, lo que deja un margen entre el juego de la palanca y la detección del controlador
- La reproducción consiste en cerrar la puerta, mover la palanca solo lo suficiente para que no enganche el pasador de bloqueo, volver a abrir la puerta para que el pasador salga al vacío y luego mover la palanca a la posición de bloqueo
- En una prueba, el controlador de la puerta entró en modo out-of-order, pero la demostración solo se realizó cuando no había nadie esperando y el tren tenía varios baños
Estructura del bloqueo de la puerta del baño en el Class 800
- Los trenes británicos Class 800 tienen baños accesibles con puertas motorizadas
- Los baños de la generación anterior tenían una estructura con botones
open,closeylocken el interior- El usuario debía pulsar
close, esperar a que la puerta se cerrara y luego pulsarlock - No había un botón
unlockseparado; al pulsar el botón interioropen, la puerta se desbloqueaba automáticamente y luego se abría
- El usuario debía pulsar
- Separar “cerrar” y “bloquear” puede evitar un ataque de denegación de servicio en el que alguien pulsa
close, sale antes de que la puerta termine de cerrarse y deja el baño inutilizable de forma permanente - A cambio, esto podía resultar confuso para usuarios no acostumbrados a este tipo de máquina de estados, provocando situaciones en las que no bloqueaban bien la puerta o creían que estaba bloqueada cuando no lo estaba
Vulnerabilidad introducida por el bloqueo con palanca
- En los baños accesibles más recientes, en muchos casos la puerta se bloquea moviendo una palanca en lugar de usar botones
- Para el usuario, esto es más intuitivo
- Sin embargo, esta palanca no es una palanca mecánica conectada directamente al mecanismo real de cierre, sino una entrada a un microcontrolador
- En algunos trenes británicos, si se intenta mover la palanca a la posición de bloqueo mientras la puerta está abierta, la palanca vuelve a la posición unlocked para resolver la inconsistencia de estado
- El método de Hitachi, en vez de regresar la palanca, hace sobresalir un pequeño pasador metálico para fijarla en la posición unlocked cuando no debería moverse a la posición de bloqueo
- La vulnerabilidad surge del juego entre el punto en que la palanca se detecta como “bloqueada” y el punto en que el pasador metálico realmente puede engancharse
- Después de cerrar la puerta, es posible mover la palanca hasta una posición donde el pasador no engancha, pero el controlador todavía no la interpreta como locked
- Si en ese estado se abre la puerta, el pasador de bloqueo sobresale al vacío
- Como el pasador no toca la palanca, se puede mover la palanca a la posición locked
- Después de eso, el botón
closesigue funcionando, y la puerta se bloquea en el instante en que se cierra
- Se publicó un video que demuestra este problema
- Durante la segunda prueba en un Class 800, el controlador de la puerta del baño entró en modo out-of-order
- En la primera prueba no ocurrió esto
- Cuando el autor bajó del tren, el baño ya estaba funcionando otra vez
- No se sabe si se reinició automáticamente tras un tiempo o si alguien dentro del tren lo reinició
- La demostración solo se realizó cuando no había nadie esperando el baño y el tren contaba con varios baños; el objetivo del video no era dejar un baño realmente en DoS, sino mostrar que era posible
1 comentarios
Opiniones de Hacker News
En la primaria también pasaba algo así con cerraduras analógicas que se giraban a mano. Del lado de afuera de la puerta había una interfaz tipo ranura de tornillo como esta, así que un niño que salía 5 minutos antes de que terminara la clase diciendo “tengo que ir al baño” podía cerrar desde afuera todos los cubículos con un desarmador o una Swiss Army knife, y entonces todos parecían ocupados
Una vez, mientras hacía mis necesidades en un tren sueco, la puerta eléctrica empezó a abrirse. La manija estaba a mi alcance, así que intenté empujarla para cerrarla, pero al final tuve que priorizar subirme los pantalones
El baño de ese vagón era más grande que un asiento normal para dos personas, e incluso afuera había asientos orientados hacia el baño. Fue bastante vergonzoso, pero todos nacemos desnudos, así que al final quedó como una anécdota graciosa; no tenía tanta curiosidad por la causa como para volver a revisar, así que simplemente regresé a mi asiento e hice todo lo posible por fingir que nadie me veía
Antes, en Australia, había aparatos que parecían un intento temprano de teléfonos públicos digitales, y aunque algunos todavía quedan, no creo que duren mucho. Si mantenías presionado el botón de idioma antes de levantar el auricular y mientras lo levantabas, el teléfono público mostraba “Out of Order”, y aunque colgaras el auricular, ese mensaje permanecía hasta que la siguiente persona lo levantara
Como buenos estudiantes de secundaria, teníamos un enfoque puramente científico para arruinarle la vida a mucha gente. Si apagábamos así solo 2 de 3 teléfonos públicos, nadie investigaba lo suficiente los auriculares averiados como para restaurar su estado, y se formaba una fila larga frente al único que funcionaba. Pero si apagábamos los 3, los usuarios enojados probaban los auriculares y terminaban restaurándolos todos; fue un estudio repetible en casi todos los grupos de teléfonos públicos de nuestro barrio
En algún material rodante usado en rutas del Reino Unido, creo que lo vi cerca de Bradford, el botón interno de cerrar tenía exactamente ese mal diseño.
Yo tengo el reflejo de presionar “cerrar” al salir, por costumbre de dejar todo ordenado, así que tenía que tener mucho cuidado; creo que la primera vez que lo usé sí lo presioné, y solo después de oír el clic me di cuenta de lo que les había hecho a otros pasajeros
Hacer que cerrar y bloquear sean acciones separadas también tiene un aspecto psicológico. En Dinamarca hay trenes que solo tienen botón de “cerrar”, y al verlo por primera vez desconcierta bastante
Es cierto que el diseño anterior confundía a la gente, pero no entiendo por qué no eligieron la solución obvia de agregar un botón de desbloqueo. O podrían haber usado una cerradura mecánica en la que la gente pudiera confiar claramente
La peor cerradura de baño que he visto era un botón raro que se bloqueaba al presionarlo, tan poco confiable que no se podía saber si realmente había quedado cerrado; el dueño tuvo que poner un letrero explicando el método exacto para cerrar la puerta y que de verdad quedaba cerrada
No sé qué problema tenían las cerraduras mecánicas antiguas de los baños de tren. Muchos pasajeros, sobre todo de edad avanzada, tienen problemas para usar correctamente estos aparatos eléctricos llamativos; también hubo muchas situaciones vergonzosas por puertas que en realidad no estaban cerradas, y algunos parecen divertirse rompiéndolos a propósito
A veces alguien necesita de verdad un baño que funcione dentro del tren porque tiene una urgencia
El diseño de los botones tampoco era particularmente claro. Entiendo las ventajas de un mecanismo eléctrico de apertura y cierre, porque la puerta corrediza es pesada, pero el bloqueo debería haber sido físico, o al menos comportarse como si lo fuera
Para que los usuarios con discapacidad también puedan operar por sí mismos, en la medida de lo posible, algo tan privado como ir al baño, probablemente este sistema era casi la única opción
Además, en las estaciones se puede bloquear automáticamente para que la gente lo use solo entre estaciones, reduciendo los malos olores mientras las personas esperan para subir o bajar
Dicho eso, si no hay interlock, una cerradura mecánica también puede convertirse fácilmente en un estado de denegación de servicio. Cualquiera que haya dejado las llaves dentro de un auto o edificio y se haya quedado encerrado seguramente lo recuerda
Estos hackeos mecánicos siempre son divertidos cuando los descubres. Aunque también podría ser yo la pobre persona esperando el baño y descubriendo que está cerrado aunque no haya nadie adentro
Estas cosas son más difíciles de probar, y no son solo un problema de software simple o de máquinas de estados. También hay “hackeos” mecánicos realmente peligrosos; un ejemplo son las máquinas de radioterapia como Therac-25, que administraban dosis incorrectas de radiación
No entiendo por qué hay que poner microcontroladores en todo. El baño de un tren es básicamente el mismo caso de uso que el baño de un avión, y todos los aviones en los que he viajado tenían un pestillo corredizo a la antigua que funcionaba sin problemas
Me pregunto si el baño de tren mencionado en el texto original tiene un temporizador para impedir que alguien ocupe el baño durante todo el viaje, y por eso no sirve un seguro mecánico
He oído que los “superloos”, baños autolimpiantes instalados en la vía pública, tienen un límite de tiempo y reproducen una advertencia de voz unos minutos antes de abrirse. Lo más preocupante son los casos en los que la limpieza automática empezó con alguien adentro. Si la persona anterior mantiene la puerta abierta para que entre la siguiente y así ahorrarse el pago, el baño concluye que está vacío e intenta empapar al usuario “no declarado”
Además, cuando no se usan, cierran la puerta automáticamente para contener los olores. La razón principal es que la puerta no es amigable para usuarios en silla de ruedas. Muchas personas en silla de ruedas no tienen la fuerza o la agilidad suficientes para mover la puerta. Diseñar un sistema de puerta mecánico que cumpla con las tres cosas es bastante difícil, pero la UI sin duda podría mejorar
Personalmente, habría hecho que hubiera que mantener presionado el botón de “cerrar” durante todo el cierre de la puerta. Si sueltas el botón a la mitad, se vuelve a abrir, y solo después de cerrarse por completo permanece cerrada y “bloqueada”. No hace falta un seguro mecánico real, pero sí debería haber un gran indicador rojo de candado que se encienda
Un botón al ras de la superficie o una palanca de perfil bajo como la que se ve en la foto tienen poco peso y poco recorrido, y no necesitan ofrecer ventaja mecánica, así que pueden ser más robustos frente a ciertos ataques mecánicos. Prefiero los mecanismos simples sin software siempre que sea posible, pero no estoy en una posición en la que tenga que lidiar directamente con los costos y la confiabilidad
https://www.gableseng.com/wp-content/uploads/2020/05/G7330-....
Me quedé sin palabras
Creo que la razón original para introducir botones fue la accesibilidad, y tengo entendido que en los aviones más modernos también quieren pasar a sistemas parecidos por el mismo motivo
Los baños de los trenes británicos son un clásico de los manuales de mal diseño. Hay personas que no logran cerrar con seguro y quedan expuestas ante el vagón, otras que no logran cerrar la puerta, y otras que no logran abrirla
Eso suponiendo que hayas llegado hasta el baño y que el usuario anterior no lo haya dejado arruinado
Hacer que el baño sea más accesible para un grupo puede hacerlo menos accesible para otro. Es cuestión de decidir qué nivel adopta la sociedad. Algunos trenes en el Reino Unido tienen un equilibrio bastante bueno, con un baño grande accesible para sillas de ruedas y un baño pequeño tradicional, pero a menudo tienen dificultades para comunicarlo