ट्रेन के टॉयलेट हैक की घटना
(devever.net)- ब्रिटेन की Class 800 ट्रेनों के दिव्यांग-उपयोगी टॉयलेट में ऐसा क्षण मिला, जहाँ दरवाज़े की स्थिति और lock lever की controller-आधारित पहचान आपस में नहीं मिलती, और इसका उपयोग करके दरवाज़ा बंद होते ही लॉक हो जाने वाली DoS vulnerability की पुष्टि हुई
- पुरानी button-आधारित डिज़ाइन में “बंद करना” और “लॉक करना” अलग थे, इसलिए बाहर से टॉयलेट को लॉक करके उसे अनुपयोगी बना देना रोका जा सकता था, लेकिन उपयोगकर्ताओं के लिए lock की स्थिति को लेकर भ्रम होना आसान था
- नई lever-आधारित डिज़ाइन ज़्यादा सहज है, लेकिन Hitachi के तरीके में lever को वापस लाने के बजाय metal pin से उसकी चाल रोकी जाती है, जिससे lever के play और controller की पहचान के बीच एक gap बन जाता है
- पुनरुत्पादन का तरीका यह है: दरवाज़ा बंद करने के बाद lever को बस इतना हिलाया जाए कि lock pin न फँसे, फिर दरवाज़ा दोबारा खोला जाए ताकि pin हवा में बाहर आ जाए, और उसके बाद lever को lock position में ले जाया जाए
- एक test में door controller out-of-order mode में चला गया, लेकिन यह प्रदर्शन केवल तब किया गया जब कोई इंतज़ार नहीं कर रहा था और ट्रेन में कई टॉयलेट मौजूद थे
Class 800 टॉयलेट दरवाज़े की लॉक संरचना
- ब्रिटेन की Class 800 ट्रेनों में electric door वाले दिव्यांग-उपयोगी टॉयलेट होते हैं
- पिछली पीढ़ी के टॉयलेट में अंदर
open,close,lockबटन होते थे- उपयोगकर्ता को
closeदबाकर दरवाज़ा बंद होने का इंतज़ार करना पड़ता था, फिरlockदबाना होता था - अलग
unlockबटन नहीं था; अंदर काopenबटन दबाने पर अपने-आप unlock होकर दरवाज़ा खुल जाता था
- उपयोगकर्ता को
- “बंद करना” और “लॉक करना” अलग रखने से ऐसा denial-of-service attack रोका जा सकता है जिसमें कोई
closeदबाकर, दरवाज़ा बंद होने से पहले बाहर निकल जाए और टॉयलेट को स्थायी रूप से अनुपयोगी बना दे - लेकिन state machine से परिचित न होने वाले उपयोगकर्ताओं के लिए यह उलझनभरा था, और दरवाज़ा सही तरह लॉक न कर पाने या लॉक समझ लेने जैसी स्थिति बन सकती थी
lever-आधारित लॉक में बनी vulnerability
- नए दिव्यांग-उपयोगी टॉयलेट में अक्सर बटन की जगह lever हिलाकर दरवाज़ा लॉक किया जाता है
- उपयोगकर्ता के लिए इसे समझना अधिक सहज है
- लेकिन यह lever असली lock mechanism से सीधे जुड़ा mechanical lever नहीं, बल्कि microcontroller input है
- ब्रिटेन की कुछ ट्रेनों में, अगर दरवाज़ा खुला हो और lever को lock position में ले जाने की कोशिश की जाए, तो lever अपने-आप वापस unlocked position में लौट आता है, ताकि state mismatch संभाली जा सके
- Hitachi की विधि में lever को वापस लाने के बजाय, जब उसे lock position में नहीं जाना चाहिए तब एक छोटा metal pin बाहर निकालकर lever को unlocked position पर रोका जाता है
- vulnerability उस play में पैदा होती है जो lever के “locked” के रूप में detect होने वाले बिंदु और metal pin के वास्तव में फँस सकने वाले बिंदु के बीच मौजूद है
- दरवाज़ा बंद करने के बाद lever को ऐसी स्थिति तक ले जाया जा सकता है जहाँ pin न फँसे, लेकिन controller अभी भी उसे locked न पढ़े
- उस स्थिति में अगर दरवाज़ा खोला जाए, तो lock pin हवा में बाहर निकल आता है
- क्योंकि pin lever को छू नहीं रहा होता, lever को locked position तक ले जाना संभव हो जाता है
- इसके बाद
closeबटन काम करता रहता है, और दरवाज़ा बंद होते ही तुरंत लॉक हो जाता है
- इस समस्या का प्रदर्शन करने वाला वीडियो सार्वजनिक किया गया
- Class 800 में दूसरे test के दौरान टॉयलेट door controller out-of-order mode में चला गया
- पहले test में ऐसा नहीं हुआ था
- लेखक के ट्रेन से उतरते समय टॉयलेट फिर से काम कर रहा था
- यह पता नहीं कि कुछ समय बाद अपने-आप reset हुआ या ट्रेन में किसी ने उसे reset किया
- यह प्रदर्शन केवल तब किया गया जब आसपास कोई टॉयलेट का इंतज़ार नहीं कर रहा था और ट्रेन में कई टॉयलेट उपलब्ध थे; वीडियो का उद्देश्य वास्तव में टॉयलेट पर DoS करना नहीं, बल्कि इस संभावना को दिखाना था
1 टिप्पणियां
Hacker News की राय
प्राथमिक स्कूल में हाथ से घुमाए जाने वाले analog lock में भी ऐसा होता था। दरवाज़े के बाहर इस तरह का पेच की नाली जैसा interface होता था, इसलिए क्लास ख़त्म होने से 5 मिनट पहले “मुझे बाथरूम जाना है” कहकर बाहर जाने वाला बच्चा screwdriver या Swiss Army knife से बाहर से सभी cubicle lock कर देता था, और फिर वे सब इस्तेमाल में दिखते थे
स्वीडन की ट्रेन में काम निपटाते समय एक बार electric door खुलना शुरू हो गया था। handle हाथ की पहुँच में था, इसलिए मैंने उसे धकेलकर बंद करने की कोशिश की, लेकिन आख़िर में पैंट ऊपर करना ज़्यादा ज़रूरी था
उस coach का toilet सामान्य 2-सीटर से बड़ा था, और बाहर toilet की तरफ़ मुख किए सीटें भी थीं। काफ़ी शर्मिंदगी हुई, लेकिन सब लोग नंगे ही पैदा होते हैं, इसलिए आख़िरकार यह एक मज़ेदार किस्सा बन गया। वजह जानने के लिए लौटकर देखने लायक जिज्ञासा नहीं थी, इसलिए मैं बस अपनी सीट पर लौट गया और जितना हो सके अनदेखा होने की कोशिश की
पहले ऑस्ट्रेलिया में digital payphone के शुरुआती प्रयास जैसा दिखने वाला एक उपकरण था, और कुछ अब भी बचे हैं, लेकिन शायद ज़्यादा समय तक नहीं। receiver उठाने से पहले और उठाते समय language button दबाए रखने पर payphone “Out of Order” दिखाता था, और receiver वापस रखने के बाद भी अगला व्यक्ति receiver उठाए तब तक वही संदेश बना रहता था
हाई स्कूल के छात्र होने के नाते, हमने बहुत से लोगों की ज़िंदगी ख़राब करने के लिए पूरी तरह वैज्ञानिक तरीका अपनाया। अगर 3 में से 2 payphone को ऐसे बंद छोड़ दिया जाए, तो कोई भी ख़राब दिख रहे receiver को काफ़ी देर तक जाँचकर उसकी स्थिति वापस नहीं करता था, और नतीजे में चल रहे 1 phone के सामने लंबी लाइन लग जाती थी। लेकिन अगर 3 के 3 बंद कर दिए जाएँ, तो ग़ुस्साए उपयोगकर्ता receiver जाँचते-जाँचते सबको फिर से normal कर देते थे। यह हमारे इलाक़े के लगभग हर payphone cluster में दोहराकर देखा गया था
UK route पर चलने वाले किसी coach में, शायद मैंने Bradford के पास देखा था, अंदर का close button ठीक ऐसी ही खराब design वाला था।
मुझे निकलते समय चीज़ें समेट देने की आदत है, इसलिए ‘close’ दबाने का reflex था और मुझे सच में बहुत सावधान रहना पड़ता था। लगता है पहली बार इस्तेमाल करते समय मैंने सच में उसे दबा दिया था, और click की आवाज़ सुनने के बाद ही समझा कि मैंने दूसरे यात्रियों के साथ क्या कर दिया
बंद करना और lock करना अलग क्रिया बनाने के पीछे मनोवैज्ञानिक पहलू भी है। डेनमार्क की कुछ ट्रेनों में सिर्फ़ ‘close’ button होता है, जो पहली बार देखने पर काफ़ी चौंकाता है
यह सही है कि पुरानी design लोगों को confuse करती थी, लेकिन समझ नहीं आता कि साफ़-साफ़ दिखने वाले समाधान, यानी unlock button जोड़ने, को क्यों नहीं चुना गया। या फिर ऐसा mechanical lock इस्तेमाल किया जा सकता था जिस पर लोग स्पष्ट रूप से भरोसा कर सकें
मैंने जो सबसे ख़राब toilet lock देखा, वह एक अजीब सा button था जो दबाने पर lock होता था। वह इतना अविश्वसनीय था कि सच में lock हुआ या नहीं, पता ही नहीं चलता था, इसलिए मालिक ने दरवाज़ा lock करने का सही तरीका और यह कि वह सच में lock होता है, इसकी व्याख्या वाला sign लगा रखा था
समझ नहीं आता कि ट्रेन के toilet के पुराने mechanical lock में दिक्कत क्या थी। कई यात्री, ख़ासकर बुज़ुर्ग, इन चमकदार electric सिस्टम को ठीक से इस्तेमाल नहीं कर पाते, और सच में lock न हुए दरवाज़ों की वजह से शर्मनाक स्थितियाँ अक्सर बनती थीं। कुछ लोग तो शायद इन्हें जानबूझकर ख़राब करने में मज़ा लेते हैं
कभी-कभी किसी को सच में बहुत ज़रूरी काम होता है और उसे ट्रेन में चलने वाला toilet चाहिए होता है
button design भी ख़ास स्पष्ट नहीं था। sliding door भारी होता है, इसलिए powered opening/closing सिस्टम का फ़ायदा समझ आता है, लेकिन locking physical mechanism होना चाहिए था, या कम से कम physical mechanism जैसा व्यवहार करना चाहिए था
अगर disabled users को भी toilet जैसी निजी प्रक्रिया में जितना हो सके ख़ुद नियंत्रण देना हो, तो शायद यही लगभग एकमात्र तरीका रहा होगा
इसके अलावा स्टेशन पर इसे अपने-आप lock किया जा सकता है, ताकि लोग इसे सिर्फ़ स्टेशनों के बीच इस्तेमाल करें, और चढ़ने-उतरने के इंतज़ार के दौरान बदबू कम हो
हालाँकि interlock न हो तो mechanical lock को भी आसानी से denial-of-service स्थिति में बदला जा सकता है। जिसे कभी car या building में चाबी अंदर छोड़कर बाहर से lock होना पड़ा हो, वह इसे ज़रूर याद करेगा
ऐसी mechanical hacking मिलना हमेशा मज़ेदार होता है। बस दिक्कत यह है कि toilet का इंतज़ार करते हुए अंदर कोई न होने पर भी lock मिला तो वह बेचारा शायद मैं ही होऊँगा
इन चीज़ों को test करना ज़्यादा कठिन है, और यह सिर्फ़ software या state machine की समस्या नहीं है। कुछ mechanical “hack” सच में ख़तरनाक भी होते हैं, जैसे Therac-25 जैसी radiation therapy machine, जिसने ग़लत radiation dose दे दी थी
समझ नहीं आता कि हर चीज़ में microcontroller क्यों डालना ज़रूरी है। ट्रेन का टॉयलेट मूल रूप से हवाई जहाज़ के टॉयलेट जैसा ही use case है, और जिन भी हवाई जहाज़ों में मैं बैठा हूँ, उनमें पुराने स्लाइडिंग लॉक थे और वे बिना किसी समस्या के काम करते थे
सोच रहा हूँ कि क्या मूल लेख में बताए गए ट्रेन टॉयलेट में ऐसा timer है जो किसी को पूरी यात्रा के दौरान टॉयलेट घेरकर बैठने से रोकता है, इसलिए mechanical lock काम नहीं करेगा
मैंने सुना है कि पक्की सड़कों पर लगे self-cleaning टॉयलेट, “superloos”, में समय-सीमा होती है और खुलने से कुछ मिनट पहले voice warning चलती है। इससे भी ज़्यादा चिंताजनक वे मामले हैं जिनमें अंदर कोई मौजूद होने पर भी auto-cleaning शुरू हो गई। अगर पिछला व्यक्ति पैसे बचाने के लिए दरवाज़ा पकड़े रखे ताकि अगला व्यक्ति अंदर जा सके, तो टॉयलेट यह मान लेता है कि वह खाली है और किसी “unreported” उपयोगकर्ता को पानी में भिगोने की कोशिश करता है
साथ ही, इस्तेमाल में न होने पर बदबू रोकने के लिए यह दरवाज़ा अपने-आप बंद कर देता है। सबसे बड़ा कारण यह है कि दरवाज़ा wheelchair-friendly नहीं है। कई wheelchair users में दरवाज़ा हिलाने जितनी ताकत या फुर्ती नहीं होती। इन तीनों ज़रूरतों को पूरा करने वाला mechanical door system डिज़ाइन करना काफ़ी मुश्किल है, लेकिन UI निश्चित रूप से बेहतर हो सकता है
व्यक्तिगत रूप से, मैं शायद इसे ऐसा बनाता कि दरवाज़ा बंद होने के पूरे समय ‘Close’ बटन दबाए रखना पड़े। बीच में बटन छोड़ते ही वह फिर खुल जाए, और पूरी तरह बंद होने के बाद ही बंद और ‘locked’ स्थिति में रहे। असली mechanical lock की ज़रूरत नहीं, लेकिन जलने वाला बड़ा लाल ताले का indicator ज़रूर होना चाहिए
सतह के बराबर बटन या तस्वीर में दिखने वाले कम-ऊँचाई वाले lever का वज़न और travel कम होता है, और उन्हें mechanical advantage देने की ज़रूरत नहीं पड़ती, इसलिए कुछ तरह के mechanical attacks के ख़िलाफ़ वे अधिक मज़बूत हो सकते हैं। जहाँ संभव हो, मुझे software के बिना simple mechanism पसंद हैं, लेकिन मैं लागत और reliability की समस्याओं से सीधे जूझने वाली स्थिति में नहीं हूँ
https://www.gableseng.com/wp-content/uploads/2020/05/G7330-....
मैं तो निरुत्तर हूँ
लगता है कि button लाने की मूल वजह accessibility थी, और मेरी समझ में नवीनतम हवाई जहाज़ भी इसी कारण ऐसे ही मिलते-जुलते सिस्टम की ओर जा रहे हैं
UK की ट्रेनों के टॉयलेट खराब डिज़ाइन के उदाहरणों का क्लासिक संग्रह हैं। कुछ लोग दरवाज़ा lock नहीं कर पाते और कंपार्टमेंट के सामने खुल जाते हैं, कुछ लोग दरवाज़ा बंद नहीं कर पाते, और कुछ उसे खोल नहीं पाते
और यह तब की बात है जब आप टॉयलेट तक पहुँच भी जाएँ और पिछले उपयोगकर्ता ने उसे बर्बाद न किया हो
किसी एक समूह के लिए टॉयलेट की accessibility बढ़ाने से दूसरे समूह के लिए वह घट सकती है। यह इस बात का सवाल है कि समाज किस स्तर का संतुलन चुनता है। UK की कुछ ट्रेनों में संतुलन ठीक है, जहाँ बड़ा wheelchair-accessible टॉयलेट और छोटा पारंपरिक टॉयलेट दोनों होते हैं, लेकिन अक्सर उस बात की जानकारी देने में दिक्कत होती है