เหตุการณ์แฮ็กห้องน้ำรถไฟ
(devever.net)- พบ ช่องโหว่ DoS ในห้องน้ำสำหรับผู้พิการบนรถไฟ Class 800 ของสหราชอาณาจักร โดยอาศัยจังหวะที่สถานะประตูและการตัดสินตำแหน่งคันล็อกไม่ตรงกัน ทำให้ประตูล็อกทันทีที่ปิด
- การออกแบบรุ่นก่อนแบบปุ่มกดแยก “ปิด” กับ “ล็อก” ออกจากกัน เพื่อป้องกันสถานการณ์ที่มีคนล็อกห้องน้ำจากภายนอก แต่ผู้ใช้มักสับสนได้ง่ายว่าสถานะล็อกอยู่หรือไม่
- การออกแบบรุ่นใหม่แบบคันโยกเข้าใจง่ายกว่า แต่ในวิธีของ Hitachi จะไม่ดันคันโยกกลับ แต่ใช้ หมุดโลหะ ขวางการเคลื่อนที่ ทำให้เกิดช่องว่างระหว่างระยะหลวมของคันโยกกับการตัดสินของคอนโทรลเลอร์
- วิธีทำซ้ำคือ หลังปิดประตู ให้ขยับคันโยกเพียงเล็กน้อยจนหมุดล็อกยังเกี่ยวไม่ได้ จากนั้นเปิดประตูอีกครั้งให้หมุดยื่นออกไปในอากาศ แล้วจึงเลื่อนคันโยกไปยังตำแหน่งล็อก
- ในการทดสอบครั้งหนึ่ง คอนโทรลเลอร์ประตูเข้าสู่โหมด out-of-order แต่การสาธิตทำเฉพาะในสถานการณ์ที่ไม่มีคนรอใช้และบนขบวนรถมีห้องน้ำหลายห้อง
โครงสร้างการล็อกประตูห้องน้ำของ Class 800
- รถไฟ Class 800 ของสหราชอาณาจักรมีห้องน้ำสำหรับผู้พิการที่ใช้ประตูไฟฟ้า
- ห้องน้ำรุ่นก่อนมีโครงสร้างที่ภายในมีปุ่ม
open,close,lock- ผู้ใช้ต้องกด
closeรอให้ประตูปิด แล้วจึงกดlock - ไม่มีปุ่ม
unlockแยกต่างหาก และเมื่อกดปุ่มopenจากด้านใน ระบบจะปลดล็อกอัตโนมัติแล้วเปิดประตู
- ผู้ใช้ต้องกด
- การแยก “ปิด” กับ “ล็อก” ออกจากกันช่วยป้องกัน การโจมตีแบบปฏิเสธการให้บริการ ที่มีคนกด
closeแล้วออกมาก่อนประตูปิด ทำให้ห้องน้ำใช้งานไม่ได้ถาวร - แต่สำหรับผู้ใช้ที่ไม่คุ้นเคยกับ state machine อาจทำให้สับสน และเกิดกรณีที่ล็อกประตูไม่ถูกต้องหรือเข้าใจผิดว่าล็อกแล้ว
ช่องโหว่ที่เกิดจากการล็อกแบบคันโยก
- ห้องน้ำสำหรับผู้พิการรุ่นใหม่จำนวนมากใช้วิธีขยับ คันโยก เพื่อล็อกประตูแทนปุ่ม
- ผู้ใช้เข้าใจได้ง่ายกว่า
- อย่างไรก็ตาม คันโยกนี้ไม่ใช่คันโยกเชิงกลที่เชื่อมกับกลไกล็อกจริงโดยตรง แต่เป็นอินพุตของไมโครคอนโทรลเลอร์
- รถไฟบางขบวนในสหราชอาณาจักรจัดการความไม่ตรงกันของสถานะโดยทำให้คันโยกกลับไปยังตำแหน่ง unlocked หากพยายามขยับคันโยกไปยังตำแหน่งล็อกขณะที่ประตูเปิดอยู่
- วิธีของ Hitachi จะไม่ดันคันโยกกลับ แต่เมื่ออยู่ในสถานการณ์ที่ไม่ควรขยับไปยังตำแหน่งล็อก จะยื่น หมุดโลหะ ขนาดเล็กออกมาเพื่อยึดคันโยกไว้ที่ตำแหน่ง unlocked
- ช่องโหว่เกิดจาก ระยะหลวม ระหว่างจุดที่คันโยกถูกตรวจจับว่า “ล็อกแล้ว” กับจุดที่หมุดโลหะสามารถเกี่ยวได้จริง
- หลังปิดประตู สามารถขยับคันโยกไปยังตำแหน่งที่หมุดยังเกี่ยวไม่ได้ แต่คอนโทรลเลอร์ยังไม่อ่านว่า locked
- จากนั้นเมื่อเปิดประตูในสถานะนั้น หมุดล็อกจะยื่นออกไปในอากาศ
- เนื่องจากหมุดไม่แตะคันโยก จึงสามารถเลื่อนคันโยกไปยังตำแหน่ง locked ได้
- หลังจากนั้นปุ่ม
closeจะยังทำงานต่อไป และประตูจะล็อกทันทีที่ปิด
- มีการเผยแพร่วิดีโอสาธิตปัญหานี้
- ระหว่างการทดสอบครั้งที่สองบน Class 800 คอนโทรลเลอร์ประตูห้องน้ำเข้าสู่โหมด out-of-order
- ในการทดสอบครั้งแรกไม่เกิดอาการนี้
- ตอนผู้เขียนลงจากรถไฟ ห้องน้ำกลับมาทำงานอีกครั้งแล้ว
- ไม่ทราบว่ารีเซ็ตเองโดยอัตโนมัติหลังผ่านไประยะหนึ่ง หรือมีใครบนรถไฟรีเซ็ตให้
- การสาธิตทำเฉพาะในสถานการณ์ที่ไม่มีคนรอใช้ห้องน้ำอยู่ใกล้ ๆ และบนขบวนรถมีห้องน้ำหลายห้อง โดยจุดประสงค์ของวิดีโอไม่ใช่การทำ DoS ห้องน้ำจริง แต่เพื่อแสดงให้เห็นว่ามีความเป็นไปได้
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ตอนอยู่ประถม เรื่องแบบนี้ก็เกิดกับกลอนล็อกแบบอะนาล็อกที่หมุนด้วยมือเหมือนกัน ด้านนอกประตูจะมี อินเทอร์เฟซเหมือนร่องไขควง ประมาณนี้ เด็กที่ออกไปโดยบอกว่า “ต้องไปห้องน้ำ” ก่อนหมดคาบ 5 นาที มักจะใช้ไขควงหรือ Swiss Army knife ล็อกห้องทุกห้องจากด้านนอก ทำให้ดูเหมือนทุกห้องมีคนใช้อยู่
เคยมีครั้งหนึ่งตอนกำลังทำธุระบนรถไฟสวีเดน ประตูไฟฟ้าเริ่มเปิดเอง มือจับอยู่ในระยะเอื้อมก็เลยพยายามดันให้ปิด แต่สุดท้ายต้องให้ความสำคัญกับการดึงกางเกงขึ้นก่อน
ห้องน้ำในตู้โดยสารนั้นกว้างกว่าที่นั่งคู่ธรรมดา และด้านนอกยังมีที่นั่งที่หันเข้าหาห้องน้ำด้วย ค่อนข้างน่าอาย แต่ทุกคนก็เกิดมาเปลือยเหมือนกัน สุดท้ายเลยกลายเป็นเรื่องขำ ๆ และผมก็ไม่ได้อยากรู้สาเหตุถึงขั้นย้อนกลับไปดู เลยกลับไปนั่งที่แล้วทำเป็นเหมือนไม่มีอะไรเกิดขึ้นให้มากที่สุด
เมื่อก่อนในออสเตรเลียมีเครื่องที่ดูเหมือนความพยายามยุคแรก ๆ ของ โทรศัพท์สาธารณะแบบดิจิทัล บางเครื่องยังเหลืออยู่ แต่คงอยู่ได้ไม่นาน ถ้ากดปุ่มภาษาไว้ก่อนยกหูและระหว่างยกหู โทรศัพท์สาธารณะจะแสดงข้อความ “Out of Order” และแม้วางหูแล้ว ข้อความนั้นก็จะค้างอยู่จนกว่าคนถัดไปจะยกหูขึ้น
ด้วยความเป็นเด็กมัธยม เราใช้แนวทางเชิงวิทยาศาสตร์ล้วน ๆ ในการทำให้ชีวิตคนจำนวนมากพัง ถ้าทำให้โทรศัพท์ 2 ใน 3 เครื่องอยู่ในสภาพแบบนี้ จะไม่มีใครตรวจสอบหูโทรศัพท์ที่เสียอย่างละเอียดพอเพื่อคืนสถานะเดิม ทำให้เกิดคิวยาวหน้าเครื่องที่ยังใช้ได้ 1 เครื่อง แต่ถ้าทำให้ทั้ง 3 เครื่องดับหมด ผู้ใช้ที่โมโหจะลองยกหูทดสอบจนทุกเครื่องกลับมาเป็นปกติ เป็นการศึกษาที่ทำซ้ำได้กับแทบทุกกลุ่มโทรศัพท์สาธารณะในละแวกเรา
ตู้โดยสารบางรุ่นที่ใช้ในเส้นทางอังกฤษ น่าจะเป็นคันที่เคยเห็นแถว Bradford มี การออกแบบผิดพลาดแบบนั้นพอดี ที่ปุ่มปิดด้านใน
ผมมีรีเฟล็กซ์ชอบกด ‘ปิด’ ตอนเดินออกไปเพราะติดนิสัยจัดให้เรียบร้อย เลยต้องระวังมาก และครั้งแรกที่ใช้ ผมน่าจะเผลอกดไปจริง ๆ แล้วพอได้ยินเสียงคลิกถึงค่อยรู้ตัวว่าทำอะไรกับผู้โดยสารคนอื่นลงไป
การแยกการปิดกับการล็อกเป็นคนละการกระทำกันก็มี แง่จิตวิทยา อยู่ด้วย รถไฟบางขบวนในเดนมาร์กมีแค่ปุ่ม ‘ปิด’ ซึ่งครั้งแรกที่เห็นก็ค่อนข้างงง
จริงอยู่ว่าดีไซน์เก่าทำให้คนสับสน แต่ไม่เข้าใจว่าทำไมถึงไม่เลือกทางแก้ที่ชัดเจนอย่างการ เพิ่มปุ่มปลดล็อก หรือไม่ก็ใช้กลอนกลไกที่คนเชื่อถือได้อย่างชัดเจนไปเลย
กลอนห้องน้ำที่แย่ที่สุดที่ผมเคยเห็นคือปุ่มประหลาดที่กดแล้วล็อก แต่มันไม่น่าไว้ใจจนไม่รู้ว่าล็อกจริงหรือไม่ เจ้าของถึงกับติดป้ายอธิบายวิธีล็อกประตูที่ถูกต้องและยืนยันว่ามันล็อกจริง
ไม่รู้ว่ากลอน กลไก แบบเก่าในห้องน้ำรถไฟมีปัญหาอะไร ผู้โดยสารจำนวนมาก โดยเฉพาะผู้สูงอายุ ใช้อุปกรณ์ไฟฟ้าหรู ๆ เหล่านี้ไม่เป็นจนลำบาก และมีเหตุการณ์น่าอายมากมายจากประตูที่จริง ๆ แล้วไม่ได้ล็อก บางคนก็ดูเหมือนจะสนุกกับการจงใจทำให้มันเสีย
บางคนอาจมีธุระเร่งด่วนจริง ๆ และจำเป็นต้องใช้ห้องน้ำที่ใช้งานได้บนรถไฟ
ดีไซน์ปุ่มก็ไม่ได้ชัดเจนอะไร เข้าใจข้อดีของกลไกเปิดปิดไฟฟ้าเพราะประตูเลื่อนหนัก แต่การล็อกควรเป็นอุปกรณ์กายภาพ หรืออย่างน้อยควรทำงานเหมือนอุปกรณ์กายภาพ
ถ้าต้องการให้ผู้พิการควบคุมกระบวนการส่วนตัวอย่างการเข้าห้องน้ำได้ด้วยตัวเองมากที่สุด วิธีนี้อาจแทบเป็นทางเลือกเดียว
นอกจากนี้ที่สถานีสามารถล็อกอัตโนมัติเพื่อให้คนใช้เฉพาะระหว่างสถานีได้ ช่วยลดกลิ่นเหม็นระหว่างรอขึ้นลงรถ
แต่ถ้าไม่มีอินเตอร์ล็อก กลอนกลไกก็ทำให้เกิด สภาวะปฏิเสธการให้บริการ ได้ง่ายเช่นกัน คนที่เคยล็อกรถหรืออาคารโดยทิ้งกุญแจไว้ข้างในย่อมจำได้ดี
การแฮ็กเชิงกลไก แบบนี้เห็นทีไรก็สนุกเสมอ ถึงอย่างนั้น คนโชคร้ายที่ยืนรอห้องน้ำแล้วพบว่ามันล็อกอยู่ทั้งที่ข้างในไม่มีใคร ก็อาจเป็นผมเองก็ได้
ของแบบนี้ทดสอบยากกว่า และไม่ใช่แค่ปัญหาของซอฟต์แวร์หรือ state machine ง่าย ๆ เท่านั้น ยังมี “การแฮ็ก” เชิงกลไกที่อันตรายจริง ๆ เช่น เครื่องฉายรังสีรักษาอย่าง Therac-25 ที่ให้ปริมาณรังสีผิด
ไม่เข้าใจว่าทำไมต้องใส่ ไมโครคอนโทรลเลอร์ เข้าไปในทุกอย่าง ห้องน้ำบนรถไฟโดยพื้นฐานก็เป็นกรณีใช้งานเดียวกับห้องน้ำบนเครื่องบิน และเครื่องบินทุกลำที่ฉันเคยนั่งก็มีสลักล็อกแบบเลื่อนรุ่นเก่า ซึ่งทำงานได้ไม่มีปัญหา
สงสัยว่าห้องน้ำรถไฟที่พูดถึงในต้นฉบับมีตัวจับเวลาเพื่อกันไม่ให้ใครยึดห้องน้ำไว้ตลอดการเดินทาง เลยทำให้ใช้กลอนแบบกลไกไม่ได้หรือเปล่า
ได้ยินมาว่า “superloos” ซึ่งเป็นห้องน้ำล้างตัวเองอัตโนมัติที่ติดตั้งบนทางเท้า มีการจำกัดเวลา และจะเล่นเสียงเตือนก่อนเปิดประตูไม่กี่นาที สิ่งที่น่ากังวลกว่าคือมีกรณีที่ระบบล้างอัตโนมัติเริ่มทำงานตอนยังมีคนอยู่ข้างใน ถ้าคนก่อนหน้าจับประตูค้างไว้เพื่อประหยัดเงินให้คนถัดไปเข้าไป ห้องน้ำก็จะตัดสินว่าข้างในว่าง และพยายามทำให้ผู้ใช้ที่ “ไม่ได้รายงานตัว” เปียกโชกไปด้วยน้ำ
นอกจากนี้ เมื่อไม่ได้ใช้งาน ประตูจะปิดเองเพื่อกันกลิ่น เหตุผลสำคัญที่สุดคือประตูไม่เป็นมิตรกับผู้ใช้รถเข็น ผู้ใช้รถเข็นจำนวนมากไม่มีแรงหรือความคล่องตัวพอจะขยับประตูได้ การออกแบบระบบประตูกลไกที่ตอบโจทย์ทั้งสามข้อนี้ค่อนข้างยาก แต่ UI ยังปรับให้ดีขึ้นได้แน่นอน
โดยส่วนตัวคงออกแบบให้ต้องกดปุ่ม ‘ปิด’ ค้างไว้ตลอดเวลาที่ประตูกำลังปิด ถ้าปล่อยปุ่มกลางคัน ประตูก็เปิดกลับ และหลังจากปิดสนิทแล้วเท่านั้นจึงจะคงสถานะปิดและ ‘ล็อก’ ไว้ ไม่จำเป็นต้องมีกลอนกลไกจริง ๆ แต่ควรมีไฟสัญลักษณ์แม่กุญแจสีแดงขนาดใหญ่ที่ติดขึ้นมา
ปุ่มที่เสมอกับพื้นผิวหรือคันโยกทรงเตี้ยแบบที่เห็นในภาพมีน้ำหนักและระยะเคลื่อนที่น้อย และไม่จำเป็นต้องให้ความได้เปรียบเชิงกล จึงอาจทนทานต่อการโจมตีทางกลบางอย่างได้มากกว่า ถ้าเป็นไปได้ฉันก็ชอบกลไกเรียบง่ายที่ไม่มีซอฟต์แวร์ แต่ก็ไม่ใช่คนที่ต้องรับมือกับปัญหาต้นทุนและความน่าเชื่อถือโดยตรง
https://www.gableseng.com/wp-content/uploads/2020/05/G7330-....
พูดไม่ออกเลย
ดูเหมือนเหตุผลเดิมของการนำปุ่มมาใช้คือเรื่องการเข้าถึง และเข้าใจว่าเครื่องบินรุ่นใหม่ ๆ ก็พยายามย้ายไปใช้ระบบคล้ายกันด้วยเหตุผลเดียวกัน
ห้องน้ำบนรถไฟในอังกฤษเป็นกรณีคลาสสิกใน ตำราตัวอย่างการออกแบบแย่ คนที่ล็อกประตูไม่สำเร็จจะถูกเผยให้ผู้โดยสารในตู้เห็น บางคนปิดประตูไม่ได้ และบางคนก็เปิดไม่ออก
นี่ยังพูดถึงกรณีที่ไปถึงห้องน้ำแล้วผู้ใช้ก่อนหน้าไม่ได้ทำให้มันเละเทะไว้ก่อนนะ
เมื่อเพิ่มการเข้าถึงห้องน้ำให้คนกลุ่มหนึ่ง ก็อาจลดการเข้าถึงของอีกกลุ่มหนึ่งได้ เป็นเรื่องที่สังคมต้องตัดสินใจว่าจะเลือกสมดุลระดับไหน รถไฟบางขบวนในอังกฤษมีสมดุลที่ดี โดยมีทั้งห้องน้ำขนาดใหญ่ที่รถเข็นเข้าถึงได้และห้องน้ำแบบดั้งเดิมขนาดเล็ก แต่ก็มักมีปัญหาในการแจ้งให้ผู้โดยสารรู้เรื่องนั้น