El investigador de seguridad Ionuț Cernica ha demostrado cómo atacantes sin privilegios de root o exploits de día cero pueden usar herramientas comunes de Linux para extraer datos confidenciales en entornos multiusuario. En su charla, «Fugas silenciosas: recolección de secretos de entornos Linux compartidos», explicó cómo credenciales de bases de datos, claves API y otros secretos pueden ser robados a simple vista mediante el uso de utilidades estándar como ps
, el sistema de archivos /proc
y el manejo de archivos temporales.
Vectores de ataque clave en el sistema de Linux
- Visibilidad del proceso: La transparencia de Linux permite que cualquier usuario inspeccione las líneas de comando de los procesos en ejecución a través de
/proc/[pid]/cmdline
y comandos comops auxww
. Aunque esto está diseñado para la depuración, también ofrece una ventaja de reconocimiento a los atacantes, permitiéndoles extraer información sensible como nombres de usuario y contraseñas de bases de datos. Cernica demostró que en plataformas de alojamiento compartido, las invocaciones de la CLI de WordPress y comandos de MySQL exponían credenciales en texto plano. - Evasión de aislamiento: Muchos proveedores de alojamiento utilizan entornos aislados como
chroot jails
o CageFS. Sin embargo, Cernica demostró que estos sistemas pueden ser eludidos cuando los binarios privilegiados se ejecutan fuera de estos entornos restringidos. En una demostración, logró escapar de CageFS y ejecutar comandos a nivel de host al explotar un binario del panel de alojamiento y un comando no documentado en un administrador de archivos. - Filtración a través de registros compartidos: Un canal de fuga sorprendente fue descubierto en los registros de errores compartidos del servidor web LiteSpeed. Al leer el archivo
stderr.log
global a través de/proc/self/fd/2
, Cernica capturó resultados de errores de scripts de otros usuarios, incluidos tokens de autenticación y credenciales. Aunque LiteSpeed solucionó el problema, la solución podría tardar en implementarse en todos los sistemas. - Directorios temporales (
/tmp
): Las aplicaciones a menudo escriben volcados de SQL, registros y archivos de configuración en el directorio/tmp
, exponiendo brevemente secretos. Cernica creó un script que monitoreaba y extraía estos archivos en milisegundos, revelando contraseñas de Mailman y MySQL. Incluso los sistemas con acceso restringido a/proc
siguen siendo vulnerables si los atacantes pueden escanear archivos legibles en/tmp
.
Mitigaciones y lecciones de seguridad
Los hallazgos de Cernica resaltan que para proteger los entornos Linux compartidos se necesitan medidas más allá de las predeterminadas. Él sugiere:
- Montar
/proc
con la opciónhidepid
o usar espacios de nombres de usuario para aislar la vista de los procesos. - Obtener credenciales de bóvedas seguras en lugar de usarlas en la línea de comandos.
- Implementar archivos de registro por usuario para evitar filtraciones.
- Aislar directorios temporales por usuario.
- Realizar pruebas de seguridad para identificar estas fugas «silenciosas».
La investigación de Cernica es un recordatorio crucial de que, a medida que las organizaciones dependen más de las infraestructuras de Linux compartidas, las funciones más confiables del sistema pueden ser utilizadas como herramientas de reconocimiento. La seguridad no solo depende de corregir vulnerabilidades, sino también de cuestionar las suposiciones sobre cómo se interactúa con el sistema.