GNU Screen es un programa informático de Multiplexación de terminales.[1]​ Fue desarrollado por el proyecto GNU. Permite a los usuarios acceder a múltiples sesiones separadas dentro de una sola ventana de terminal o en una sesión de terminal remota. Es útil para tratar con múltiples programas en la línea de comandos y para separar programas de la terminal que los lanzó.

GNU Screen
Parte de Proyecto GNU
Screen.

Captura de una sesión de GNU Screen.
Información general
Tipo de programa CLI
Lanzamiento inicial 1987
Licencia GNU GPL
Versiones
Última versión estable 5.0.0 (info) ( 28 de agosto de 2024 (3 meses y 1 día))
Enlaces

Puede imaginar a GNU Screen como una versión en texto de gestores de ventanas gráficos o como una forma de abrir terminales virtuales dentro de cualquier sesión accedida. Screen consiste en una envoltura que permite usar múltiples programas de texto al mismo tiempo y provee características que permiten al usuario usar programas productivamente desde una única interfaz.

Características

editar

Persistencia

editar

Similar a VNC, GNU Screen permite al usuario comenzar aplicaciones desde un computador, reconectar desde un computador distinto y continuar usando la misma aplicación sin tener que reiniciarla. De este modo se consigue que la migración entre localizaciones como el trabajo y el hogar sea simple. Screen provee funcionalidad de terminal-agnóstica de modo que los usuarios pueden conectar y reconectar usando distintos tipos de terminal, permitiendo a las aplicaciones seguir ejecutándose sin tener en cuenta sus cambios.

Ventanas múltiples

editar

Se pueden crear múltiples sesiones en la terminal, cada cual corriendo una aplicación. Las ventanas son enumeradas, y el usuario puede intercambiarlas por medio del teclado. Algunos emuladores de GUI proveen de pestañas o alguna otra funcionalidad similar para esto. Cada ventana tiene su propio scroll-back buffer, de manera que la salida es capturada incluso cuando la ventana no está siendo mostrada. Este historial puede ser guardado aun cuando se migra a otro computador.

Vulnerabilidades

editar

El Proyecto GNU recibió de manera anónima un "bug" en el que se advierte que se puede utilizar el GNU Screen como vía para escalar privilegios y obtener control de un ordenador con credenciales de root.[2]​ Hasta la fecha la vulnerabilidad no ha sido parchada por lo que crackers utilizan guiones en lenguaje Python secundados con bibliotecas en lenguaje C para ilustrar el acceso y demostrar la vulnerabilidad.[3]​ La versión afectada es GNU Screen 4.5.0 y ha sido clasificada como de severidad normal y prioridad normal en su resolución.

Historia

editar

Screen fue diseñado originalmente por Oliver Laumann y Carsten Bormann en la Universidad Técnica de Berlín y publicado en 1987.[4][5]

Los criterios de diseño incluían la emulación VT100 (incluyendo ANSI X3.64 (ISO 6429) e ISO 2022) y un rendimiento razonable para un uso diario intensivo cuando los terminales basados en caracteres aún eran comunes. Más tarde se añadió la novedosa función de desconexión/desconexión.

Alrededor de 1990, Laumann traspasó el mantenimiento del código a Jürgen Weigert y Michael Schroeder en la Universidad de Erlangen-Núremberg, quienes más tarde trasladaron el proyecto al Proyecto GNU y añadieron funciones como el desplazamiento hacia atrás, la pantalla dividida, copiar y pegar y la pantalla compartida.[6]

En 2014, el desarrollo se había ralentizado. Amadeusz Sławiński, que quería cambiar esta situación, se ofreció para ayudar. En respuesta, Laumann le concedió el mantenimiento. Sławiński procedió a publicar la primera nueva versión de Screen en media década. Como había algunas versiones no oficiales de "Screen 4.1" circulando por Internet, llamó a esta nueva versión "Screen 4.2.0".

En mayo de 2015, en la Conferencia openSUSE, Jürgen Weigert invitó a Alexander Naumov a ayudar a desarrollar y mantener GNU screen. Dos meses más tarde, con la ayuda de Alex, se publicó GNU screen 4.3.0.

Referencias

editar
  1. «Introduction to GNU Screen». Free Software Foundation. 2010. Consultado el 7 de octubre de 2010. 
  2. «[screen-devel] [bug #50142] root exploit 4.5.0». Proyecto GNU. Archivado desde el original el 25 de enero de 2017. Consultado el 9 de abril de 2018. «The check opens the logfile with full root privileges. This allows us to truncate any file or create a root-owned file with any contents in any directory and can be easily exploited to full root access in several ways.» 
  3. Encinar, Josue (9 de abril de 2018). «Elevandonos a Root en Linux» (html). Boomernix. Archivado desde el original el 9 de abril de 2018. Consultado el 9 de abril de 2018. «Por hacer un resumen, el error recae en la apertura del registro con privilegios root, dando la posibilidad de crear un archivo cualquiera con el propietario root.» 
  4. (20 Mar 1987). "BSD screen manager -- Part 1 of 2 - (nf)". net.sources. (Google Groups).
  5. (20 Mar 1987). "BSD screen manager -- Part 2 of 2 - (nf)". net.sources. (Google Groups).
  6. screen ftp

Enlaces externos

editar