Reservar el registro del kernel para los administradores
El registro del kernel puede revelar direcciones y detalles del hardware. Solo un administrador puede leerlo.
Por qué importa
El registro del kernel guarda mensajes de controladores, detalles de hardware y a veces direcciones de memoria. Cualquier usuario o programa local normalmente puede leerlo con dmesg, así que una aplicación comprometida puede enterarse de cosas que ayudan a atacar al kernel. Restringirlo deja esos detalles en manos de los administradores.
Cómo funciona
Fija kernel.dmesg_restrict en 1. Leer el búfer del kernel con dmesg pasa a exigir la capacidad CAP_SYSLOG, que root tiene. Los mismos mensajes aún llegan a quien puede leer el diario del sistema, por ejemplo los miembros del grupo adm.
Quién debería usarlo
Bueno para equipos compartidos y para quien quiera limitar lo que un programa secuestrado puede averiguar. Déjalo apagado si usuarios normales de una máquina de desarrollo dependen de ejecutar dmesg sin sudo.
Qué puedes notar
Ejecutar dmesg como usuario normal falla con Operation not permitted. Usa sudo dmesg, o journalctl -k si tu cuenta puede leer el diario.
Compruébalo en tu equipo
Lee el valor actual:
sysctl kernel.dmesg_restrict Aplícalo a mano
Establécelo ahora (hasta el próximo reinicio):
sudo sysctl -w kernel.dmesg_restrict=1 Consérvalo tras los reinicios, en un archivo tuyo:
sudo tee /etc/sysctl.d/90-kernel-dmesg-restrict.conf <<'EOF'
kernel.dmesg_restrict = 1
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.1
- Linux kernel documentation
- kernel.dmesg_restrict