28 de Julio, 2004

Cuidando el modo single-user

El portátil es lo que tiene: es portátil :D. Esto tiene consecuencias, tanto porque podemos dejar el portátil encendido o al alcance de extraños, o porque es más fácil de sustraer por la gente mala :|. En definitiva el acceso físico a la máquina es más fácil, y eso repercute en la seguridad del sistema.

Por defecto, tanto OpenBSD como FreeBSD (en NetBSD no se como está la cosa, imagino que similar), el fichero /etc/ttys viene configurado de una forma que igual no nos interesa, ya no solo en los portátiles. Este fichero se encarga de inicializar y controlar las terminales de nuestra máquina.

Vamos a ojear una entrada de este fichero en obsd:

ttyC0   "/usr/libexec/getty Pc"   vt220   on secure

ttyC0 hace referencia al dispositivo dentro de /dev. Le sigue el comando a ejecutar para este dispositivo, el tipo de terminal (sacado de /etc/termcap, un echo $TERM nos puede mostrar cual estamos usando en una sesión) y, finalmente, si la linea está activa o no (con on/off).

En caso de estar la terminal activa nos podemos encontrar con un modificador que es secure y que indica que esta terminal es segura, permitiendo así a root entrar en el sistema. Si no es segura tendremos que entrar con otro usuario y emplear el comando su(1) (que seguro todos conocemos :P).

Pero ese secure tiene otro efecto que no es nada conveniente en la mayoría de los casos. Se "supone", así entre comillas, que el sistema está protegido si las contraseñas que tienen los usuarios están seguras. Esto no es del todo cierto si se puede arrancar con otro sistema operativo, con un disquete mismo, y montar las particiones del disco duro (si no tenemos cifradas esas particiones, un atacante podría hacer daño). Pero bueno, ya es algo más artificioso y solo tendríamos acceso a los discos, no el control del sistema directamente.

Porque se puede tomar el control del sistema fácilmente por culpa de ese secure.

Los sistemas *BSD tienen un gestor de arranque que nos permite hacer varias cosas. Una de ellas es, pasándole el parámetro -s en el arranque interactivo, arrancar en modo single-user.

En dicho modo (que también se puede conseguir con una llamada a shutdown now por el superusuario), tenemos el sistema antes de que la mayoría de los procesos de arranque se lleven acabo, como el montaje de particiones, la inicialización de la red, los demonios, y la entrada en el modo multiusuario.

Este modo se emplea para tareas de mantenimiento, como compilar el sistema o el kernel más rápido (el sistema no tiene carga, está en monousuario :D), reparar particiones, los últimos pasos en la actualización del sistema, etc.

Nuestro secure indica que la terminal es segura, y no nos pedirá la contraseña de root al entrar en modo single-user. Esto no es muy problemático con el sistema en marcha (el shutdown(8) lo debe ejecutar el superusuario después de todo), sino ante la posibilidad de arrancar y tener root sin mayor complicación.

Así que es muy recomendable evitar los single-user sin contraseña, y tan sencillo como borrar el modificador secure.

Tampoco es la panacea, pero sí es sencillo y evitamos un problema potencial. Luego habrá gente que no bloquee sus X con xlock cuando se aleja del teclado, pero eso ya es otra historia ;).

Anotación por Juan J. Martínez.

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.