Vụ hack nhà vệ sinh trên tàu hỏa
(devever.net)- 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ấnlock - Không có nút
unlockriêng; khi nhấn nútopenbên trong, cửa sẽ tự động mở khóa rồi mở ra
- Người dùng phải nhấn
- 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
closerồ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
closevẫ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
Ý 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
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ì
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
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
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
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ý
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
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
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ạ
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.
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.
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.
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.
https://www.gableseng.com/wp-content/uploads/2020/05/G7330-....
Tôi cạn lờ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ó.
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 đó.