2 điểm bởi GN⁺ 2024-01-29 | 1 bình luận | Chia sẻ qua WhatsApp
  • Trên nhà vệ sinh dành cho người khuyết tật của tàu Class 800 ở Anh, người ta đã xác nhận một lỗ hổng DoS khiến cửa bị khóa ngay khi vừa đóng, bằng cách lợi dụng khoảnh khắc trạng thái cửa và phán định của cần khóa bị lệch nhau
  • Thiết kế dạng nút bấm trước đây tách riêng “đóng” và “khóa”, giúp ngăn tình huống khóa nhà vệ sinh từ bên ngoài, nhưng người dùng dễ nhầm lẫn về trạng thái khóa
  • Thiết kế mới dạng cần gạt trực quan hơn, nhưng cách của Hitachi không đưa cần gạt trở lại mà dùng chốt kim loại để chặn chuyển động, tạo ra khe hở giữa độ rơ của cần gạt và phán định của bộ điều khiển
  • Cách tái hiện là sau khi đóng cửa, di chuyển cần gạt chỉ đến mức chốt khóa chưa mắc vào, rồi mở cửa lại để chốt thò ra vào khoảng không, sau đó chuyển cần gạt sang vị trí khóa
  • Trong một lần thử nghiệm, bộ điều khiển cửa chuyển sang chế độ out-of-order, nhưng phần trình diễn chỉ được thực hiện trong tình huống không có người chờ và trên tàu có nhiều nhà vệ sinh

Cấu trúc khóa cửa nhà vệ sinh trên Class 800

  • Tàu Class 800 ở Anh có nhà vệ sinh dành cho người khuyết tật với cửa vận hành bằng điện
  • Nhà vệ sinh thế hệ trước có cấu trúc đặt các nút open, close, lock ở bên trong
    • Người dùng phải nhấn close, chờ cửa đóng rồi nhấn lock
    • Không có nút unlock riêng; khi nhấn nút open bên trong, cửa sẽ tự động mở khóa rồi mở ra
  • Việc tách riêng “đóng” và “khóa” có thể ngăn tấn công từ chối dịch vụ trong đó ai đó nhấn close rồi rời ra ngoài trước khi cửa đóng, khiến nhà vệ sinh không thể sử dụng vĩnh viễn
  • Tuy nhiên, điều này gây khó hiểu cho những người không quen với máy trạng thái, và có thể dẫn đến tình huống họ không khóa cửa đúng cách hoặc tưởng nhầm là đã khóa

Lỗ hổng phát sinh trong khóa dạng cần gạt

  • Nhiều nhà vệ sinh dành cho người khuyết tật đời mới dùng cách di chuyển cần gạt để khóa cửa thay cho nút bấm
    • Trực quan hơn đối với người dùng
    • Tuy nhiên, cần gạt này không phải là cần cơ khí nối trực tiếp với cơ cấu khóa thật, mà là đầu vào cho vi điều khiển
  • Một số tàu ở Anh xử lý sự không khớp trạng thái bằng cách khiến cần gạt quay lại vị trí unlocked nếu người dùng cố gạt sang vị trí khóa khi cửa đang mở
  • Cách của Hitachi thì thay vì đưa cần gạt trở lại, sẽ đẩy một chốt kim loại nhỏ nhô ra trong tình huống không được phép gạt sang vị trí khóa, để cố định cần gạt ở vị trí unlocked
  • Lỗ hổng phát sinh từ độ rơ giữa điểm cần gạt được nhận biết là “đã khóa” và điểm chốt kim loại thực sự có thể mắc vào
    • Sau khi đóng cửa, có thể di chuyển cần gạt đến vị trí chốt chưa mắc vào, nhưng bộ điều khiển vẫn chưa đọc là locked
    • Nếu mở cửa trong trạng thái đó, chốt khóa sẽ nhô ra vào khoảng không
    • Vì chốt không chạm vào cần gạt, có thể chuyển cần gạt sang vị trí locked
    • Sau đó nút close vẫn tiếp tục hoạt động, và cửa sẽ khóa ngay khi đóng lại
  • Một video trình diễn vấn đề này đã được công bố
  • Trong lần thử nghiệm thứ hai trên Class 800, bộ điều khiển cửa nhà vệ sinh chuyển sang chế độ out-of-order
    • Ở lần thử nghiệm đầu tiên không có hiện tượng này
    • Khi tác giả xuống tàu, nhà vệ sinh đã hoạt động trở lại
    • Không rõ nó đã tự động reset sau một khoảng thời gian, hay có ai đó trên tàu đã reset
  • Phần trình diễn chỉ được thực hiện khi xung quanh không có người chờ nhà vệ sinh và trên tàu có nhiều nhà vệ sinh; mục đích của video không phải là thực sự DoS nhà vệ sinh, mà là cho thấy khả năng đó

1 bình luận

 
GN⁺ 2024-01-29
Ý kiến trên Hacker News
  • Hồi tiểu học cũng từng có chuyện như vậy với loại khóa analog vặn bằng tay. Ở phía ngoài cửa có một giao diện giống rãnh vít kiểu như thế này, nên đứa nào xin ra ngoài “đi vệ sinh” 5 phút trước khi hết tiết thường dùng tua vít hoặc Swiss Army knife để khóa tất cả các buồng từ bên ngoài, khiến tất cả trông như đang có người dùng

    • Hồi tiểu học, mình hay khóa cửa từ bên trong buồng rồi trèo qua phía trên để ra ngoài
  • Có lần khi đang đi vệ sinh trên tàu ở Thụy Điển thì cửa điện bắt đầu mở. Tay nắm ở trong tầm với nên tôi cố đẩy đóng lại, nhưng cuối cùng vẫn phải ưu tiên kéo quần lên trước
    Nhà vệ sinh trên toa đó rộng hơn cả ghế đôi thông thường, bên ngoài còn có ghế ngồi hướng thẳng vào nhà vệ sinh. Khá xấu hổ, nhưng ai cũng sinh ra trong tình trạng trần truồng nên cuối cùng thành một chuyện buồn cười; tôi cũng không tò mò đến mức quay lại tìm nguyên nhân, nên chỉ về chỗ và cố giả vờ như không ai thấy gì

    • Các tàu thuộc dòng Pendolino ở Anh, ít nhất là thời Virgin vận hành, từng khét tiếng vì vòng lặp rung mở/đóng liên tục. Sau khi rời mỗi ga, nhân viên còn phát thanh thông báo nhà vệ sinh ở toa nào hoạt động, và việc xin lỗi vì mùi từ toa khác cũng rất thường gặp
  • Trước đây ở Úc có một loại thiết bị trông như nỗ lực ban đầu của điện thoại công cộng kỹ thuật số; một số vẫn còn, nhưng có lẽ không tồn tại lâu nữa. Nếu giữ nút chọn ngôn ngữ trước và trong lúc nhấc ống nghe, điện thoại công cộng sẽ hiển thị “Out of Order”, và ngay cả khi gác ống nghe xuống, thông báo đó vẫn giữ nguyên cho đến khi người tiếp theo nhấc ống nghe
    Đúng kiểu học sinh trung học, chúng tôi tiếp cận việc phá hoại cuộc sống của nhiều người bằng tinh thần thuần túy khoa học. Nếu chỉ làm “tắt” 2 trong 3 máy điện thoại công cộng theo cách này, sẽ chẳng ai kiểm tra kỹ đủ chiếc ống nghe bị cho là hỏng để đưa nó về trạng thái cũ, và một hàng dài sẽ hình thành trước chiếc còn hoạt động. Nhưng nếu tắt cả 3 máy, những người dùng tức giận sẽ thử các ống nghe và vô tình đưa tất cả về trạng thái bình thường; đây là một nghiên cứu có thể lặp lại ở hầu hết các cụm điện thoại công cộng trong khu chúng tôi

  • Một loại toa xe nào đó từng dùng trên các tuyến ở Anh, hình như tôi thấy gần Bradford, có nút đóng bên trong đúng kiểu thiết kế sai như vậy.
    Tôi có phản xạ bấm ‘đóng’ khi đi ra vì thói quen dọn dẹp, nên phải thật cẩn thận; lần đầu dùng, tôi nghĩ mình đã thật sự bấm nút đó, rồi nghe tiếng tách mới nhận ra mình vừa làm gì với các hành khách khác

    • Chắc đó là class 333
  • Việc tách đóng cửa và khóa cửa thành hai thao tác riêng cũng có khía cạnh tâm lý. Một số tàu ở Đan Mạch chỉ có nút ‘đóng’, nhìn lần đầu khá bối rối

  • Đúng là thiết kế cũ khiến người ta nhầm lẫn, nhưng tôi không hiểu vì sao họ không chọn giải pháp hiển nhiên là thêm nút mở khóa. Hoặc cứ dùng một khóa cơ học mà mọi người có thể tin tưởng rõ ràng là được
    Khóa nhà vệ sinh tệ nhất tôi từng thấy là một nút kỳ quặc bấm vào để khóa, nhưng trông không đáng tin đến mức không biết có thật sự khóa hay không, nên chủ phải dán biển giải thích chính xác cách khóa cửa và rằng nó thật sự khóa

    • Cách cải tạo dễ hơn nhiều là dán nhãn “Open/Unlock” bên cạnh nút mở
  • Tôi không hiểu loại khóa cơ học kiểu cũ trên nhà vệ sinh tàu hỏa có vấn đề gì. Rất nhiều hành khách, đặc biệt là người lớn tuổi, gặp khó khi dùng các thiết bị điện lòe loẹt, đã có nhiều tình huống xấu hổ vì cửa thực ra chưa khóa, và có vẻ một số người còn cố ý phá cho vui
    Có những lúc ai đó thật sự cần một nhà vệ sinh còn hoạt động trên tàu vì quá gấp

    • Tôi chưa già, nhưng cũng từng khốn khổ vì một cửa nhà vệ sinh tàu tương tự. Tại sao cái thứ ngu ngốc này lại cần nút khóa riêng? Tôi không hiểu có tình huống nào mà khi đã vào nhà vệ sinh và bấm “đóng cửa” mà lại không muốn cửa khóa
      Thiết kế nút cũng chẳng rõ ràng. Cửa trượt nặng nên tôi hiểu lợi ích của cơ cấu đóng mở bằng điện, nhưng khóa lẽ ra phải là thiết bị vật lý, hoặc ít nhất hoạt động như một thiết bị vật lý
    • Có lẽ các cửa trượt cong như thế này chiếm ít không gian hơn nhiều so với kiểu đóng thủ công. Vấn đề là cửa trượt cong có thể rất nặng nếu đóng bằng tay, đặc biệt với người dùng xe lăn
      Nếu muốn người khuyết tật cũng có thể tự thao tác tối đa trong quá trình riêng tư như đi vệ sinh, có lẽ đây gần như là cách duy nhất
    • Bối cảnh ở đây là nhà vệ sinh được thiết kế cho người khuyết tật. Một số dạng khuyết tật khiến việc thao tác chốt hoặc cần gạt rất khó, và trong bối cảnh đó, cách bấm nút được xem là thao tác dễ tiếp cận hơn
    • Nếu coi như một thí nghiệm tư duy, loại cơ học sẽ khó để trưởng tàu mở nhanh trong tình huống khẩn cấp, và có thể hỏng thường xuyên hơn khi người ta đẩy cửa lúc đang có người dùng. Nếu đã quen hệ thống, một nút bấm có thể tiện hơn khi gấp, đồng thời giảm tiếp xúc với tay nắm hoặc chốt nên dễ giữ vệ sinh hơn
      Ngoài ra, ở ga có thể tự động khóa để mọi người chỉ dùng giữa các ga, giúp giảm mùi khó chịu trong lúc chờ lên xuống tàu
    • Vấn đề duy nhất của khóa cơ học kiểu cũ là nó không đủ “hiện đại”, tức là quá đơn giản và dễ đoán
      Tuy nhiên, nếu không có liên động, khóa cơ học cũng dễ bị biến thành trạng thái từ chối dịch vụ. Ai từng bị khóa ngoài xe hoặc tòa nhà khi để chìa khóa bên trong chắc hẳn sẽ nhớ rõ
  • Những kiểu hack cơ học như thế này lúc nào phát hiện ra cũng thú vị. Nhưng người xui xẻo chờ nhà vệ sinh rồi phát hiện bên trong chẳng có ai mà cửa lại khóa rất có thể chính là tôi
    Những thứ này khó kiểm thử hơn, và không chỉ là vấn đề của phần mềm đơn giản hay máy trạng thái. Cũng có những “hack” cơ học thật sự nguy hiểm, ví dụ như máy xạ trị Therac-25 từng cấp sai liều bức xạ

    • Trông nó giống việc đổ keo vào ổ khóa xe của ai đó rồi nói “thấy chưa, cái này không an toàn” hơn
  • Không hiểu vì sao thứ gì cũng phải nhét vi điều khiển vào. Nhà vệ sinh trên tàu hỏa về cơ bản có cùng trường hợp sử dụng với nhà vệ sinh trên máy bay, và mọi máy bay tôi từng đi đều có chốt trượt kiểu cũ, hoạt động chẳng có vấn đề gì.
    Tôi tự hỏi liệu nhà vệ sinh trên tàu được nói đến trong bài gốc có bộ hẹn giờ để ngăn ai đó chiếm dụng nhà vệ sinh suốt cả chuyến đi, nên khóa cơ học không dùng được hay không.

    • Nỗi ám ảnh vi điều khiển là có thật. Mong muốn làm mọi thứ bằng phần mềm thay vì cơ khí cũng vậy, và màn hình cảm ứng trên ô tô là một ví dụ. Là lập trình viên, tôi rất hiểu lối suy nghĩ muốn biến mọi thứ thành phần mềm định nghĩa để sau này cần thì có thể thay đổi toàn bộ, nhưng có vẻ nó ngày càng dẫn đến kết quả tệ hơn.
      Tôi nghe nói các “superloos”, tức nhà vệ sinh tự rửa đặt trên vỉa hè, có giới hạn thời gian và phát cảnh báo bằng giọng nói vài phút trước khi mở cửa. Đáng lo hơn là đã có những trường hợp hệ thống tự rửa bắt đầu khi vẫn có người bên trong. Nếu người trước giữ cửa để người sau vào nhằm tiết kiệm tiền, nhà vệ sinh sẽ cho rằng nó đang trống và tìm cách dìm người dùng “không khai báo” trong nước.
    • Những khóa cửa tàu kiểu này cũng truyền trạng thái tới đèn báo đang sử dụng ở phía trước đoàn tàu. Nhờ đó bạn biết nhà vệ sinh trống gần nhất ở đâu, và quyết định có nên nhịn thêm một chút hay nếu gấp thì đi sang toa xa hơn.
      Ngoài ra, khi không sử dụng, cửa sẽ tự động đóng để ngăn mùi. Lý do lớn nhất là cửa không thân thiện với xe lăn. Nhiều người dùng xe lăn không đủ sức hoặc đủ linh hoạt để di chuyển cửa. Thiết kế một hệ thống cửa cơ học thỏa mãn cả ba điều này khá khó, nhưng UI chắc chắn có thể tốt hơn.
      Cá nhân tôi có lẽ sẽ thiết kế để phải giữ nút ‘đóng’ trong suốt thời gian cửa đang đóng. Nếu thả nút giữa chừng thì cửa mở lại, và chỉ sau khi đóng hoàn toàn nó mới duy trì trạng thái đóng và ‘khóa’. Không cần khóa cơ học thật sự, nhưng cần có một đèn biểu tượng ổ khóa lớn màu đỏ bật sáng.
    • Phần lớn là do cắt giảm chi phí linh kiện. Có thể đưa vào một khóa solenoid chắc chắn và điều khiển bằng vi xử lý với chi phí thấp hơn một hệ thống hoàn toàn cơ học bền bỉ. Hệ thống cơ học cần bảo trì cơ khí và còn phải chịu đủ kiểu thao tác sai, như việc người ta dồn toàn bộ trọng lượng cơ thể lên cần gạt.
      Các nút bấm phẳng với bề mặt hoặc loại cần gạt thấp như trong ảnh có trọng lượng và hành trình nhỏ, không cần tạo lợi thế cơ học, nên có thể bền hơn trước một số kiểu tấn công cơ học nhất định. Nếu có thể thì tôi thích các cơ chế đơn giản không dùng phần mềm, nhưng tôi không phải người trực tiếp xử lý các vấn đề chi phí và độ tin cậy.
    • Hơi liên quan, tôi vừa biết rằng Boeing 737MAX sẽ thay bàn phím CDU trong buồng lái bằng màn hình cảm ứng mô phỏng chính bàn phím đó.
      https://www.gableseng.com/wp-content/uploads/2020/05/G7330-....
      Tôi cạn lời.
    • Tôi cũng từng nghĩ tương tự, nhưng sau khi đọc rằng với người có vấn đề về vận động hoặc cơ bắp, nút bấm không cần lực vật lý, hoặc thiết bị kiểu cần gạt ở trên, thực ra dễ dùng hơn nhiều, tôi đã đổi ý.
      Tôi nghĩ lý do ban đầu của việc đưa nút bấm vào là khả năng tiếp cận, và tôi hiểu rằng các máy bay đời mới cũng đang muốn chuyển sang hệ thống tương tự vì cùng lý do.
  • Nhà vệ sinh trên tàu hỏa ở Anh là một trường hợp kinh điển trong tuyển tập ví dụ thiết kế tệ. Có người không khóa được cửa rồi bị lộ trước khoang hành khách, có người không đóng được cửa, cũng có người không mở được cửa.
    Đó là còn trong trường hợp bạn đến được nhà vệ sinh mà người dùng trước chưa làm hỏng nó.

    • Nhà vệ sinh ngày xưa nhỏ hơn nhiều, có thể mở đóng nhanh bằng tay nắm thông thường, và có khóa lớn, đơn giản. Nhưng cách đó không phù hợp với một số hành khách, chẳng hạn người dùng xe lăn hoặc người khó nắm tay cầm.
      Khi tăng khả năng tiếp cận nhà vệ sinh cho một nhóm, có thể lại làm giảm khả năng tiếp cận với nhóm khác. Vấn đề là xã hội chọn mức nào. Một số tàu ở Anh có sự cân bằng khá ổn, khi bố trí cả nhà vệ sinh lớn tiếp cận được bằng xe lăn lẫn nhà vệ sinh nhỏ kiểu truyền thống, nhưng họ thường gặp khó khăn trong việc thông báo điều đó.