Cómo proteger enlaces duros y simbólicos en CentOS/RHEL 7


En Linux, los enlaces físicos y blandos se refieren a archivos, que son muy importantes, si no se protegen muy bien, cualquier vulnerabilidad en ellos puede ser explotada por atacantes o usuarios malintencionados del sistema.

Una vulnerabilidad común es la carrera de enlaces simbólicos. Es una vulnerabilidad de seguridad en el software, que se produce cuando un programa crea archivos de forma insegura (especialmente archivos temporales) y un usuario del sistema malintencionado puede crear un enlace simbólico (suave) a dicho archivo.

Esto es prácticamente sucede; un programa comprueba si existe un archivo temporal o no, en caso de que no, crea el archivo. Pero en ese corto período de tiempo entre la verificación del archivo y su creación, un atacante posiblemente puede crear un enlace simbólico a un archivo y no se le permite acceder.

Entonces, cuando el programa se ejecuta con privilegios válidos, crea el archivo con el mismo nombre que el creado por el atacante, literalmente crea el archivo de destino (vinculado) al que el atacante tenía la intención de acceder. Esto, por lo tanto, podría darle al atacante una forma de robar información confidencial de la cuenta raíz o ejecutar un programa malicioso en el sistema.

Por lo tanto, en este artículo, le mostraremos cómo proteger enlaces duros y simbólicos de usuarios malintencionados o piratas informáticos en distribuciones de CentOS/RHEL 7.

En CentOS/RHEL 7 existe una característica de seguridad vital que solo permite que los programas creen o sigan enlaces solo si se cumplen algunas condiciones, como se describe a continuación.

Para que un usuario del sistema cree un enlace, se debe cumplir una de las siguientes condiciones.

  • el usuario solo puede vincular a archivos de su propiedad.
  • el usuario primero debe tener acceso de lectura y escritura a un archivo al que desea vincular.

Los procesos solo pueden seguir enlaces que están fuera del mundo de escritura (otros usuarios pueden escribir en) directorios que tienen bits adhesivos, o uno de los siguientes debe ser verdadero.

  • el proceso que sigue al enlace simbólico es el propietario del enlace simbólico.
  • el propietario del directorio también es el propietario del enlace simbólico.

Habilitar o deshabilitar la protección en enlaces duros y simbólicos

Es importante destacar que, de forma predeterminada, esta función está habilitada utilizando los parámetros del kernel en el archivo /usr/lib/sysctl.d/50-default.conf (el valor de 1 significa habilitar).

fs.protected_hardlinks = 1
fs.protected_symlinks = 1

Sin embargo, por una razón u otra, si desea desactivar esta función de seguridad; cree un archivo llamado /etc/sysctl.d/51-no-protect-links.conf con estas opciones del kernel a continuación (el valor de 0 significa deshabilitar).

Tome nota de que 51 en el nombre del archivo (51-no-protect-links.conf), debe leerse después del archivo predeterminado para anular la configuración predeterminada.

fs.protected_hardlinks = 0
fs.protected_symlinks = 0

Guarde y cierre el archivo. Luego use el comando a continuación para efectuar los cambios anteriores (este comando realmente carga la configuración de todos y cada uno de los archivos de configuración del sistema).

# sysctl --system
OR
# sysctl -p  #on older systems

También le gustaría leer estos artículos siguientes.

  1. Cómo proteger con contraseña un archivo Vim en Linux
  2. 5 comandos "chattr" para hacer que los archivos importantes sean INMUTABLES (inmutables) en Linux

¡Eso es todo! Puede publicar sus consultas o compartir cualquier opinión relacionada con este tema a través del formulario de comentarios a continuación.