2 puntos por GN⁺ 2024-01-29 | 1 comentarios | Compartir por WhatsApp
  • 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, close y lock en el interior
    • El usuario debía pulsar close, esperar a que la puerta se cerrara y luego pulsar lock
    • No había un botón unlock separado; al pulsar el botón interior open, la puerta se desbloqueaba automáticamente y luego se abría
  • 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 close sigue 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

 
GN⁺ 2024-01-29
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

    • En la primaria, después de cerrar la puerta desde adentro del cubículo, solía trepar por arriba para salir
  • 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

    • Los trenes de la familia Pendolino en el Reino Unido, al menos cuando los operaba Virgin, eran famosos por un bucle de vibración de apertura/cierre. Después de salir de cada estación, el personal anunciaba qué baños de qué vagones funcionaban, y también era común que se disculparan por el olor en otros vagones
  • 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

    • Debe de ser la class 333
  • 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

    • Una forma mucho más fácil de modificarlo sería poner una etiqueta “Open/Unlock” junto al botón de abrir
  • 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

    • Todavía no soy anciano, pero una vez la pasé mal con una puerta de baño de tren parecida. ¿Por qué este aparato tonto necesita un botón de bloqueo aparte? No sé en qué situación alguien entraría al baño, presionaría “cerrar puerta” y aun así no querría que la puerta quedara bloqueada
      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
    • Probablemente estas puertas corredizas curvas ocupen mucho menos espacio que una puerta de cierre manual. El problema es que cerrar manualmente una puerta corrediza curva puede ser muy pesado, especialmente para usuarios de silla de ruedas
      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
    • El contexto aquí es un baño diseñado para personas con discapacidad. Algunas discapacidades hacen que operar pestillos o palancas sea muy difícil, y en ese contexto presionar un botón se considera una operación más accesible
    • Como experimento mental: una cerradura mecánica es más difícil de abrir fácilmente por el revisor en una emergencia, y puede romperse con más frecuencia si la gente empuja una puerta que está en uso. Si estás familiarizado con el sistema, en una urgencia un botón adicional puede ser más cómodo, y al reducir el contacto con manijas o pestillos también es más fácil mantener la limpieza
      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
    • El único problema de las cerraduras mecánicas antiguas era que no eran lo bastante “modernas”; es decir, eran demasiado simples y predecibles
      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

    • Parece más parecido a poner pegamento en la cerradura del auto de alguien para que sea muy difícil abrirlo y luego decir: “mira, esto no es seguro”
  • 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

    • La obsesión por los microcontroladores existe de verdad. Lo mismo pasa con el deseo de hacer todo con software en vez de mecánica, y las pantallas táctiles de los autos son un ejemplo. Como desarrollador, entiendo muy bien la mentalidad de querer hacerlo todo definido por software para poder cambiarlo todo más adelante si hace falta, pero parece que cada vez lleva a peores resultados
      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”
    • Estos seguros de puertas de tren también transmiten su estado a las luces indicadoras de ocupado en la parte delantera del tren. Así se puede saber dónde está el baño libre más cercano y decidir si aguantas un poco más o si, en caso de urgencia, vas a un vagón más lejano
      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
    • En gran parte se debe a reducir el costo de los componentes. Se puede poner un seguro de solenoide robusto y control por microprocesador por menos dinero que un sistema totalmente mecánico y robusto. Los sistemas mecánicos requieren mantenimiento mecánico y quedan expuestos a todo tipo de entradas indebidas, como gente cargando todo su peso sobre la palanca
      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
    • Algo relacionado: acabo de enterarme de que el Boeing 737MAX reemplaza el teclado de la CDU de la cabina por una pantalla táctil que imita ese mismo teclado
      https://www.gableseng.com/wp-content/uploads/2020/05/G7330-....
      Me quedé sin palabras
    • Yo pensaba algo parecido, pero cambié de opinión al leer que, en la práctica, para personas con problemas motores o musculares, un botón pulsador que no requiere fuerza física, o un dispositivo como la palanca de arriba, es mucho más fácil
      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

    • Los baños antiguos eran mucho más pequeños, se podían abrir y cerrar rápido con una manija común, y tenían un seguro grande y simple. Pero ese método no funciona para algunos pasajeros, por ejemplo usuarios en silla de ruedas o personas a las que les cuesta agarrar una manija
      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