Proteger pastas compartilhadas de truques com links e arquivos
Bloqueia os ataques clássicos que plantam um link ou um arquivo em /tmp para que um programa privilegiado escreva onde o atacante quer.
Por que importa
Numa pasta compartilhada como /tmp, qualquer um pode criar arquivos. Um atacante planta ali um link que aponta para algo importante, como um arquivo da sua pasta pessoal, e espera um script ou programa privilegiado escrever no nome de sempre. O programa segue o link e sobrescreve o alvo.
Como funciona
Liga quatro proteções do kernel: fs.protected_symlinks=1 e fs.protected_hardlinks=1 limitam seguir e criar links em diretórios world-writable com sticky bit, e fs.protected_fifos=2 e fs.protected_regular=2 impedem programas de abrir, com criação, um pipe ou arquivo de outro usuário nessas pastas.
Quem deve usar
Serve para todos. Muitos sistemas já ativam a maior parte. Desligue só se um script antigo depende de reutilizar arquivos criados por outro usuário em /tmp.
O que você pode notar
Normalmente nada. Um script que escreve num arquivo em /tmp criado por outro usuário pode falhar com Permission denied.
Verifique no seu computador
Leia o valor atual:
sysctl fs.protected_symlinks
sysctl fs.protected_hardlinks
sysctl fs.protected_fifos
sysctl fs.protected_regular Aplique à mão
Defina agora (até a próxima reinicialização):
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 Mantenha após reinicializações, em um arquivo seu:
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 Desfaça
Remova o arquivo e reinicie, ou volte ao valor antigo com sysctl -w.
Configurações relacionadas
Fontes
- Linux Hardening Guide (madaidans)
- 2.2.3
- Linux kernel documentation
- fs.protected_symlinks