Deixar o log do kernel só para administradores
O log do kernel pode revelar endereços e detalhes do hardware. Só um administrador pode lê-lo.
Por que importa
O registro do kernel guarda mensagens de drivers, detalhes de hardware e às vezes endereços de memória. Qualquer usuário ou programa local normalmente pode lê-lo com o dmesg, então um aplicativo comprometido pode descobrir coisas que ajudam a atacar o kernel. Restringir mantém esses detalhes com os administradores.
Como funciona
Define kernel.dmesg_restrict como 1. Ler o buffer circular do kernel com o dmesg passa a exigir a capacidade CAP_SYSLOG, que o root tem. As mesmas mensagens ainda chegam a quem pode ler o journal do sistema, por exemplo membros do grupo adm.
Quem deve usar
Bom para computadores compartilhados e para quem quer limitar o que um programa sequestrado pode descobrir. Deixe desligado se usuários comuns numa máquina de desenvolvimento dependem de rodar dmesg sem sudo.
O que você pode notar
Rodar dmesg como usuário comum falha com Operation not permitted. Use sudo dmesg, ou journalctl -k se sua conta pode ler o journal.
Verifique no seu computador
Leia o valor atual:
sysctl kernel.dmesg_restrict Aplique à mão
Defina agora (até a próxima reinicialização):
sudo sysctl -w kernel.dmesg_restrict=1 Mantenha após reinicializações, em um arquivo seu:
sudo tee /etc/sysctl.d/90-kernel-dmesg-restrict.conf <<'EOF'
kernel.dmesg_restrict = 1
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.1
- Linux kernel documentation
- kernel.dmesg_restrict