Seguridad en el Arranque - Linux

Como parte de nuestra estrategia de seguridad, debemos considerar el establecimiento de medidas que nos protejan contra intentos de ataque a nivel físico.

Accesos sin Contraseña

La mayoría de los sistemas operativos, por defecto, es vulnerable a ataques en los cuales el atacante tiene la capacidad de acceder a los recursos físicos del mismo (teclado, mouse, controles de encendido, etc).

Es muy sencillo tener acceso a un sistema operativo si se puede iniciar la computadora desde otro medio de arranque y/o si se pueden modificar sus opciones del gestor de arranque.

Por ejemplo, es posible pasar un parámetro al kernel Linux que le indique cuál es el programa que queremos ejecutar apenas éste se termine de cargar (por defecto, este programa es ‘/sbin/init’).

Esto puede conseguirse seleccionando la opción de arranque del menú que queremos editar y presionando la tecla “e”. Eso va a abrir el editor, que nos va a permitir modificar cualquier opción. Una vez realizadas las modificaciones, podemos arrancar con la combinación de teclas “CTRL+x”.

La siguiente captura de pantalla muestra la edición de estos parámetros en el gestor de arranque GRUB2 (actualmente utilizado por la mayoría de las distribuciones).


Como podemos observar en la línea que empieza con “linux”, al final de la misma se está definiendo el parámetro “init” como “/bin/bash”, lo cual va a generar que, al cargar el sistema, obtengamos algo como lo que muestra la siguiente imagen:


En ese caso, ya tenemos una shell de root, por lo tanto, tenemos control total sobre el sistema operativo.

Para evitar que esto sea realizado por alguna persona malintencionada, debemos proteger tanto nuestra BIOS como nuestro gestor de arranque (en este caso, GRUB2).
En el caso de la BIOS, va a depender de la versión y fabricante de nuestra placa madre (motherboard), pero siempre es algo sencillo de realizar

Protección del Gestor de Arranque GRUB2

Para evitar que las opciones de arranque sean modificadas, podemos proteger el acceso al editor con una contraseña. Para esto, primero debemos ejecutar el siguiente comando:

grub-mkpasswd-pbkdf2

El cual nos va a preguntar cuál es la contraseña que queremos definir y, una vez hecho esto, nos va a mostrar una salida como la siguiente:
Your PBKDF2 is
grub.pbkdf2.sha512.10000.32B8E03C7A0806DD5D94966DCCBDA1A295B81A874AD0FA1CAC1A611BDA85 E8760EDA7B59B42C03CCA64E50952B346F4AC48A9D75991F4932588DC27E97DDFADE.4CE988BAF33E6 9D8543510514114459B4B22D44B2255539DDA9C9832DE0106409CC5A0628C292BA1F18A01D4C90D3AEA 25EBDA5A547C1F737A2D7B38DE19B093

Esto es nada más y nada menos que la contraseña seleccionada, procesada por el algoritmo PBKDF2 (http://en.wikipedia.org/wiki/PBKDF2) , el cual simplemente procesa la contraseña con un algoritmo de hash (en este caso, SHA512) y un valor salt, lo cual vuelve extremadamente difícil adivinar la contraseña por cualquier técnica de cracking conocida hasta el momento.

Debemos crear un archivo en el directorio de configuración de GRUB2 (‘/etc/grub.d’). Vamos a llamarlo “01_password” (el nombre del archivo debe empezar con “01”, debido al orden en el que necesita ejecutarse).

En nuestro caso, el archivo creado sería: “/etc/grub.d/01_password”.

El contenido del archivo debe ser el siguiente:
=============================================
#!/bin/bash
cat << EOF
set superusers="root"
password_pbkdf2 root
grub.pbkdf2.sha512.10000.32B8E03C7A0806DD5D94966DCCBDA1A295B81A874AD0FA1CAC1A611BDA85
E8760EDA7B59B42C03CCA64E50952B346F4AC48A9D75991F4932588DC27E97DDFADE.4CE988BAF33E6
9D8543510514114459B4B22D44B2255539DDA9C9832DE0106409CC5A0628C292BA1F18A01D4C90D3AEA
25EBDA5A547C1F737A2D7B38DE19B093
EOF
=============================================

Básicamente, el archivo es un script que va a mostrar por pantalla las configuraciones necesarias para habilitar la protección por contraseña. Luego, este archivo va a ser procesado, junto con los otros archivos de configuración y, entre todos ellos, van a formar la configuración completa de GRUB2 (parece complejo, pero es una forma de configuración modular y flexible).

Luego, debemos hacer que este archivo tenga permisos de ejecución, con el siguiente comando:

chmod u+x /etc/grub.d/01_password

Para actualizar la configuración de GRUB2 y que se apliquen los cambios que acabamos de realizar, debemos ejecutar el siguiente comando:

update-grub2

Una vez hecho esto y reiniciado el sistema, si queremos editar alguna entrada se nos va a solicitar un usuario y contraseña, como se muestra a continuación








Publicar un comentario

0 Comentarios