ส่วนขยายความปลอดภัยที่ถูกลืมของ X11 แสดงให้เห็นศักยภาพแต่ทำลายสิ่งต่างๆ มากเกินไปจนไม่สามารถใช้งานได้จริง

ทีมชุมชน BigGo
ส่วนขยายความปลอดภัยที่ถูกลืมของ X11 แสดงให้เห็นศักยภาพแต่ทำลายสิ่งต่างๆ มากเกินไปจนไม่สามารถใช้งานได้จริง

ระบบหน้าต่าง X11 ถูกวิพากษ์วิจารณ์มานานเรื่องจุดอ่อนด้านความปลอดภัย โดยเฉพาะการที่ทำให้การโจมตีแบบ keylogging เป็นเรื่องง่าย แม้ว่าการอภิปรายส่วนใหญ่จะมุ่งเน้นไปที่การย้ายไปใช้ Wayland เป็นทางออก แต่การสำรวจส่วนขยาย SECURITY ที่มีอยู่ใน X11 เมื่อเร็วๆ นี้ เผยให้เห็นเรื่องราวที่น่าสนใจของสิ่งที่อาจเป็นไปได้จากช่วงทศวรรษ 1990

ส่วนขยาย SECURITY ถูกออกแบบมาเพื่อแก้ไขปัญหาความปลอดภัยพื้นฐานของ X11 โดยการสร้างแอปพลิเคชันสองประเภท: แบบเชื่อถือได้และแบบไม่เชื่อถือได้ เมื่อแอปพลิเคชันทำงานในโหมดไม่เชื่อถือได้ มันจะไม่สามารถสอดแนมแอปพลิเคชันที่เชื่อถือได้หรือเข้าถึงข้อมูลของพวกมันได้ ฟังดูมีแนวโน้มดีในทางทฤษฎี แต่ความเป็นจริงกลับซับซ้อนกว่านั้นมาก

ระบบการจำแนกที่จำกัดสร้างปัญหาใหม่

ระบบแบบไบนารี่ เชื่อถือได้/ไม่เชื่อถือได้ แสดงให้เห็นข้อจำกัดทันทีในสถานการณ์การใช้งานคอมพิวเตอร์สมัยใหม่ การอภิปรายในชุมชนเน้นย้ำว่าคุณไม่สามารถรันแอปพลิเคชันแบบ sandbox หลายตัวพร้อมกันได้อย่างมีความหมาย เนื่องจากพวกมันจะตกอยู่ในหมวดหมู่ไม่เชื่อถือได้ทั้งหมดและยังคงสามารถสอดแนมกันและกันได้ ทำให้ส่วนขยายนี้ไม่เพียงพอสำหรับความต้องการด้านความปลอดภัยในปัจจุบันที่การแยกแต่ละไคลเอนต์อย่างเหมาะสมเป็นสิ่งจำเป็น

fork X11Libre ได้พยายามแก้ไขข้อจำกัดนี้ด้วยส่วนขยาย Xnamespace ของพวกเขา ซึ่งอนุญาตให้แยกไคลเอนต์เป็นคอนเทนเนอร์ที่การโต้ตอบถูกจำกัดภายในคอนเทนเนอร์เดียวกัน อย่างไรก็ตาม สิ่งนี้ยังคงเป็นการทดลองและยังไม่ได้รับการยอมรับอย่างแพร่หลาย

ทางเลือกสมัยใหม่:

  • Wayland: ให้การแยกความปลอดภัยที่ดีกว่าตั้งแต่การออกแบบ
  • X11Libre Xnamespace: การแยกแบบ Container-based (ระยะทดลอง)
  • Firejail: ใช้เซิร์ฟเวอร์ Xpra/Xephyr สำหรับการ sandboxing ของ X11
  • SSH X11 forwarding: ใช้ส่วนขยาย SECURITY เป็นค่าเริ่มต้น

การใช้งานจริงทำลายฟีเจอร์ที่จำเป็น

การทดสอบส่วนขยายเผยให้เห็นปัญหาการใช้งานที่สำคัญ แอปพลิเคชันจำนวนมากเพียงแค่ล่มเมื่อรันในโหมดไม่เชื่อถือได้ รวมถึงโปรแกรม terminal emulator ยอดนิยมอย่าง xterm แม้แต่แอปพลิเคชันที่ทำงานได้ เช่น Firefox ก็ต้องเผชิญกับข้อจำกัดที่รุนแรงซึ่งทำให้การใช้งานประจำวันเป็นไปไม่ได้

ปัญหาที่เจ็บปวดที่สุดคือฟังก์ชัน clipboard ซึ่งกลายเป็นสิ่งที่เสียหายโดยพื้นฐานระหว่างแอปพลิเคชันที่เชื่อถือได้และไม่เชื่อถือได้ ผู้ใช้รายงานว่าต้องใช้วิธีแก้ปัญหาเฉพาะหน้าเช่นฟอร์มบนเว็บเพื่อถ่ายโอนข้อมูลระหว่างแอปพลิเคชัน แอปพลิเคชันที่ใช้กราฟิกเข้มข้นก็ล้มเหลวเช่นกันเนื่องจากส่วนขยาย GLX สำหรับการเรนเดอร์ 3D ไม่สามารถใช้งานได้

ปัญหาที่เจ็บปวดที่สุดคือ clipboard ฉันคิดว่า... ฉันไม่สามารถคัดลอกลิงก์ทั้งหมดเหล่านั้นจากเบราว์เซอร์ไปยัง Vim ของฉันได้ -- ฉันต้องใช้ http-collect ซึ่งเป็นเว็บแอปเล็กๆ ที่มีฟอร์ม HTML ที่ฉันสามารถ POST ข้อมูลได้ แล้วจึงอ่านไฟล์ที่ได้ใน Vim

ข้อจำกัดของ X11 SECURITY Extension:

  • มีเพียงสองคลาสความปลอดภัย: trusted และ untrusted
  • ไคลเอนต์ untrusted ไม่สามารถเข้าถึง X11 extensions ส่วนใหญ่ ( XRandR , XKB , GLX )
  • ฟังก์ชัน clipboard เสียหายระหว่างคลาสความปลอดภัย
  • แอปพลิเคชันหลายตัวขัดข้องเมื่อรันในโหมด untrusted ( xterm , xiate )
  • แอปพลิเคชันที่ใช้งานได้: qterminal , Firefox , dosbox

ความปลอดภัยแบบแสดงละคร กับ การป้องกันจริง

การอภิปรายในชุมชนเผยให้เห็นคำถามที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับว่าช่องโหว่ keylogging ของ X11 เป็นภัยคุกคามจริงหรือเป็นเพียงความปลอดภัยแบบแสดงละคร นักวิจารณ์โต้แย้งว่าหากมัลแวร์สามารถเข้าถึง X11 เพื่อบันทึกการกดแป้นพิมพ์ได้ มันน่าจะมีการเข้าถึงระบบในวงกว้างผ่านบัญชีผู้ใช้อยู่แล้ว ทำให้การ keylogging เป็นเพียงหนึ่งในการโจมตีที่เป็นไปได้หลายรูปแบบ

อย่างไรก็ตาม ผู้สนับสนุนชี้ให้เห็นกรณีการใช้งานที่ถูกต้อง โดยเฉพาะสำหรับไคลเอนต์ X11 ที่เชื่อมต่อเครือข่ายที่ทำงานบนเครื่องแยกต่างหาก หรือสำหรับการป้องกันพรอมต์สิทธิ์ที่ยกระดับ การส่งต่อ X11 ของ SSH ใช้ส่วนขยายนี้เป็นค่าเริ่มต้น ซึ่งแสดงให้เห็นคุณค่าในทางปฏิบัติในสถานการณ์เฉพาะ

เส้นทางที่ไม่ได้เลือก

ส่วนขยาย SECURITY เป็นตัวอย่างที่น่าหลงใหลของไทม์ไลน์อีกแบบหนึ่งที่ X11 อาจพัฒนาฟีเจอร์ความปลอดภัยที่เหมาะสมเมื่อหลายสิบปีก่อน หากได้รับการยอมรับอย่างแพร่หลายเมื่อแรกเริ่ม มันอาจเป็นรากฐานสำหรับการแยกไคลเอนต์อย่างครอบคลุม อย่างไรก็ตาม จังหวะเวลาไม่เหมาะสม -- การ sandbox แอปพลิเคชันบนเดสก์ท็อปไม่ใช่ลำดับความสำคัญในทศวรรษ 1990 เมื่อส่วนขยายนี้ถูกสร้างขึ้น

ในปัจจุบัน เมื่อ Wayland กำลังได้รับแรงผลักดันและให้การแยกความปลอดภัยที่ดีกว่าโดยการออกแบบ ส่วนขยาย SECURITY ของ X11 ยังคงเป็นเรื่องของความอยากรู้ทางประวัติศาสตร์มากกว่าทางออกที่ใช้งานได้จริง เรือลำนั้นน่าจะออกเดินทางไปแล้วสำหรับการติดตั้งฟีเจอร์ความปลอดภัยสมัยใหม่ให้กับ X11 แต่ส่วนขยายนี้เป็นเครื่องเตือนใจที่สำคัญของเส้นทางที่ไม่ได้เลือกในประวัติศาสตร์คอมพิวเตอร์

อ้างอิง: The X11 SECURITY extension from the 1990ies