2 poin oleh GN⁺ 2024-01-29 | 1 komentar | Bagikan ke WhatsApp
  • Di toilet aksesibel pada kereta Class 800 di Inggris, ditemukan kerentanan DoS yang memanfaatkan momen ketika status pintu dan penilaian tuas kunci tidak selaras, sehingga pintu langsung terkunci begitu tertutup
  • Desain lama berbasis tombol memisahkan “tutup” dan “kunci” untuk mencegah situasi toilet dikunci dari luar, tetapi pengguna jadi mudah bingung soal status kunci
  • Desain terbaru berbasis tuas lebih intuitif, tetapi metode Hitachi menahan pergerakan dengan pin logam tanpa mengembalikan tuas, sehingga muncul celah antara toleransi gerak tuas dan penilaian pengendali
  • Reproduksinya dilakukan dengan menutup pintu, lalu menggerakkan tuas hanya sampai titik sebelum pin pengunci menyangkut, kemudian membuka lagi pintu agar pin keluar ke ruang kosong, lalu memindahkan tuas ke posisi terkunci
  • Dalam satu pengujian, pengendali pintu masuk ke mode out-of-order, tetapi demonstrasi hanya dilakukan saat tidak ada orang yang menunggu dan kereta memiliki beberapa toilet

Struktur penguncian pintu toilet Class 800

  • Kereta Class 800 di Inggris memiliki toilet aksesibel dengan pintu elektrik
  • Toilet generasi sebelumnya menggunakan tombol open, close, dan lock di bagian dalam
    • Pengguna harus menekan close, menunggu pintu tertutup, lalu menekan lock
    • Tidak ada tombol unlock terpisah; menekan tombol open di dalam akan otomatis membuka kunci lalu membuka pintu
  • Pemisahan antara “tutup” dan “kunci” mencegah serangan denial-of-service di mana seseorang menekan close lalu keluar sebelum pintu tertutup sehingga toilet menjadi tidak bisa dipakai secara permanen
  • Namun, ini membingungkan bagi pengguna yang tidak terbiasa dengan state machine, dan bisa membuat orang gagal mengunci pintu dengan benar atau mengira pintu sudah terkunci

Kerentanan yang muncul pada kunci berbasis tuas

  • Toilet aksesibel terbaru banyak yang menggunakan tuas alih-alih tombol untuk mengunci pintu
    • Bagi pengguna, ini lebih intuitif
    • Namun, tuas ini bukan tuas mekanis yang terhubung langsung ke mekanisme kunci, melainkan input ke mikrokontroler
  • Pada beberapa kereta di Inggris, jika tuas dipindahkan ke posisi terkunci saat pintu terbuka, tuas akan kembali ke posisi unlocked untuk menangani ketidaksesuaian status
  • Pada metode Hitachi, alih-alih mengembalikan tuas, sistem menonjolkan pin logam kecil untuk menahan tuas di posisi unlocked ketika tuas tidak boleh dipindahkan ke posisi terkunci
  • Kerentanan ini muncul dari celah toleransi antara titik saat tuas terdeteksi sebagai “terkunci” dan titik saat pin logam benar-benar bisa mengait
    • Setelah pintu ditutup, tuas dapat digerakkan sampai posisi yang belum membuat pin mengait, tetapi juga belum dibaca pengendali sebagai locked
    • Dalam kondisi itu, ketika pintu dibuka, pin pengunci akan menonjol ke ruang kosong
    • Karena pin tidak menyentuh tuas, tuas kemudian bisa dipindahkan ke posisi locked
    • Setelah itu, tombol close tetap berfungsi, dan pintu akan langsung terkunci begitu tertutup
  • Video yang mendemonstrasikan masalah ini telah dipublikasikan
  • Pada pengujian kedua di Class 800, pengendali pintu toilet masuk ke mode out-of-order
    • Hal ini tidak terjadi pada pengujian pertama
    • Saat penulis turun dari kereta, toilet sudah kembali berfungsi
    • Tidak diketahui apakah sistem melakukan reset otomatis setelah beberapa waktu atau di-reset oleh seseorang di dalam kereta
  • Demonstrasi hanya dilakukan saat tidak ada orang di sekitar yang menunggu toilet dan ketika kereta memiliki beberapa toilet; tujuan video tersebut bukan benar-benar melakukan DoS pada toilet, melainkan menunjukkan bahwa hal itu mungkin terjadi

1 komentar

 
GN⁺ 2024-01-29
Opini di Hacker News
  • Saat SD, hal seperti ini juga terjadi pada kunci analog yang diputar dengan tangan. Di sisi luar pintu ada antarmuka seperti alur sekrup semacam ini, jadi anak yang keluar 5 menit sebelum pelajaran selesai sambil bilang “perlu ke toilet” biasa mengunci semua bilik dari luar dengan obeng atau Swiss Army knife, sehingga semua bilik terlihat sedang dipakai

    • Saat SD, saya biasa mengunci pintu dari dalam bilik lalu memanjat keluar lewat atas
  • Saya pernah sedang buang air di kereta Swedia ketika pintu elektrik mulai terbuka. Pegangannya masih terjangkau, jadi saya mencoba mendorongnya hingga tertutup, tetapi pada akhirnya saya harus memprioritaskan menaikkan celana
    Toilet di gerbong itu lebih luas daripada kursi standar untuk dua orang, dan di luar bahkan ada kursi yang menghadap ke toilet. Cukup memalukan, tetapi semua orang lahir telanjang, jadi akhirnya menjadi cerita lucu; saya juga tidak cukup penasaran soal penyebabnya untuk kembali memeriksa, jadi saya kembali saja ke tempat duduk dan sebisa mungkin berpura-pura tidak terlihat

    • Kereta keluarga Pendolino di Inggris, setidaknya saat masih dioperasikan Virgin, terkenal dengan loop getaran buka/tutup yang berulang. Setelah berangkat dari setiap stasiun, staf sampai mengumumkan toilet di gerbong mana yang berfungsi, dan mereka juga sering meminta maaf soal bau dari gerbong lain
  • Dulu di Australia ada perangkat yang tampak seperti upaya awal telepon umum digital, dan sebagian masih ada, meski sepertinya tidak akan bertahan lama. Jika tombol bahasa ditekan dan ditahan sebelum serta saat gagang diangkat, telepon umum akan menampilkan “Out of Order”, dan meski gagang diletakkan kembali, pesan itu tetap bertahan sampai orang berikutnya mengangkat gagang
    Sebagai anak SMA, kami mengambil pendekatan yang murni ilmiah untuk merusak hidup banyak orang. Jika hanya 2 dari 3 telepon umum dimatikan dengan cara ini, tidak ada yang menyelidiki gagang yang “rusak” itu cukup lama untuk mengembalikan statusnya, sehingga terbentuk antrean panjang di depan 1 telepon yang masih berfungsi. Tetapi jika ketiganya dimatikan, pengguna yang marah akan menguji gagang-gagangnya dan semuanya kembali normal; ini penelitian yang bisa diulang pada hampir semua kelompok telepon umum di lingkungan kami

  • Ada sebuah gerbong yang digunakan di rute Inggris, mungkin yang pernah saya lihat di sekitar Bradford, tombol tutup di bagian dalamnya punya salah desain persis seperti itu.
    Karena kebiasaan refleks saya menekan ‘tutup’ saat keluar demi merapikan, saya harus benar-benar berhati-hati; saat pertama kali memakainya, saya rasa saya benar-benar menekannya, lalu baru setelah mendengar bunyi klik menyadari apa yang telah saya lakukan kepada penumpang lain

    • Itu kemungkinan class 333
  • Membuat tutup dan kunci sebagai tindakan terpisah juga punya aspek psikologis. Beberapa kereta di Denmark hanya punya tombol ‘tutup’, dan saat pertama melihatnya cukup membingungkan

  • Memang desain lama membuat orang bingung, tetapi saya tidak tahu kenapa mereka tidak memilih solusi yang jelas, yaitu menambahkan tombol buka kunci. Atau seharusnya pakai saja kunci mekanis yang bisa dipercaya orang dengan jelas
    Kunci toilet terburuk yang pernah saya lihat adalah tombol aneh yang terkunci saat ditekan, tetapi begitu tidak meyakinkan apakah benar-benar terkunci sampai pemiliknya memasang papan penjelasan tentang cara tepat mengunci pintu dan bahwa pintunya memang benar-benar terkunci

    • Cara retrofit yang jauh lebih mudah adalah menempelkan label “Open/Unlock” di sebelah tombol buka
  • Saya tidak tahu apa masalahnya dengan kunci mekanis model lama di toilet kereta. Banyak penumpang, terutama lansia, kesulitan menggunakan perangkat elektrik yang mencolok dengan benar; banyak juga kejadian memalukan karena pintu yang ternyata tidak terkunci, dan sebagian orang sepertinya sengaja merusaknya untuk bersenang-senang
    Ada orang yang benar-benar perlu buang air mendesak dan membutuhkan toilet yang berfungsi di dalam kereta

    • Saya belum lansia, tetapi pernah kerepotan dengan pintu toilet kereta yang mirip. Kenapa perangkat bodoh ini perlu tombol kunci terpisah? Kapan persisnya ada situasi ketika seseorang masuk toilet, menekan “tutup pintu”, tetapi tidak ingin pintunya terkunci?
      Desain tombolnya juga tidak terlalu jelas. Karena pintu gesernya berat, saya mengerti manfaat mekanisme buka-tutup elektrik, tetapi penguncinya seharusnya berupa perangkat fisik, atau setidaknya bekerja seperti perangkat fisik
    • Kemungkinan pintu geser melengkung seperti ini memakan ruang jauh lebih sedikit dibanding cara menutup manual. Masalahnya, menutup pintu geser melengkung secara manual bisa sangat berat, terutama bagi pengguna kursi roda
      Jika pengguna disabilitas juga ingin bisa mengoperasikannya semandiri mungkin dalam proses pribadi seperti menggunakan toilet, kemungkinan cara seperti ini nyaris satu-satunya pilihan
    • Konteksnya di sini adalah toilet yang dirancang untuk penyandang disabilitas. Beberapa disabilitas membuat pengoperasian kait atau tuas sangat sulit, dan dalam konteks seperti itu, cara menekan tombol dianggap lebih mudah diakses
    • Sebagai eksperimen pikiran, secara mekanis pintu lebih sulit dibuka mudah oleh kondektur dalam keadaan darurat, dan bisa lebih sering rusak karena orang mendorong pintu yang sedang dipakai. Jika sudah terbiasa dengan sistemnya, satu tombol tambahan bisa lebih nyaman saat mendesak, dan berkurangnya kontak dengan pegangan atau kait juga memudahkan menjaga kebersihan
      Selain itu, di stasiun toilet bisa dikunci otomatis agar orang hanya menggunakannya di antara stasiun, sehingga mengurangi bau saat penumpang menunggu naik-turun
    • Satu-satunya masalah kunci mekanis model lama adalah bahwa ia tidak cukup “modern”, yakni terlalu sederhana dan bisa diprediksi
      Namun tanpa interlock, kunci mekanis pun bisa dengan mudah dibuat menjadi kondisi denial of service. Siapa pun yang pernah terkunci di luar mobil atau bangunan dengan kunci tertinggal di dalam pasti mengingatnya
  • Peretasan mekanis seperti ini selalu menarik saat ditemukan. Meski begitu, bisa saja saya yang menjadi orang malang yang menunggu toilet lalu mendapati pintunya terkunci padahal tidak ada siapa pun di dalam
    Hal seperti ini lebih sulit diuji, dan bukan sekadar masalah perangkat lunak sederhana atau mesin status. Ada juga “peretasan” mekanis yang benar-benar berbahaya, contohnya mesin radioterapi seperti Therac-25 yang memberikan dosis radiasi yang salah

    • Ini lebih mirip memasukkan lem ke lubang kunci mobil seseorang sehingga sangat sulit dibuka, lalu berkata “lihat, ini tidak aman”
  • Saya tidak mengerti mengapa semuanya harus diberi mikrokontroler. Toilet kereta pada dasarnya punya kasus penggunaan yang sama dengan toilet pesawat, dan semua pesawat yang pernah saya naiki punya kunci geser model lama yang bekerja tanpa masalah
    Saya jadi penasaran apakah toilet kereta yang disebut di artikel asli punya timer agar seseorang tidak bisa menduduki toilet sepanjang perjalanan, sehingga kunci mekanis tidak bisa dipakai

    • Obsesi terhadap mikrokontroler memang nyata. Begitu juga keinginan untuk membuat semuanya berbasis software, bukan mekanis; touchscreen di mobil adalah contohnya. Sebagai developer, saya paham cara berpikir yang ingin membuat semuanya software-defined agar nanti bisa diubah kalau perlu, tetapi rasanya ini makin sering berujung buruk
      Saya dengar “superloos”, toilet pembersih otomatis yang dipasang di trotoar, punya batas waktu dan memutar peringatan suara beberapa menit sebelum terbuka. Yang lebih mengkhawatirkan adalah kasus-kasus ketika pembersihan otomatis dimulai saat masih ada orang di dalam. Jika orang sebelumnya menahan pintu agar orang berikutnya bisa masuk demi menghemat uang, toilet menganggap ruangannya kosong dan seolah-olah berusaha menenggelamkan pengguna yang “tidak tercatat”
    • Kunci pintu kereta seperti ini juga mengirimkan status ke lampu indikator sedang dipakai di bagian depan kereta. Jadi kita bisa tahu toilet kosong terdekat ada di mana, lalu memutuskan apakah bisa menahan sebentar lagi atau, kalau mendesak, pergi ke gerbong yang lebih jauh
      Selain itu, saat tidak digunakan pintunya otomatis menutup untuk mencegah bau. Alasan terbesarnya adalah pintu itu tidak ramah kursi roda. Banyak pengguna kursi roda tidak punya cukup tenaga atau kelincahan untuk menggerakkan pintu. Merancang sistem pintu mekanis yang memenuhi ketiga hal ini cukup sulit, tetapi UI-nya jelas masih bisa dibuat lebih baik
      Secara pribadi, saya mungkin akan membuat tombol ‘tutup’ harus terus ditekan selama pintu menutup. Jika tombol dilepas di tengah jalan, pintu terbuka lagi, dan baru setelah tertutup sepenuhnya pintu tetap dalam kondisi tertutup sekaligus ‘terkunci’. Kunci mekanis sungguhan tidak diperlukan, tetapi harus ada lampu indikator gembok merah besar yang menyala
    • Sebagian besar alasannya adalah penghematan biaya komponen. Kunci solenoid yang tangguh dengan kontrol mikroprosesor bisa dipasang lebih murah daripada sistem mekanis sepenuhnya yang tangguh. Sistem mekanis memerlukan perawatan mekanis dan terpapar berbagai macam input keliru, seperti orang menumpukan seluruh berat badan pada tuas
      Tombol yang rata dengan permukaan atau tuas berprofil rendah seperti yang terlihat di foto punya bobot dan jarak gerak kecil, serta tidak perlu memberikan keuntungan mekanis, sehingga bisa lebih tangguh terhadap serangan mekanis tertentu. Kalau bisa, saya suka mekanisme sederhana tanpa software, tetapi saya bukan orang yang langsung menangani masalah biaya dan keandalan
    • Sedikit terkait, saya baru tahu bahwa Boeing 737MAX akan mengganti keyboard CDU di kokpit dengan touchscreen yang meniru keyboard yang sama
      https://www.gableseng.com/wp-content/uploads/2020/05/G7330-....
      Saya kehabisan kata-kata
    • Saya juga awalnya berpikir mirip, tetapi pandangan saya berubah setelah membaca bahwa bagi orang dengan masalah fungsi motorik atau otot, tombol tekan yang tidak membutuhkan tenaga fisik, atau perangkat seperti tuas di atas, sebenarnya jauh lebih mudah
      Sepertinya alasan awal penggunaan tombol adalah aksesibilitas, dan sejauh yang saya pahami, pesawat modern juga sedang bergerak ke sistem serupa karena alasan yang sama
  • Toilet kereta di Inggris adalah contoh klasik dari kumpulan studi kasus desain buruk. Ada orang yang gagal mengunci pintu lalu terekspos ke penumpang di kabin, ada yang tidak bisa menutup pintu, dan ada juga yang tidak bisa membukanya
    Itu pun kalau mereka sudah berhasil sampai ke toilet dan pengguna sebelumnya belum merusaknya

    • Toilet lama jauh lebih kecil, bisa dibuka dan ditutup cepat dengan gagang biasa, dan punya kunci besar yang sederhana. Namun cara seperti itu tidak cocok untuk sebagian penumpang, misalnya pengguna kursi roda atau orang yang sulit menggenggam gagang
      Jika aksesibilitas toilet ditingkatkan untuk satu kelompok, bisa jadi aksesibilitasnya menurun bagi kelompok lain. Ini soal masyarakat memilih tingkat seperti apa. Sebagian kereta di Inggris punya keseimbangan yang cukup baik dengan menyediakan toilet besar yang dapat diakses kursi roda sekaligus toilet kecil bergaya tradisional, tetapi mereka sering kesulitan memberi tahu penumpang tentang hal itu