viernes, 2 de noviembre de 2012

"Jabalí a lo Flu" Proteger el GRUB II

La semana pasada la recomendación era aprender a Proteger el GRUB con Flu Project, así que esta semana te animo a que sigas con la continuación del anterior artículo en Proteger el GRUB II.

No podemos esta semana dejar de recomendaros otro post de la increíble serie:
Aprovechamos para felicitar a Pablo González por su nuevo libro: Metasploit para Pentesters (ya hablaremos del tema de "mis dedicatorias", ja,ja,ja) del que ya tenemos una copia en nuestro poder y tiene "muy buena pinta".

Especialmente recomiendo que compres un ejemplar y desde aquí ya os adelanto que vamos a hacer algo muy especial con el feedback de este libro.

Ahora si!, os dejo con este sensacional artículo de Pablo en Flu Project sobre cómo podemos proteger el GRUB, Parte II.....

Proteger el GRUB II
La semana anterior hablamos de como proteger el GRUB en su versión 1. Se utilizaba una contraseña maestra para bloquear la ejecución de las entradas, o al menos una contraseña por línea. GRUB 2 es realmente mucho más flexible, ya que incorpora la posibilidad de utilizar dos roles de usuarios y con distintas características.
Roles
Se dispone de dos tipos de roles, uno es el rol de superusuario y otro el de usuario normal. Se puede definir un solo superusuario el cual dispondrá de permisos para acceder tanto a la edición de la línea del GRUB como a los sistemas operativos que se encuentran disponibles en el equipo. Para definir los usuarios debemos ir al fichero /etc/grub.d/40_custom, y como se puede visualizar en la siguiente imagen declarar los usuarios.


Para entender bien como se declaran los usuarios debemos entender lo siguiente:
  • Para declarar el superusuario se especifica el nombre con la orden set superusers=”nombre_usuario”. Para asignarle una contraseña se debe utilizar la directiva password o password_pbkdf2 si se utilizará un hash que evite la lectura en plano de la contraseña. Después de indicar la directiva se debe indicar a que usuario se asigna y por último la contraseña.
  • Los usuarios normales, que pueden ser más de uno, se especifican directamente con la contraseña. Se puede utilizar la directiva password o password_pbkdf2, dependiendo de si va en plano o con hash.
Para crear un hash pbkdf2 se utiliza la herramienta grub-mkpasswd-pbkfd2, como se puede visualizar en la siguiente imagen.


De esta manera, definiendo el superusuario tenemos protegida la edición de la línea de comandos del GRUB, por lo que no podrán levantar una shell de root a través de la línea de comandos del GRUB. Ahora vamos a ver como proteger el arranque de los sistemas operativos. Podemos especificar que usuarios pueden arrancar un sistema operativo en concreto, para ello debemos entender que existen unos archivos para cada tipo de sistema operativo. Nos puede interesar proteger Linux y Windows, pero no la aplicación de test de memoria RAM. El sistema operativo Linux y su entrada se configura en el fichero 10_Linux que se encuentra en la ruta /etc/grub.d. Mientras que Windows se prepara en el fichero 30_os-prober. Para protegerlos hay que editar el fichero y buscar la palabra “menuentry”, como se puede visualizar en la siguiente imagen.


Como podéis ver no es difícil proteger el GRUB en sus distintas versiones. Es más flexible y potente el GRUB en su nueva versión, la gestión de usuarios le permite al administrador ofrecer una jerarquía de seguridad realmente interesante.

2 comentarios:

  1. Hola Ángel,

    Gracias crack por esas palabras... la dedicatoria, te enviaron el libro y no me dijeron nada... tenías que haberlo puesto en observaciones o algo :). Pero nos veremos y la dedicatoria será escrita con muuuucho gusto :D

    Un abrazo crack!

    ResponderEliminar
    Respuestas
    1. Jajaja gracias a ti por el libro, lo de la dedicatoria es por pelearos un poco jajaja.Vamos a escribir algo "chulo" para el feedback, un abrazo Pablo. XD

      Eliminar

Archivo del blog