Protección del GRUB (Grand Unified Bootloader)
En este articulo vamos a ver como proteger el sistema de arranque GRUB ( Grand Unified Bootloader).
Se trata de evitar que cualquier atacante con acceso al GRUB durante el arranque, pueda elevar privilegios y acceder como root/superusuario al sistema.
Vamos a ver de forma clara y fácil como podemos proteger el GRUB de nuestro ordenador con una contraseña cifrada.
¿Qué es el GRUB?
El GRUB es un gestor de arranque múltiple desarrollado inicialmente para el sistema GNU. El gestor de arranque tiene varias funciones, pero la principal es permitir elegir el sistema operativo que queremos utilizar cuando arrancamos el ordenador.
¿Cuáles son los motivo para proteger el GRUB?
- Un atacante puede acceder a nuestro equipo como usuario root o superusuario y obtener el control total del equipo y la información solo editando algunos parámetros de GRUB.
- Poder abrir una terminal de comandos sin necesitar usuario y contraseña y obtener información del equipo, modificar archivos de configuración, etc.
- Tener protegido el GRUB evita que ciertos usuarios puedan utilizar sistemas operativos inseguros.
Verificación de la versión del GRUB en nuestro sistema.
Verificamos si tenemos la versión 1 o 2 de GRUB. Lo normal es que tengamos la versión 2. Para comprobar la versión de GRUB del sistema lanzamos el siguiente comando.
~$ sudo grub-install --version
Obtención del acceso al sistema con usuario root a través de GRUB.
Iniciamos el sistema, cuando aparezca la ventana del GRUB pulsamos la tecla “E” para entrar en el editor del GRUB.
Una vez dentro del archivo de configuración del GRUB buscamos la siguiente línea.
ro quiet splash
Modificamos ese parámetro por este parámetro:
rw single init=/bin/sh
Cuando ya tengamos editado el fichero del GRUB pulsamos la tecla “F10” para guardar los cambios.
Cuando se inicie el sistema obtendremos una terminal como usuario root.
# whoami
Si queremos obtener acceso permanente a root ejecutamos el siguiente comando.
# passwd root
Con este comando cambiamos la contraseña del usuario root y podemos asignarle una nueva contraseña que nosotros sepamos.
Necesitamos crear una contraseña robusta para evitar el acceso al editor del GRUB.
Con la herramienta grub-mkpasswd-pbkdf2 conseguimos crear una contraseña que va a esta cifrada en SHA512.
~$ sudo grub-mkpasswd-pbkdf2
Introducimos 2 veces la contraseña y nos generará una contraseña basada en el algoritmo en SHA512.
Editamos el fichero de configuración del GRUB ubicado en este directorio /etc/grub.d/00_header.
~$ sudo nano /etc/grub.d/00_header
Añadimos las siguientes líneas al final del fichero.
cat << EOF
set superusers="root"
password_pbkdf2 root [ contraseña generada con SHA512 ]
Guardamos la modificación del archivo y actualizamos el GRUB.
~$ sudo update-grub2
Comprobación de la protección del GRUB.
Ahora intentaremos llevar a cabo el intento de ataque realizado anteriormente.
Reiniciamos el sistema, nos aparecerá que para acceder al sistema necesitamos logarnos sino no podremos acceder ni al sistema ni al editor del GRUB.