TEMA 4
SEGURIDAD EN SISTEMAS OPERATIVOS
Usuarios y passwords son necesarias para sistemas operativos no personales ( debe ser una buena password para prevenir ATAQUES por diccionario). La password se guarda cifrada ( con el algoritmo de cifrado DES ) consta de 11 caracteres más 2 semillas ( x x ) que se guardan en el directorio "/etc/ password" con el formato "user : password : mid : gid : : dir : shell".
El problema que existe ahora es el de los ataques por fuerza bruta con una password de 8 caracteres.
Lo que se hace actualmente es guardar la password en el directorio "/etc/shadow" con el formato "user : password : x : x : x : x : x ". Se puede obtener la estructura detallada del fichero Shadow con los comandos "man shadow" o " man 5 password " .
Si se pone una password con una fecha caducada el sistema, obligará a que sea cambiada con solo acceder al sistema.
Existen sistemas monousuario y multiusuario así como monotarea y multitarea. El sistema operativo MS- DOS es monousuario y monotarea. En un sistema multiusuario se debe ir con cuidado para no dejar ver a un usuario lo del otro. En un sistema multitarea se debe esconder la información activa en el sistema.
TÉCNICAS DE PROTECCIÓN
Se debe buscar confidencialidad y disponibilidad. Debe ser útil para proteger al ordenador de los demás usuarios y también de sí mismo:
Marcar en la memoria lineal un inicio y un fin de registros que el usuario va ha poder usar, esto es a nivel de hardware .
En memoria paginada ( a partir del 386 ) cada página contiene el propietario de ella misma, si se intenta acceder a algo que no sea nuestro se produce una violación de segmento.
Cuidado con el stack overflow.
PROTECCIÓN DE ARCHIVOS
Cuando se quieren proteger los archivos hay varias soluciones, teniendo en cuenta que se busca flexibilidad y versatilidad ( a costa del coste ).
Un método, que es el de "anubis" (AIX), es usar una máscara de bits para la protección de los ficheros. Mediante tres criterios ( user, group, others ) y cada uno de ellos con tres derechos ( rwx ). Cada proceso tiene un identificador de usuario " uid " y un identificador de grupo " gid".
Por defecto en ficheros se tiene: ( rw_r_ _r_ ) ( 644 ) y en programas ( rwxr_xr_x ) ( 755 )
Otro método, AOS.
Sistemas basados en ACL ( acces control list ). Permite la especificación de una lista de personas y los permisos que tienen estas personas.
Ejemplo: fichero ( rwx ) (lectura, escritura, ejecución)
directorio (rwx) (listar, modificar-borrar, formar parte del path)
También existe un permiso "t" el cual significa para fichero que el programa permanecerá cargado en RAM, no se pagina con el swap y para directorio que solo puedo trabajar en ese directorio con mis ficheros, no puedo borrar o modificar ficheros de otros usuarios (un ejemplo de este tipo de directorio seria " /tmp".
BIT S (suid)
Este bit es necesario en todos los sistemas, el proceso que ejecuta este programa se hará en nombre de otro usuario. Solo tiene sentido en programas ejecutables.
rwsr_s_ _x (el programa no se puede copiar pero se puede ejecutar)
bin/passwd (cuando un usuario hace esto, quien realmente ejecuta el programa es el root. Esto es porque el programa passwd debe modificar el fichero shadow)
Si alguno de estos programas sufriera un buffer overflow, se convertiría en root por tanto son programas peligrosos.
COPIAS DE SEGURIDAD
Se busca integridad y disponibilidad. Se trata de copiar los datos para evitar perderlos. La probabilidad de pérdida será menos cuantas más copias de seguridad haya.
La pérdida de datos puede ser bien por causa física o bien por una mala manipulación ( accidental o voluntaria ).
La frecuencia de hacer copias de seguridad está en función de la fiabilidad de almacenamiento de los datos y de la cantidad de elementos que se modifiquen.
Podemos distinguir el tipo de copia TOTAL, el cual será lento y no factible de forma diaria. Se podrá hacer cada uno o dos meses o cada vez que ocurra un evento significativo. El otro tipo de copia sería PARCIAL, el cual podría hacerse de forma diaria tan solo de aquello que haya sido modificado. Las copias deben hacerse cuando la máquina no esté prácticamente en uso.
Las copias de seguridad deben guardarse un cierto tiempo para poder mantener el estado de la máquina de x días anteriores. Esto podría guardarse en cintas distintas para cada día de la semana.
Otro método sería tener otra máquina y copiar de un disco duro al otro.
Existen sistemas o programas que gestionan las copias de seguridad y no necesitan del usuario para realizar las copias, lo hacen de forma automática. Ejemplos de programas de este tipo serían:
tar cf ficherodestino "lo que se quiera copiar"
rar, zip, arj, zoo.....