La implicación del reenvío X11 es que abre un canal desde el servidor hasta el cliente. En una sesión SSH simple, el cliente es más confiable que el servidor:cualquiera que tenga el control del cliente puede ejecutar comandos en el servidor (suponiendo que tenga acceso al shell), pero lo contrario no es cierto. Con el reenvío X11, es probable que el servidor obtenga acceso de shell al cliente.
En una sesión de texto, hay un canal limitado desde el servidor hasta el cliente:el servidor determina la salida que se muestra en el cliente y, en particular, puede intentar explotar las secuencias de escape en la terminal que se ejecuta en el cliente,
En una sesión X11, el servidor puede enviar comandos X11 al cliente. X11 no fue diseñado con la seguridad en mente, fue diseñado con la idea de que todos los programas que está mostrando son ejecutados por usted y, por lo tanto, son confiables de todos modos. De forma predeterminada, SSH somete los comandos del servidor a restricciones a través de la extensión X11 SECURITY. La extensión SECURITY deshabilita algunos ataques obvios como agarrar el teclado y la inyección de teclas, pero permite otros como el robo de foco.
Digamos que abro una conexión SSH a someserver
, con el reenvío X11 habilitado. El principal riesgo es que si someserver
es malicioso, entonces someserver
puedo hacer todo tipo de cosas desagradables en las ventanas/aplicaciones que tengo abiertas en mi propia computadora.
Por ejemplo, someserver
puedo abrir ventanas en mi computadora, puedo cerrar otras ventanas que tengo abiertas, puedo espiar el contenido de otras ventanas que tengo abiertas, puedo espiar las teclas que escribo en otras ventanas, puedo inyectar pulsaciones de teclas falsificadas y eventos del mouse en otras ventanas que tengo abiertas y, por lo general, se meten con todas las demás ventanas que tengo abiertas en mi máquina, incluso si algunas de esas otras ventanas son aplicaciones locales que se ejecutan localmente.