Proteger las carpetas compartidas de trucos con enlaces y archivos
Bloquea los ataques clásicos que colocan un enlace o un archivo en /tmp para que un programa con privilegios escriba donde quiere el atacante.
Por qué importa
En una carpeta compartida como /tmp, cualquiera puede crear archivos. Un atacante planta ahí un enlace que apunta a algo importante, como un archivo de tu carpeta personal, y espera a que un script o un programa privilegiado escriba en el nombre de siempre. El programa sigue el enlace y sobrescribe el objetivo.
Cómo funciona
Activa cuatro protecciones del kernel: fs.protected_symlinks=1 y fs.protected_hardlinks=1 limitan seguir y crear enlaces en directorios compartidos con sticky bit, y fs.protected_fifos=2 y fs.protected_regular=2 impiden que programas abran, con creación, una tubería o un archivo de otro usuario en esas carpetas.
Quién debería usarlo
Apto para todos. Muchos sistemas ya activan la mayoría. Desactívalo solo si un script antiguo depende de reutilizar archivos creados por otro usuario en /tmp.
Qué puedes notar
Normalmente nada. Un script que escriba en un archivo de /tmp creado por otro usuario puede fallar con Permission denied.
Compruébalo en tu equipo
Lee el valor actual:
sysctl fs.protected_symlinks
sysctl fs.protected_hardlinks
sysctl fs.protected_fifos
sysctl fs.protected_regular Aplícalo a mano
Establécelo ahora (hasta el próximo reinicio):
sudo sysctl -w fs.protected_symlinks=1
sudo sysctl -w fs.protected_hardlinks=1
sudo sysctl -w fs.protected_fifos=2
sudo sysctl -w fs.protected_regular=2 Consérvalo tras los reinicios, en un archivo tuyo:
sudo tee /etc/sysctl.d/90-fs-protected-files.conf <<'EOF'
fs.protected_symlinks = 1
fs.protected_hardlinks = 1
fs.protected_fifos = 2
fs.protected_regular = 2
EOF
sudo sysctl --system Deshazlo
Elimina el archivo y reinicia, o vuelve a poner el valor anterior con sysctl -w.
Ajustes relacionados
Fuentes
- Linux Hardening Guide (madaidans)
- 2.2.3
- Linux kernel documentation
- fs.protected_symlinks