öCualquiera con un destornillador
puede entrar!

öCualquiera con un destornillador puede entrar!

Seguridad f­sica y Seguridad en el arranque en Linux

por Jay Beale (jay@bastille-linux.org) para SecurityPortal

28 de agosto de 2000 - Este art­culo trata sobre el segundo nivel de debilidad de la seguridad en los ordenadores, la seguridad f­sica1. Como veremos, cualquiera con acceso f­sico a un ordenador, un poco de ingenuidad y el suficiente tiempo puede llegar a comprometer el sistema.
 

A modo de ejemplo, demostrar© el ataque y la defensa en un sistema Red Hat Linux, mostrando como se pueden minimizar o incluso impedir este tipo de ataques. Este art­culo es êtil incluso si no se dispone de una m¡quina Linux o responsabilidad t©cnica. Estamos ante un problema que es independiente del sistema operativo y este art­culo es lo bastante gen©rico para que sea êtil a usuarios de todos los usuarios de ordenadores. Avisamos, no obstante, de que si nos enfrentamos a un contricante muy determinado sãlo podremos ponerle las cosas m¡s dif­ciles.
 

Entrar desde el prompt de LILO

Si arrancamos un sistema que tenga Red Hat Linux 6.x, podemos entrar en la modalidad de un ênico usuario de la siguiente forma:

    LILO: linux single

Con este mandato, la m¡quina arrancar¡ en la modalidad de ejecuciãn 1, o modalidad de un ênico usuario. Estaremos conectados como superusario, root, ösin necesidad de introducir ninguna contraseáa! No se trata de una puerta trasera -esta modalidad habitualmente se utiliza para el mantenimiento del sistema, lo cual es bueno. El que no sea necesario utilizar una contraseáa para entrar como root es, con toda seguridad, öuna mala idea!

Se puede solucionar este problema editando el archivo /etc/inittab y aáadiendo la siguiente l­nea a continuaciãn de la l­nea "initdefault":

    ~~:S:wait:/sbin/sulogin

Con esto hacemos que sea necesario utilizar una contraseáa para entrar en la modalidad de un ênico usuario al ejecutar el programa sulogin antes de entrar en el shell de root. El usuario, para poder continuar, deber¡ introducir la contraseáa de root.

õQu© pasa si tenemos el acceso a la modalidad de un ênico usuario protegido con una contraseáa? Simplemente, podemos continuar entrando como root si escribimos:

    LILO: linux init=/bin/bash

Con esto ejecutamos el kernel de Linux (si se llama linux), pero ejecuta el 'Bourne-Again-Shell' (bash) como el primer proceso (no de kernel) en lugar de init. Como el kernel ejecuta init como usuario root, este shell tiene privilegios de root. öHemos conseguido un shell y somos root!

õCãmo podemos detener este ataque y otros similares? Lo que tenemos que hacer es restringir quien tiene acceso al prompt de LILO.
 

LILO nos permite hacer esto de forma nativa. En  primer lugar, podemos proteger con una contraseáa el prompt de LILO, de forma que el intruso no pueda escribir ninguna opciãn en el mismo sin escribir la contraseáa. Para aáadir la contraseáa al prompt de LILO, hemos de incluir estas l­neas al inicio del archivo /etc/lilo.conf:

    restricted
    password=LA_CONTRASE‘A_QUE_HEMOS_PENSADO

Otra forma de proteger el prompt de LILO estableciendo el tiempo de espera en un milisegundo, de forma que el intruso no disponga de tiempo para aáadir ninguna opciãn2. Para hacerlo, aáadimos la siguiente l­nea en /etc/lilo.conf y volvemos a ejecutar el mandato lilo. Comentamos todas las l­neas que contengan la palabra 'prompt' poniendo el caracter # al inicio de la l­nea y aáadir la l­nea:

    delay=1

cerca del inicio del archivo. Una vez hechos estos cambios, nos aseguramos de ejecutar lilo para que los cambios tengan efecto: ejecutar, desde el prompt de root, lilo. Para informaciãn adicional sobre LILO (Linux (kernel) Loader), man lilo y man lilo.conf.

Bien, ya tenemos lilo securizado. õHemos cerrado totalmente las opciones que un intruso puede convertirse en el superusuario? Tristemente no, ya que un atacante con acceso f­sico puede...
 

Arrancar con diskette/CDROM/otros dispositivos removibles

Si el ordenador dispone de una unidad de diskette o de CDROM, el intruso puede normalmente arrancar el sistema utilizando un diskette/CDROM arracanble. Siempre llevo conmigo, para aquellas ocasiones en las que alguien se olvida de la contraseáa de root (o una m¡quina que est¡ tan estropeada que no puede arrancar correctamente). Inicio el sistema utilizando el diskette y, a continuaciãn, monto el disco duro de la siguiente forma:

    # mkdir /jay
    # mount /dev/hda5 /jay
    # vi /jay/etc/passwd

Como he arrancado el sistema con mi diskette, tengo privilegio de root en la m¡quina. Si la unidad de disco no est¡ encriptada, puedo montarlo (como he hecho), editar el archivo de contraseáas y crear una cuenta con privilegios de superusuario, aáadiendo una l­nea como la siguiente:

    jay::0:0:Administrador de Seguridad:/:/bin/bash

Hemos creado una cuenta 'jay', equivalente a la de root, sin ninguna contraseáa. Con ella puedo proceder a reparar el sistema, borrar la cuenta y volver a mis ocupaciones.

Por desgracia, el intruso puede utilizar la misma t©cnica para obtener un acceso ilegitimo como root. Una forma inicial de prevenir esto es impedir que la m¡quina pueda arrancar de cualquier dispositivo excepto el disco duro. Esta t©cnica es innecesaria si el ordenador no puede utilizar la unidad de diskette o el CD-ROM para arrancar.

Por lo general las opciones de arranque se configuran en la NVRAM, EEPROM, CMOS u otras memorias permanentemente alimentadas por bater­a. En las m¡quinas basadas en procesador Intel x86, conecte la m¡quina y, mientras se inicia, presione la tecla adecuada (Esc, F1, F2...) para entrar en el menê de configuraciãn del BIOS. Una vez realizadas las modificaciones oportunas, pruebe de arrancar desde diskette. No deber­a ser posible.

Ahora el intruso ya no puede poner un diskette para acceder a la m¡quina ni tampoco puede hacerlo desde el prompt de LILO. õTiene otros mecanismos? Por supuesto, puede...
 

Eliminar las restricciones del dispositivo de arranque

Un intruso con conocimientos despu©s de determinar que no es posible arrancar desde un dispositivo removible, seguir¡ los mismos pasos que hemos hecho nosotros, pero al rev©s, restaurando la lista de dispositivos que permiten arrancar la m¡quina. Podemos combatir esto, pero debemos contemplar dos efectos primarios:

  1. Detener a los intrusos con pocos conocimientos ya que sabemos m¡s que ellos.
  2. Poner las cosas dif­ciles y disuadir a los intrusos que tienen m¡s conocimientos.

Comentaremos esto m¡s adelante. Simplemente no deseaba desmoralizar al lector a medio art­culo.

Es decir, el intruso puede deshacer las restricciones de arranque que hemos establecido. En la mayor­a de los sistemas, incluyendo los equipos basados en procesadores Intel, podemos establecer una contraseáa en la NVRAM, EEPROM, CMOS (o lo que se utilice para almacener la configuraciãn del BIOS). Esta es una opciãn muy f¡cil de encontrar y, tambi©n, muy f¡cil de olvidar. Establezca una contraseáa en el BIOS del ordenador.

Esto, combinado con las opciones anteriores, detendr¡n un gran nêmero de intrusos. No obstante, algunos ser¡n capaces de...

Eliminar la contraseáa del BIOS

El intruso tiene realmente inter©s. Y dispone de tiempo. Si dispone del suficiente acceso al sistema, puede utilizar una herramienta que funciona en Linux para descubrir la contraseáa del BIOS. Normalmente, pero, no puede hacer esto.

No obstante, al disponer del acceso f­sico al sistema, puede tomar la soluciãn m¡s simple. En las m¡quinas basadas en procesadores Intel, la configuraciãn del BIOS se mantine gracias a una pequeáa bater­a, habitualmente similar a las utilizadas por los relojes. Si desconectamos esta bater­a unos segundos, se borra el contenido de la RAM y con ella la contraseáa.

En esta situaciãn, el BIOS de algunos equipos queda 'protegido' por una contraseáa fijada por el fabricante. Estas contraseáas est¡n documentadas y existen multiples tablas de referencia que el intruso puede consultar (o incluso, memorizar).

õQu© podemos hacer aqu­? Una opciãn es poner un candado en la caja, para que no se pueda abrir f¡cilmente. Con tiempo y herramientas, cualquier candado puede ser forzado o roto. O m¡s f¡cil, el intruso puede simplemente romper la caja. No obstante, la presencia de un candado y la utilizaciãn de una caja muy fuerte pueden hacerle desistir de su intento. Adem¡s podemos quitar la unidad de diskette, el CD-ROM y los conectores que se puedan utilizar para montar otros dispositivos (disco ZIP, puerto paralelo). Y, õa continuaciãn qu©?

Montar el disco en otra m¡quina

Recuerdas el truco sobre como acceder al disco cuando arrancamos con un diskette. El mismo truco puede utilizarse desde otra m¡quina. Si bien esto puede parecer poco pr¡ctico, hace unas semanas vi en DefCon, un ordenador del tamaáo de una baraja de cartas que puede ser ideal para esto. Con un disco duro de 340 MB, el sistema operativo Red Hat y un puerto paralelo, este ordenador ultraportable se convierte en un equipo ideal para este propãsito.

La simple acciãn de conectar el disco duro en este equipo, o en cualquier otro, nos permite un control total del mismo, con un acceso inst¡ntaneo con privilegio de casi superusuario. Todo lo que necesitamos, en la mayor­a de los casos, es un destornillador para abrir la m¡quina y extraer el disco duro. La existencia de un candado puede complicar la extracciãn, aunque en la mayor­a de los casos lo ênico que har¡ ser¡ hacer que el intruso tarde un poco m¡s.

Vamos a suponer que todav­a estamos tratando detener a este intruso. Se trata de alguien realmente empeáado. El acceso f­sico hace que la seguridad sea realmente muy d©bil.

õNo ser­a mejor mirar de eliminar el acceso f­sico? Colocamos la m¡quina en una sala bajo llave, con una puerta de acero dotada de una bisagra interior y con diversos candados antirobo. Sãlo el monitor, el teclado y el ratãn son accesibles. Esto nos da total seguridad, õo no?

Hemos de revisar tambi©n las paredes. La mayor­a de las salas de ordenadores tienen paredes que no van m¡s all¡ del techo. Exactamente õde qu© hablamos? Si nos fijamos en las losetas del techo alrededor de la habitaciãn, es posible que levantando una veamos que hay mucho espacio sobre la pared de la sala 'segura' de ordenadores.

Una vez, la sala de ordenadores de mi despacho quedã cerrada por dentro. Para poder abrirla me indicaron que utilizara este espacio entre el falso techo y el techo para poder acceder a la sala y abrirla desde dentro. öLa mayor­a de instalaciones no tienen presente esto cuando hacen su auditor­a de seguridad f­sica!

Si, si.. de acuerdo. Estamos exagerando un poco. En realidad depende del nivel de 'seguridad' que realmente necesitemos para nuestros equipos. Como espero haber demostrado, es realmente muy dif­cil detener a un intruso que dispone de tiempo y un acceso f­sico sin control a los ordenadores. Por lo tanto, õqu© podemos hacer?

Eliminar la oportunidad y asustar al intruso

Podemos detener la mayor­a de intrusos simplemente no ofreci©ndoles la posibilidad de acceder de forma incontrolada a los ordenadores ni disponer del tiempo suficiente para efectuar el ataque. Si seguimos los pasos de nuestro intruso, vemos que todos sus pasos requieren un cierto tiempo. Necesita reiniciar la m¡quina en varias ocasiones. Todo esto requiere tiempo.

Si aseguramos el cargador de Linux (lilo) suficientemente, establecemos las restricciones de dispositivos que pueden arrancar y aseguramos las opciones para cambiarlas, el intruso se ver¡ en la necesidad de abrir la m¡quina, posiblmente forzando los candados.

Esto de por si ya requiere su tiempo, pero adem¡s es posible que no pase desapercibido por cualquiera que pase por all­. Si el acceso f­sico es posible, al encontrarse la m¡quina en un laboratorio, podemos colocar m¡quinas que registren cualquier actividad sospechosa. Si el acceso f­sico es accidental/no intencionado, podemos cerrar las puertas, disparar las alarmas e, incluso, enviar guardias.

En cualquier caso, ahora que conocemos los peligros, podemos meditar sobre este problema con m¡s calma y escoger las medidas que necesita nuestra organizaciãn.

õNo es, en realidad, una batalla perdida?

Contra un intruso realmente intencionado, con suficiente tiempo y sin ninguna supervisiãn, tenemos pocas posibilidades. Bien, no del todo. La mayor­a de intrusos no piensan en todos estos m©todos, o no tienen el tiempo/energ­a para aplicarlos. Es m¡s, estoy convencido que la mayor parte de intrusos no seguir¡ una metãdica que requiere tanto tiempo en aquellas situaciones en que pueden ser 'pillados con las manos en la masa'.

Por lo tanto, como paso inicial para deshacernos de todos los intrusos, menos de los m¡s capacitados, procederemos con los pasos que hemos indicado. Fortalecer el cargador del sistema operativo, el BIOS de la m¡quina y el hardware propiamente dicho. Los pocos intrusos que quedan necesitaran de mucho tiempo para poder acceder a las m¡quinas, con el riesgo de ser descubiertos.

En realidad, el objetivo final de nuestro trabajo es intimidar al intruso. Si siguieramos todos los pasos necesarios para hacer que el ordenador sea pr¡cticamente inviolable, tambi©n lo convertiriamos en pr¡cticamente inutilizable por la mayor­a. Por lo tanto, hemos de llegar a un compromiso. Eliminamos todos los pasos f¡ciles de entrar, como las debilidades que hemos demostrado, el LILO: linux single o el acceso desde diskette.

Intentaremos ir tantos pasos por delante como nos sea posible, sin perturbar el uso normal. Si podemos hacer que el acceso como root nuestras m¡quinas sea dif­cil, la mayor­a de los intrusos buscar¡n a otra v­ctima. El resto de intrusos deberemos tratar de detectarlos --o intimidarlos-- utilizando otros m©todos, como sistemas de seguridad.

Como colofãn, recuerde siempre que el intruso es un ser humano, con un gran potencial de creatividad y brillantez. öNo lo subestime!

öBuena suerte!

Notas

  1. El nivel m¡s bajo de la seguridad de los ordenadores es el nivel social. Los crackers, como Kevin Mitnick pueden acceder simplemente llamando a los usuarios, identific¡ndose como los administradores del sistema y solicitando sus contraseáas.
  2. Por cierto, Bastille Linux puede hacer todos estos pasos autom¡ticamente.

Jay Beale es el principal desarrollador del proyecto Bastille Linux. Es un autor de diversos art­culos sobre seguridad en Unix/Linux as­ como del libro de prãxima apariciãn 'Securing Linux. The Bastille Way', que publicar¡ Addison Wesley. Jay trabaja como administrador de seguridad de sistemas Solaris y Linux. Para m¡s detalles de sus art­culos, conferencias y links de inter©s, http://www.bastille-linux.org/jay.


[P¡gina Inicial] [Soluciones] [Socios] [Informes] [Ofertas de Empleo] [Contacto]

© Copyright 2000-2001, Selesta Seguridad. Email: info@selseg.com
Declaraciãn de privacidad. - Aviso de responsabilidad.