L’affaire du piratage des toilettes d’un train
(devever.net)- Dans les toilettes accessibles aux personnes handicapées des trains britanniques Class 800, une vulnérabilité DoS a été confirmée : elle exploite l’instant où l’état de la porte et l’interprétation du levier de verrouillage divergent, de sorte que la porte se verrouille dès qu’elle se ferme
- L’ancienne conception à boutons séparait « fermer » et « verrouiller », empêchant qu’une personne verrouille les toilettes depuis l’extérieur, mais les utilisateurs pouvaient facilement se tromper sur l’état du verrouillage
- La conception récente à levier est plus intuitive, mais dans l’approche de Hitachi, le levier n’est pas ramené en arrière : son mouvement est bloqué par une broche métallique, ce qui crée un jeu entre la course du levier et l’interprétation par le contrôleur
- Pour reproduire le problème, il faut fermer la porte, déplacer le levier juste assez pour que la broche de verrouillage ne s’engage pas, rouvrir la porte afin que la broche sorte dans le vide, puis placer le levier en position verrouillée
- Lors d’un test, le contrôleur de la porte est passé en mode out-of-order, mais la démonstration n’a été réalisée que lorsqu’il n’y avait personne en attente et que le train disposait de plusieurs toilettes
Mécanisme de verrouillage des portes des toilettes des Class 800
- Les trains britanniques Class 800 disposent de toilettes accessibles aux personnes handicapées équipées de portes électriques
- Les toilettes de génération précédente avaient à l’intérieur des boutons
open,closeetlock- L’utilisateur devait appuyer sur
close, attendre que la porte se ferme, puis appuyer surlock - Il n’y avait pas de bouton
unlockséparé : appuyer sur le bouton intérieuropendéverrouillait automatiquement la porte puis l’ouvrait
- L’utilisateur devait appuyer sur
- Séparer « fermer » et « verrouiller » permet d’empêcher une attaque par déni de service où quelqu’un appuierait sur
closepuis sortirait avant la fermeture de la porte, rendant les toilettes durablement inutilisables - En contrepartie, cela prêtait à confusion pour les utilisateurs peu familiers avec une machine à états, avec des situations où la porte n’était pas correctement verrouillée, ou où l’utilisateur pensait à tort qu’elle l’était
La vulnérabilité apparue avec le verrouillage à levier
- Les toilettes accessibles récentes utilisent souvent un levier plutôt que des boutons pour verrouiller la porte
- C’est plus intuitif pour l’utilisateur
- Mais ce levier n’est pas un levier mécanique directement relié au dispositif de verrouillage : c’est une entrée pour microcontrôleur
- Dans certains trains britanniques, si l’on tente de déplacer le levier en position verrouillée alors que la porte est ouverte, le levier revient en position unlocked afin de gérer l’incohérence d’état
- Dans l’approche de Hitachi, au lieu de ramener le levier en arrière, une petite broche métallique sort et maintient le levier en position unlocked lorsqu’il ne devrait pas pouvoir être déplacé en position de verrouillage
- La vulnérabilité vient du jeu entre le point où le levier est détecté comme « verrouillé » et le point où la broche métallique peut effectivement s’engager
- Après avoir fermé la porte, on peut déplacer le levier jusqu’à une position où la broche ne s’engage pas, tout en restant à un endroit que le contrôleur ne lit pas encore comme locked
- Si l’on ouvre alors la porte, la broche de verrouillage sort dans le vide
- Comme la broche ne touche pas le levier, celui-ci peut être déplacé en position locked
- Ensuite, le bouton
closecontinue de fonctionner, et la porte se verrouille dès qu’elle se ferme
- Une vidéo démontrant ce problème a été publiée
- Lors du deuxième test sur une Class 800, le contrôleur de la porte des toilettes est passé en mode out-of-order
- Cela ne s’était pas produit lors du premier test
- Quand l’auteur est descendu du train, les toilettes fonctionnaient de nouveau
- On ne sait pas si elles se sont réinitialisées automatiquement après un certain temps, ou si quelqu’un à bord du train les a réinitialisées
- La démonstration n’a été réalisée que lorsqu’il n’y avait personne à proximité attendant les toilettes et que le train disposait de plusieurs toilettes ; l’objectif de la vidéo n’était pas de provoquer réellement un DoS sur les toilettes, mais d’en montrer la possibilité
1 commentaires
Avis sur Hacker News
À l’école primaire, ça arrivait aussi avec des verrous analogiques qu’on tournait à la main. À l’extérieur de la porte, il y avait une interface en forme de fente de vis comme celle-ci ; un élève qui sortait cinq minutes avant la fin du cours en disant « je dois aller aux toilettes » verrouillait toutes les cabines depuis l’extérieur avec un tournevis ou un Swiss Army knife, et toutes les cabines semblaient alors occupées.
Une fois, dans un train suédois, alors que j’étais aux toilettes, la porte électrique a commencé à s’ouvrir. La poignée était à portée, donc j’ai essayé de la repousser pour la fermer, mais au final j’ai dû privilégier le fait de remonter mon pantalon.
Les toilettes de cette voiture étaient plus grandes qu’une banquette classique de deux places, et il y avait même, à l’extérieur, des sièges orientés vers les toilettes. C’était assez embarrassant, mais comme on naît tous nus, c’est devenu une anecdote amusante ; je n’étais pas assez curieux de la cause pour y retourner, donc je suis simplement revenu à ma place en faisant autant que possible comme si de rien n’était.
Autrefois, en Australie, il existait des appareils qui ressemblaient à une tentative précoce de téléphone public numérique ; certains sont encore là, mais sans doute plus pour longtemps. Si l’on maintenait le bouton de langue enfoncé avant de décrocher et pendant qu’on décrochait, le téléphone affichait « Out of Order », et même après avoir raccroché, le message restait jusqu’à ce que quelqu’un décroche à nouveau.
En bons lycéens, nous avions une approche purement scientifique pour gâcher la vie du plus grand nombre. Si l’on mettait hors service de cette façon seulement deux téléphones sur trois, personne n’examinait assez le combiné en panne pour rétablir l’état, et une longue file se formait devant celui qui fonctionnait. Mais si l’on désactivait les trois, des usagers en colère testaient les combinés et les remettaient tous en état normal ; c’était une étude reproductible sur presque tous les groupes de téléphones publics de notre quartier.
Sur une voiture utilisée sur des lignes britanniques, que j’ai probablement vue près de Bradford, le bouton fermer à l’intérieur avait exactement ce genre de défaut de conception.
Comme j’ai le réflexe d’appuyer sur « fermer » en sortant, par souci de laisser les choses en ordre, je devais vraiment faire attention ; la première fois que je l’ai utilisée, je crois que j’ai effectivement appuyé dessus et que ce n’est qu’en entendant le clic que j’ai compris ce que je venais d’infliger aux autres voyageurs.
Le fait de faire de la fermeture et du verrouillage deux actions distinctes a aussi une dimension psychologique. Dans certains trains danois, il n’y a qu’un bouton « fermer », ce qui est assez déroutant la première fois.
C’est vrai que l’ancien design embrouillait les gens, mais je ne comprends pas pourquoi ils n’ont pas choisi la solution évidente : ajouter un bouton de déverrouillage. Ou alors utiliser un verrou mécanique dans lequel les gens peuvent clairement avoir confiance.
Le pire verrou de toilettes que j’aie vu était un bouton bizarre sur lequel on appuyait pour verrouiller ; il inspirait si peu confiance qu’il était impossible de savoir s’il était vraiment verrouillé, au point que le propriétaire avait mis un panneau expliquant exactement comment verrouiller la porte et assurant qu’elle était bien verrouillée.
Je ne vois pas ce qui n’allait pas avec les anciens verrous mécaniques des toilettes de train. Beaucoup de passagers, surtout âgés, ont du mal à utiliser correctement ces dispositifs électriques sophistiqués, il y a eu pas mal de situations gênantes avec des portes qui n’étaient en fait pas verrouillées, et certains semblent trouver amusant de les saboter volontairement.
Il arrive que quelqu’un ait vraiment une urgence et ait besoin de toilettes qui fonctionnent dans le train.
Le design des boutons n’était pas particulièrement clair non plus. Je comprends l’intérêt d’un mécanisme électrique d’ouverture/fermeture, puisque la porte coulissante est lourde, mais le verrouillage aurait dû être physique, ou au moins se comporter comme un mécanisme physique.
Pour permettre aux personnes handicapées de gérer le plus possible elles-mêmes un processus privé comme l’usage des toilettes, il est probable que ce type de solution ait été pratiquement la seule option.
De plus, en gare, on peut verrouiller automatiquement les toilettes afin que les gens ne les utilisent qu’entre deux gares, ce qui réduit les mauvaises odeurs pendant l’attente à la montée et à la descente.
Cela dit, sans interverrouillage, un verrou mécanique peut lui aussi être facilement mis en état de déni de service. Quiconque s’est déjà retrouvé enfermé dehors après avoir laissé ses clés à l’intérieur d’une voiture ou d’un bâtiment s’en souvient sûrement.
Ces hacks mécaniques sont toujours amusants quand on les découvre. Cela dit, la personne malchanceuse qui attend les toilettes pour découvrir qu’elles sont verrouillées alors qu’il n’y a personne dedans, ça pourrait très bien être moi.
Ces choses sont plus difficiles à tester, et ce n’est pas seulement un problème de logiciel simple ou de machine à états. Il existe aussi des « hacks » mécaniques vraiment dangereux : les appareils de radiothérapie comme le Therac-25, qui administraient de mauvaises doses de rayonnement, en sont un exemple.
Je ne comprends pas pourquoi il faut mettre des microcontrôleurs partout. Les toilettes de train ont fondamentalement le même cas d’usage que les toilettes d’avion, et tous les avions que j’ai pris avaient un verrou coulissant à l’ancienne qui fonctionnait sans problème.
Je me demande si les toilettes de train mentionnées dans l’article ont un minuteur qui empêche quelqu’un de les occuper pendant tout le trajet, ce qui rendrait impossible un verrou mécanique.
J’ai entendu dire que les « superloos », ces toilettes autonettoyantes installées sur la voie publique, ont une limite de temps et diffusent un avertissement vocal quelques minutes avant l’ouverture. Plus inquiétant encore, il y a eu des cas où le nettoyage automatique a démarré alors que quelqu’un était à l’intérieur. Si la personne précédente maintient la porte ouverte pour faire entrer la suivante et économiser de l’argent, les toilettes considèrent qu’elles sont vides et tentent en quelque sorte de noyer l’utilisateur « non déclaré ».
De plus, la porte se ferme automatiquement quand les toilettes ne sont pas utilisées, afin de contenir les odeurs. La principale raison est que la porte n’est pas adaptée aux fauteuils roulants. Beaucoup d’utilisateurs de fauteuil roulant n’ont pas la force ou l’agilité nécessaires pour la manœuvrer. Concevoir un système de porte mécanique qui satisfasse ces trois contraintes est assez difficile, mais l’interface pourrait clairement être meilleure.
Personnellement, j’aurais sans doute conçu le système de façon à devoir maintenir le bouton « fermer » enfoncé pendant toute la fermeture. Si on relâche le bouton en cours de route, la porte se rouvre ; elle ne reste fermée et « verrouillée » qu’une fois complètement fermée. Un vrai verrou mécanique n’est pas nécessaire, mais il faudrait un gros voyant rouge en forme de cadenas qui s’allume.
Un bouton affleurant ou un levier bas comme celui qu’on voit sur la photo a peu de masse et de course, et n’a pas besoin de fournir un avantage mécanique ; il peut donc être plus résistant à certaines attaques mécaniques. Quand c’est possible, je préfère les mécanismes simples sans logiciel, mais je ne suis pas celui qui doit gérer directement les questions de coût et de fiabilité.
https://www.gableseng.com/wp-content/uploads/2020/05/G7330-....
Je suis sans voix.
Il me semble que la raison initiale de l’introduction des boutons était l’accessibilité, et je crois comprendre que les avions récents cherchent à passer à des systèmes similaires pour la même raison.
Les toilettes des trains britanniques sont un classique des recueils de mauvais design. Des personnes qui n’arrivent pas à verrouiller la porte se retrouvent exposées au compartiment, d’autres n’arrivent pas à la fermer, et d’autres encore n’arrivent pas à l’ouvrir.
Tout cela, c’est quand on parvient jusqu’aux toilettes et que l’utilisateur précédent ne les a pas laissées dans un état lamentable.
Améliorer l’accessibilité des toilettes pour un groupe peut la réduire pour un autre. C’est à la société de décider quel compromis elle accepte. Certains trains britanniques trouvent un équilibre correct en proposant à la fois de grandes toilettes accessibles en fauteuil roulant et de petites toilettes traditionnelles, mais ils ont souvent du mal à bien l’indiquer.