Hệ thống cửa sổ X11 từ lâu đã bị chỉ trích vì những điểm yếu về bảo mật, đặc biệt là việc nó làm cho các cuộc tấn công keylogging trở nên dễ dàng như thế nào. Trong khi hầu hết các cuộc thảo luận tập trung vào việc di chuyển sang Wayland như một giải pháp, một cuộc khám phá gần đây về tiện ích mở rộng SECURITY tích hợp sẵn của X11 tiết lộ một câu chuyện thú vị về những gì có thể đã xảy ra từ những năm 1990.
Tiện ích mở rộng SECURITY được thiết kế để giải quyết vấn đề bảo mật cơ bản của X11 bằng cách tạo ra hai lớp ứng dụng: đáng tin cậy và không đáng tin cậy. Khi một ứng dụng chạy ở chế độ không đáng tin cậy, nó không thể do thám các ứng dụng đáng tin cậy hoặc truy cập dữ liệu của chúng. Điều này nghe có vẻ hứa hẹn về mặt lý thuyết, nhưng thực tế lại phức tạp hơn nhiều.
Hệ thống phân loại hạn chế tạo ra các vấn đề mới
Hệ thống nhị phân đáng tin cậy/không đáng tin cậy ngay lập tức cho thấy những hạn chế của nó trong các tình huống máy tính hiện đại. Các cuộc thảo luận cộng đồng nhấn mạnh rằng bạn không thể chạy nhiều ứng dụng sandbox cùng lúc một cách có ý nghĩa, vì tất cả chúng sẽ rơi vào danh mục không đáng tin cậy và vẫn có thể do thám lẫn nhau. Điều này làm cho tiện ích mở rộng không đủ khả năng đáp ứng nhu cầu bảo mật ngày nay, nơi việc cô lập từng client một cách thích hợp là điều cần thiết.
Fork X11Libre đã cố gắng giải quyết hạn chế này với tiện ích mở rộng Xnamespace của họ, cho phép cô lập các client vào các container nơi các tương tác bị hạn chế trong cùng một container. Tuy nhiên, điều này vẫn còn ở giai đoạn thử nghiệm và chưa được áp dụng rộng rãi.
Các giải pháp thay thế hiện đại:
- Wayland: Cung cấp khả năng cách ly bảo mật tốt hơn ngay từ thiết kế
- X11Libre Xnamespace: Cách ly dựa trên container (thử nghiệm)
- Firejail: Sử dụng máy chủ Xpra / Xephyr cho sandbox X11
- SSH X11 forwarding: Sử dụng extension SECURITY theo mặc định
Triển khai thực tế phá vỡ các tính năng thiết yếu
Việc thử nghiệm tiện ích mở rộng tiết lộ những vấn đề về khả năng sử dụng đáng kể. Nhiều ứng dụng đơn giản là bị crash khi chạy ở chế độ không đáng tin cậy, bao gồm các trình giả lập terminal phổ biến như xterm. Ngay cả những ứng dụng hoạt động được, chẳng hạn như Firefox , cũng phải đối mặt với những hạn chế nghiêm trọng khiến việc sử dụng hàng ngày trở nên không thực tế.
Vấn đề đau đầu nhất là chức năng clipboard, về cơ bản trở nên bị hỏng giữa các ứng dụng đáng tin cậy và không đáng tin cậy. Người dùng báo cáo phải sử dụng các giải pháp thay thế như các form dựa trên web để chuyển dữ liệu giữa các ứng dụng. Các ứng dụng sử dụng nhiều đồ họa cũng thất bại do không có sẵn tiện ích mở rộng GLX cho việc render 3D.
Vấn đề đau đầu nhất là clipboard, tôi nghĩ vậy... Tôi không thể sao chép tất cả những liên kết đó từ trình duyệt vào Vim của mình -- tôi phải sử dụng http-collect, một ứng dụng web nhỏ với một form HTML nơi tôi có thể POST dữ liệu, và sau đó đọc các file kết quả trong Vim .
Giới hạn của X11 SECURITY Extension:
- Chỉ có hai lớp bảo mật: đáng tin cậy và không đáng tin cậy
- Các client không đáng tin cậy không thể truy cập hầu hết các extension X11 ( XRandR , XKB , GLX )
- Chức năng clipboard bị hỏng giữa các lớp bảo mật
- Nhiều ứng dụng bị crash khi chạy ở chế độ không đáng tin cậy ( xterm , xiate )
- Các ứng dụng hoạt động được: qterminal , Firefox , dosbox
Kịch bản bảo mật so với bảo vệ thực sự
Cuộc tranh luận cộng đồng tiết lộ những câu hỏi sâu sắc hơn về việc liệu lỗ hổng keylogging của X11 có đại diện cho một mối đe dọa thực sự hay chỉ là kịch bản bảo mật. Những người chỉ trích lập luận rằng nếu malware có thể truy cập X11 để ghi lại các phím bấm, nó có thể đã có quyền truy cập rộng hơn vào hệ thống thông qua tài khoản người dùng, khiến keylogging chỉ là một trong nhiều cuộc tấn công có thể xảy ra.
Tuy nhiên, những người ủng hộ chỉ ra các trường hợp sử dụng hợp lệ, đặc biệt là đối với các client X11 kết nối mạng chạy trên các máy riêng biệt, hoặc để bảo vệ các lời nhắc đặc quyền nâng cao. Tính năng X11 forwarding của SSH thực sự sử dụng tiện ích mở rộng này theo mặc định, cho thấy một số giá trị thực tế trong các tình huống cụ thể.
Con đường không được chọn
Tiện ích mở rộng SECURITY đại diện cho một cái nhìn hấp dẫn vào một dòng thời gian thay thế nơi X11 có thể đã phát triển các tính năng bảo mật thích hợp từ nhiều thập kỷ trước. Nếu được áp dụng rộng rãi khi lần đầu được giới thiệu, nó có thể đã phục vụ như nền tảng cho việc cô lập client toàn diện. Tuy nhiên, thời điểm không phù hợp - việc sandbox ứng dụng desktop không phải là ưu tiên trong những năm 1990 khi tiện ích mở rộng được tạo ra.
Ngày nay, với Wayland đang tăng đà và cung cấp khả năng cô lập bảo mật tốt hơn theo thiết kế, tiện ích mở rộng SECURITY của X11 vẫn là một sự tò mò lịch sử hơn là một giải pháp thực tế. Con thuyền có thể đã rời bến để trang bị lại X11 với các tính năng bảo mật hiện đại, nhưng tiện ích mở rộng này phục vụ như một lời nhắc nhở quan trọng về những con đường không được chọn trong lịch sử máy tính.
Tham khảo: The X11 SECURITY extension from the 1990ies