sábado, 27 de octubre de 2012

"Jabalí a lo Flu" Proteger el GRUB

Una de las mejores formas de mantener seguro nuestro equipo es protegiendo el Sistema Operativo, un S.O bien configurado y el conocimiento en profundidad de sus componentes es una de las mejores bazas de seguridad. En Flu Project Pablo escribía un articulo muy interesante: Proteger el GRUB, que mejor forma de fortificar el sistema que blindando el arranque….

¿Qué es GRUB? 
Para quienes no lo sepan, el GRUB es un gestor de arranque múltiple desarrollado por GNU. Este gestor de arranque permite disponer de uno o varios sistemas operativos y arrancarlos de manera sencilla. Se utiliza principalmente en sistemas operativos GNU/Linux, aunque existen sistemas operativos como Solaris que lo utilizan desde la versión 10 del sistema operativo.

En artículos como el de “sethc para GNU/Linux” en el que se puede aprender como levantar una sesión de root en una shell de linux si tenemos acceso físico al equipo, se deja en claro lo importante que es proteger el gestor de arranque. En la versión 1 de GRUB, existe un solo modo de protección y es colocar una contraseña universal tanto para el arranque de los sistemas operativos como para la edición del propio GRUB. Hay que recordar que el GRUB permite editar la línea o las líneas de arranque de sus entradas.

¿Cómo se hace esto?
Generalmente, cuando arranca el GRUB y muestra el menú se puede editar las líneas que se ejecutar, es decir colocar el GRUB en modo edición, normalmente mediante el uso de la letra ‘e’ o ‘a’. Aquí está el problema, cualquiera con acceso al equipo puede modificar las líneas de ejecución y arrancar una shell con privilegios de root.

La solución que proponemos es proteger mediante contraseña la ejecución de las entradas del GRUB, por lo que si pueden editar las líneas no podrán ejecutarlas por lo que no valdrá para mucho.

Configurando contraseña en el GRUB
El GRUB en su primera versión se aloja en la ruta /boot/grub. El fichero grub.conf aloja la configuración de las entradas, y es aquí donde se podrá alojar una contraseña. La contraseña, lógicamente, no se debe alojar en texto plano, por lo que habrá que utilizar alguna aplicación que nos genere un hash adecuado. Para ello lanzamos la aplicación grub en una shell, éste abre una nueva línea de comandos reducidos para el uso y edición del GRUB. Tener en cuenta que hay que ejecutarlo como root (o usuario con privilegio, por ejemplo sudoer).

Para generar el hash ejecutaremos el comando md5crypt. La aplicación nos pedirá un password, y hay que tener cuidado ya que solo lo pedirá una vez. Tras generar el hash, deberemos copiarlo para después colocarlo donde se debe.

Ahora nos toca editar el fichero /boot/grub/grub.conf para colocar el hash en las entradas que queramos proteger. De este modo, aunque editen las líneas en el GRUB, se pedirá una clave para proteger este arranque físico.


No hay comentarios:

Publicar un comentario

Archivo del blog

Consultor e Instructor de Sistemas y Seguridad Informática en Asturias