Linux Hardening - Asegurando el sistema de arranque o BootLoader.

Enviado por J3ss3SHL el Vie, 20/04/2018 - 18:47

Un atacante que tiene acceso físico a tu sistema puede bypassear fácilmente una gran cantidad de la seguridad de su sistema, especialmente controles de usuario y contraseña, además puede reiniciar este, cambiar la configuración de arranque del sistema, la manera cómo cargan los procesos y su orden de arranque. Usted necesita asegurar el arranque de su sistema y tener conocimiento total sobre que está pasando durante el proceso de arranque para poder endurecer/proteger su sistema contra este tipo de ataques.


Si un atacante puede reiniciar tu sistema, puede crear dos grandes problemas. El primero es que los sistemas GNU/Linux ofrecen una gran cantidad de acceso a todo aquel que puede cómo ellos inician el sistema. El segundo, es que pudiendo apagar tu sistema es un excelente ataque DoS/DDoS. Entonces, tener control sobre quien está habilitado para reiniciar tu sistema, cómo puede interactuar cada usuario con el bootloader o cargador de arranque y cual kernel pueden ellos iniciar es una decisión en la que debes ser altamente estricto.


Además, cuales servicios inician y su orden de arranque pueden exponer tu sistema a futuros riesgos, además, muchos de los servicios que se inician en un sistema que se instaló tal y cómo venía por defecto o en sistema no endurecido (unhardened) son innecesarios. Muchos de los servicios exponen tu sistema a riesgos, debido a sus particulares funcionalidades, a lo largo de este post dejaré unas buenas reglas para asegurar y organizar el proceso de arranque de tu sistema.


· Protegiendo tu GRUB con contraseña.


GNU GRUB (GNU GRand Unified Bootloader) es un gestor de arranque múltiple, desarrollado por el proyecto GNU que nos permite elegir qué Sistema Operativo arrancar de los instalados.

Se usa principalmente en sistemas operativos GNU/Linux. El sistema operativo Solaris ha usado GRUB como gestor de arranque en sistemas x86 desde la revisión 10 1/06. Para más información, ver aquí.


Al ser este el paquete que nos da la opción de arrancar nuestro sistema y además, nos permite elegir con cual kernel arrancarlo, es ALTAMENTE recomendado la asignación de una contraseña que debamos introducir al momento de intentar arrancar uno de los kernel instalados. En una entrada anterior que publicamos, explicamos lo fácil que es cambiar la contraseña del usuario ROOT y cualquier otro usuario en un sistema GNU/Linux que no tiene protección del GRUB. Ver publicación.


En este post explicamos la manera cómo podíamos obtener acceso a un sistema GNU/Linux cómo root, sin necesidad de usar contraseñas, cracks, ni nada por el estilo, solamente usando las funcionalidades propias del sistema. Para los hackers, programadores, especialistas en seguridad informática y usuarios preocupados por su privacidad y seguridad, esto puede significar un riesgo inminente, pero como dijimos, es un error de configuración de nuestro GRUB y podemos corregirlo para que nadie pueda cambiar nuestra contraseña root de esta manera (Este cambio también puede realizarse con discos externos en un entorno chroot en discos que no estén cifrados). Para configurar de manera correcta nuestro GRUB, debemos realizar lo siguiente:


1) Creamos una contraseña que pueda ser reconocida por el GRUB, usando el comando #grub-mkpasswd-pbkdf2, escribimos la contraseña que deseemos y la confirmamos, si todo sale bien saldrá algo similar a lo que se muestra en la imagen:

2) Abrimos el archivo /etc/grub.d/40_custom con nuestro editor de texto favorito y añadimos las siguientes líneas en el final:

set superusers='user'
password_pbkdf2 'user' 'password'

Importante: El '$user' puede ser cualquiera, a tu gusto pero debes colocar el mismo user en los dos campos requeridos. En el campo password colocamos la contraseña generada en el paso anterior, esta comprende todo lo que aparece desde grub.pbkdf2.sha512.10000.* hasta el final. Las comillas no son necesarias.

3) Una vez que tengamos todo esto hecho, generamos un archivo de configuración de nuestro GRUB con los nuevos parámetros, utilizamos el comando grub-mkconfig -o /boot/grub/grub.cfg y esperamos a que finalice el proceso.

Una vez realizados estos pasos, cada vez que queramos iniciar nuestro sistema o modificar algún parámetro en el GRUB al inicio, debemos proporcionar las credenciales asignadas anteriormente, solucionando de este modo el problema anteriormente mencionado. Si alguien desea ingresar sin las credenciales, sencillamente verá un error así:

Esperamos que este post haya sido de su utilidad, cualquier duda o sugerencia pueden dejarla en los comentarios.

Síguenos en Facebook, Twitter, unete a nuestra charla en Riot, únete a IRC o únete a Telegram.

Etiquetas

Acerca del autor

Pentester. Estudiante de ingeniería informática, Twitter @j3ss3SHL