¿Es peligroso el X11?

¿Es peligroso el X11?

Soy nuevo en X11 y quiero saber si realmente es tan peligroso como dicen en Internet.

Explicaré cómo entiendo esto. Cualquier aplicación iniciada desde debajo del usuario actual tiene acceso al teclado, al mouse y a la pantalla (por ejemplo, tomar una captura de pantalla), y esto no es bueno. Pero, si instalamos programas desde el repositorio oficial(por ejemplo, para Debian), que es poco probable que contengan keyloggers, etc., entonces el peligro parece exagerado. ¿Me equivoco?

Sí, puedes abrir aplicaciones en servidores separados.(por ejemplo, Xephyr), pero esto es un inconveniente porque no hay un portapapeles compartido. Crear un portapapeles basado en archivos tmp también es un inconveniente.

Respuesta1

Cualquier aplicación iniciada desde debajo del usuario actual tiene acceso al teclado, al mouse y a la pantalla (por ejemplo, tomar una captura de pantalla), y esto no es bueno.

Todos los clientes X11 en un escritorio pueden acceder entre sí en profundidad, lo que incluye obtener el contenido de cualquier ventana, cambiarlo, cerrar cualquier ventana, falsificar eventos de teclas y mouse para cualquier otro cliente, capturar cualquier dispositivo de entrada, etc.

El diseño del protocolo X11 se basa en la idea de que todos los clientes son CONFIABLES y colaborarán, no se pisarán unos a otros (esto último completamente roto por aplicaciones modernas como Firefox, Chrome o Java).

PERO, si instalamos programas del repositorio oficial (por ejemplo, para Debian), que es poco probable que contengan keyloggers, etc., entonces el problema del peligro es claramente exagerado. ¿Me equivoco?

Los programas tienen errores que pueden explotarse. Es posible que el servidor X11 y las bibliotecas no estén actualizados. Por ejemplo, cualquier cliente X11 puedechocarel servidor X en la versión actual de Debian (Buster 10) a través de solicitudes Xkb inofensivas. (Eso fuefijadoen las fuentes originales, pero aún no apareció en Debian). Si puede bloquearlo, entonces existe cierta probabilidad de que también pueda ejecutar código con los privilegios del servidor X11 (acceso al hardware, etc.).

Para los problemas con la autenticación laxa en Xwayland (y el Xorg Xserver normal en Debian), consulte las notas al final deesta respuesta.

Sí, puede abrir aplicaciones en servidores separados (por ejemplo, Xephyr), pero esto es un inconveniente porque no hay un portapapeles compartido. Crear un portapapeles basado en archivos tmp también es un inconveniente.

Tenga en cuenta que, a menos que realice pasos adicionales, Xephyrpermitecualquier usuario localpara conectarse a él de forma predeterminada. Verestepara una discusión al respecto.

Crear un portapapeles compartido entre múltiples servidores X11 es un problema interesante, que merece su propia sesión de preguntas y respuestas, en lugar de mezclarlo con esto.

Respuesta2

Las aplicaciones que se ejecutan en la misma máquina con la misma cuenta de usuario pueden usar la ptracellamada al sistema para modificar la memoria de proceso de cada una, por lo que X11 no es la superficie de ataque más conveniente aquí.

Para las aplicaciones en las que no confía plenamente, primero debe ejecutarlas con una ID de usuario diferente (como lo hace Android con aplicaciones de diferentes proveedores) y puede usar la extensión XSECURITY para generar un token de acceso "no confiable" para el servidor X. , con el cual se restringe el acceso de la aplicación a X11:

  • sin acceso a eventos de entrada que no estén dirigidos a la propia ventana
  • sin acceso a la extensión XTEST
  • sin ventanas transparentes

Los eventos de entrada en X11 tienen un Syntheticcampo que indica si el evento de entrada se generó desde un dispositivo de entrada o se envió desde otro programa, y ​​el programa receptor decide qué hacer con los eventos sintéticos, por ejemplo, xtermsimplemente los ignora. La extensión XTEST permite generar no Syntheticeventos desde el software con fines de prueba, razón por la cual los clientes que no son de confianza no pueden usar esa extensión.

información relacionada