4.2. Seguridad del BIOS y del gestor de arranque

La protección con contraseñas para el BIOS (o equivalentes al BIOS) y el gestor de arranque, pueden ayudar a prevenir que usuarios no autorizados que tengan acceso físico a sus sistemas, arranquen desde medios removibles u obtengan acceso como root a través del modo monousuario. Pero las medidas de seguridad que uno debería tomar para protegerse contra tales ataques dependen de la confidencialidad de la información que las estaciones tengan y de la ubicación de la máquina.

Por ejemplo, si una máquina es usada en una exhibición y no contiene datos confidenciales, entonces puede que no sea crítico prevenir tales ataques. Sin embargo, si se deja al descuido en la misma exhibición, la portátil de uno de los empleados con llaves privadas SSH para la red corporativa desprotegidas, esto puede conducir a una violación de seguridad importante para la compañía completa.

Por otro lado, si la estación de trabajo está localizada en un lugar donde sólo los usuarios autorizados o de confianza tienen acceso, entonces la seguridad del BIOS o del gestor de arranque puede que no sea necesaria.

4.2.1. Contraseñas del BIOS

Las siguientes son las dos razones básicas por las que proteger la BIOS de una computadora con una contraseña [1]:

  1. Prevenir cambios a las configuraciones del BIOS — Si un intruso tiene acceso a la BIOS, puede configurarlo para que arranque desde un diskette o CD-ROM. Esto les permite entrar en modo de rescate o monousuario, lo que a su vez les permite plantar programas dañinos en el sistema o copiar datos confidenciales.

  2. Prevenir el arranque del sistema — Algunas BIOSes le permiten proteger el proceso de arranque con una contraseña. Cuando está funcionalidad está activada, un atacante esta forzado a introducir una contraseña antes de que el BIOS lanze el gestor de arranque.

Debido a que los métodos para colocar contraseñas del BIOS varían entre fabricantes de equipos, consulte el manual de su computador para ver las instrucciones específicas.

Si olvida su contraseña del BIOS, usualmente esta se puede reconfigurar bien sea a través de los jumpers en la tarjeta madre o desconectando la batería CMOS. Por esta razón es una buena idea bloquear el chasis del computador si es posible. Sin embargo, consulte el manual del computador o tarjeta madre antes de proceder.

4.2.1.1. Aseguramiento de plataformas diferentes a x86

Hay plataformas que utilizan programas diferentes para llevar a cabo tareas de bajo nivel más o menos similares a las del BIOS en sistemas x86. Por ejemplo, las computadoras basadas en Intel® Itanium™ utilizan la Extensible Firmware Interface (EFI).

Para ver las instrucciones sobre cómo proteger con contraseñas estos programas, refiérase a las instrucciones del fabricante.

4.2.2. Contraseñas del gestor de arranque

A continuación se muestran las razones principales por las cuales proteger el gestor de arranque Linux:

  1. Previene el acceso en modo monousuario — Si un atacante puede arrancar en modo monousuario, se convierte en el usuario root.

  2. Previene el acceso a la consola de GRUB — Si la máquina utiliza GRUB como el gestor de arranque, un atacante puede usar la interfaz del editor para cambiar su configuración o para reunir información usando el comando cat.

  3. Previene el acceso a sistemas operativos inseguros — Si es un sistema de arranque dual, un atacante puede seleccionar un sistema operativo en el momento de arranque, tal como DOS, el cual ignora los controles de acceso y los permisos de archivos.

Red Hat Enterprise Linux se entrega con dos gestores de arranque para la plataforma x86, GRUB y LILO. Para una vista detallada de estos gestores de arranque, consulte el capítulo llamado Gestores de arranque en el Manual de referencia de Red Hat Enterprise Linux.

4.2.2.1. Protegiendo GRUB con contraseñas

Puede configurar GRUB para solucionar los primeros dos problemas listados en la Sección 4.2.2 añadiendo una directiva de contraseña a su archivo de configuración. Para hacer esto, primero seleccione una contraseña, luego abra un indicador de comandos del shell, conéctese como root y escriba:

/sbin/grub-md5-crypt

Cuando se le pida, escriba la contraseña GRUB y presione [Intro]. Esto retornará un hash MD5 para la contraseña.

Luego, modifique el archivo de configuración GRUB /boot/grub/grub.conf. Abra el archivo y debajo de la línea timeout en la sección principal del documento, añada la siguiente línea:

password --md5 <password-hash>

Reemplace <password-hash> con el valor retornado por /sbin/grub-md5-crypt[2].

La próxima vez que el sistema arranque, el menú de GRUB no le permitirá accesar el editor o la interfaz de comandos sin primero presionar [p] seguido por la contraseña de GRUB.

Lamentablemente, esta solución no previene a un atacante de arrancar en un sistema operativo inseguro, si se está en un ambiente de arranque dual. Para esto, necesita editar una parte diferente del archivo /boot/grub/grub.conf.

Busque la línea title del sistema operativo inseguro y añada una línea que diga lock directamente debajo de ella.

Para un sistema DOS, la estrofa debería comenzar con algo similar a:

title DOS
lock

AvisoAviso
 

Debe tener una línea password en la sección principal del archivo /boot/grub/grub.conf para que esto funcione adecuadamente. De otra forma un atacante podrá acceder a la interfaz del editor de GRUB y eliminar la línea de bloqueo.

Para crear una contraseña diferente para un kernel o sistema operativo particular, añada una línea lock a la estrofa seguido por una línea de contraseña.

Cada estrofa que usted proteja con una contraseña única debería comenzar con líneas similares a las del ejemplo siguiente:

title DOS
lock
password --md5 <password-hash>

4.2.2.2. Protegiendo LILO con contraseñas

LILO es un gestor de arranque mucho más simple que GRUB y no ofrece una interfaz de comando, por lo tanto el atacante no puede obtener acceso al sistema antes de que el kernel sea cargado. Sin embargo, todavía hay peligro de que un intruso arranque en modo monousuario o en un sistema operativo inseguro.

Se puede lograr proteger LILO con una contraseña añadiendo una directiva de contraseña en la sección global de su archivo de configuración. Para hacer esto, abra un indicador de línea de comandos del shell, conéctese como root y modifique /etc/lilo.conf. Antes de la primera estrofa image, añada una directiva de contraseña similar a:

password=<password>

En la directiva de arriba, reemplace la palabra <password> con la contraseña para LILO.

ImportanteImportante
 

Cada vez que edite /etc/lilo.conf, debe ejecutar el comando /sbin/lilo -v -v para que los cambios tengan efecto. Si ha configurado una contraseña y nadie puede leer el archivo excepto root, LILO se instalará correctamente, pero le avisará que los permisos en el archivo de configuración son incorrectos.

Si no desea una contraseña global, puede aplicar la directiva de contraseñas a cualquier estrofa correspondiente a cualquier kernel o sistema operativo. Para hacer esto, añada la directiva de contraseñas inmediátamente debajo de la línea image. Cuando termine, el comienzo de la estrofa protegida por la contraseña se parecerá a lo siguiente:

image=/boot/vmlinuz-<version>
        password=<password>

En el ejemplo previo, reemplace <version> con la versión del kernel y <password> con la contraseña LILO para ese kernel.

También puede permitir el arranque de un kernel o sistema operativo sin una verificación de contraseña, a la vez que se previene a los usuarios especificar argumentos sin una contraseña. Para hacer esto puede añadir la directiva restricted en la línea debajo de la contraseña dentro de la estrofa. Tal estrofa comienza de forma similar a:

image=/boot/vmlinuz-<version>
        password=<password>
        restricted

Reemplace <version> con la versión del kernel y <password> con la contraseña LILO para ese kernel.

Si utiliza la directiva restricted, deberá también tener una línea de contraseña dentro de la estrofa.

AvisoAviso
 

El archivo /etc/lilo.conf puede ser leído por todo el mundo. Si está protegiendo LILO con una contraseña, es esencial que sólo permita a root leer y modificar el archivo, pues todas las contraseñas estan en texto plano. Para hacer esto, escriba el comando siguiente como root:

chmod 600  /etc/lilo.conf

Notas

[1]

Debido a que los sistemas BIOS varian de acuerdo al fabricante, algunos pueden que no soporten la protección con contraseñas de ningún tipo, mientras que otras pueden soportar un tipo pero no el otro.

[2]

GRUB también acepta contraseñas no encriptadas, pero se recomienda que utilice un hash md5 para mayor seguridad.