Make your own free website on Tripod.com

SEGURIDAD y PROTECCION EN SISTEMAS OPERATIVOS DE PROPOSITO GENERAL 

Un sistema operativo puede dar soporte de ejecución a múltiples procesos de múltiples usuarios, que ejecutan de manera concurrente. Por ello, una de las funciones principales del sistema operativo es proteger los recursos de cada usuario para que pueda ejecutar en un entorno seguro. Donde los mecanismos permiten controlar el acceso a los objetos del sistema permitiéndolo o denegándolo sobre la base de información tal como la identificación del usuario, el tipo de recurso, la pertenencia del usuario a cierto grupo de personas, las operaciones que puede ,hacer el usuario o el grupo con cada recurso, etc. La existencia de los mecanismos de seguridad obliga a mantener un compromiso constante entre separación y comparición.

1. AUTENTICACIÓN DE USUARIOS

El objetivo de la identificación del usuario, también denominado autenticación, es determinar si un usuario (persona, servicio o computadora) es quien dice ser. Para lo cual existen diversas formas de establecer la identidad de un usuario, tales como: 

  • Pedir información que s6lo él conoce a través de contraseñas, juegos de preguntas o algoritmos de identificación.
  • Determinar características físicas del usuario tales como la pupila, la huella dactilar, el DNA, la firma y etc.
  • Pedir un objeto que use el usuario, como puede ser una firma electrónica, unatarjeta con banda magnética o con un chip.

Además, como criterio general de seguridad, los sistemas operativos modernos dan la posibilidad de registrar todos los accesos al sistema, lo cual permite hacer controles interactivos ya posteriori de dichos accesos.

1.1 El proceso de autenticación: Habitualmente, cuando un usuario quiere acceder al sistema, aparece una pantalla o mensaje de entrada. En el caso de Windows NT, la pantalla pide tres valores:

  • Identificación del usuario: nombre del usuario del sistema.
  • Palabra clave o contraseña: espacio para teclear la clave.
  • Dominio de protección al que pertenece el usuario.

Existen varios fallos posibles en el proceso de entrada al sistema, por lo que este proceso debe ser robusto y no dar información a los intrusos. Donde un ataque a la seguridad del sistema relacionado con el proceso de autenticación consiste en suplantar al proceso que pide los datos de entrada.

2. PALABRAS CLAVES o CONTRASEÑAS 

El método más usado actualmente para identificar a un usuario es el de contraseñas, o palabras claves. Una contraseña es un conjunto de caracteres alfanuméricos y especiales conocido únicamente por el usuario y por el sistema operativo sobre el que se ha llegado a un acuerdo para que sea usado como clave de acceso al sistema. Normalmente, cuando se habilita un nuevo usuario en el sistema, este introduce su contraseña, que puede cambiar posteriormente tantas veces como quiera. Dicha contraseña se guarda cifrad en archivos especiales.

Este sistema es sencillo de implementar y de usar, funcionando de forma similar en todos los sistemas operativos. Sin embrago es necesario tomar las siguientes cuatro decisiones básicas de diseño para un sistema como este:

2.1 Asignación de claves: La palabra clave es fijada por el usuario cuando entra en su cuenta y la puede cambiar tantas veces como quiera.

2.2 Longitud y formato de claves: La longitud y el formato de las claves han ido cambiando a través del tiempo, principalmente debido a la detección de fallos asociados a las claves usadas en cada momento. Donde para aumentar la complejidad de la clave se puede hacer que el mandato que permite cambiar la contraseña obligue al usuario a meter caracteres no alfanuméricos y que fuerce la existencia de contraseñas de una longitud mínima añadiendo números aleatorios a la palabra antes de cifrarla.

2.3 Almacenamiento de claves: Las claves suelen almacenarse en archivos cifrados, con lo cual se incrementa la seguridad.

2.4 Duración de las claves: Para dificultar la detección de contraseñas válidas por parte de posibles intrusos se puede configurar el sistema operativo: los sistemas operativos permiten que las contraseñas de usuario sean válidas únicamente durante un cierto tiempo.

3. DOMINIOS DE PROTECCIÓN

Para poder implementar mecanismos de protección sobre los objetos del sistema, que pueden ser hardware (UCP, memoria, etc.) o software (procesos, archivos, semáforos, etc.), es necesario en primer lugar disponer de identificadores únicos de usuarios y objetos.

La relación entre objetos y derechos de acceso se define usando dominios de protección. Un dominio de protección es un conjunto de pares (objeto, derechos), donde cada par especifica un objeto y las operaciones que puede ejecutar sobre el mismo.

Un objeto puede pertenecer a varios dominios de protección simultáneamente. En cada momento, un proceso ejecuta un dominio de protección, pudiendo cambiar de un dominio a otro, si el sistema operativo lo permite.

4. MATRICES DE PROTECCIÓN 

La relación entre dominios y objetos se puede definir de forma completa mediante 6ba matriz de protección, también denominada de acceso. Los dominios de protección son las filas de la matriz y los objetos son las columnas de la misma. El elemento (i, j) expresa las operaciones que el dominio i ; puede ejecutar sobre el objeto j. Si la matriz de protección esta completamente definida, los mecanismos de protección pueden saber siempre qué hacer cuando un proceso de un dominio solicita determinada operación sobre un objeto.

El modelo de matriz de protección, derivado del modelo teórico HRU punto devista conceptual, pero tiene inconvenientes para su implementación:

  • La matriz de un sistema complejo puede ser muy grande y muy dispersa.
  • Una matriz tiene un número fijo de filas (dominios) y columnas (objetos), lo que es muy poco flexible para sistemas cuyo número de dominios u objetos puede cambiar.

Para resolver estos problemas, la mayoría de los sistemas operativos implementan la matriz mediante estructuras dinámicas de datos (listas) a las que se puede añadir o quitar elementos sin tener que redefinir ninguna estructura de datos del sistema operativo. Para la implementación de la matriz mediante elementos dinámicos, los sistemas operativos usan dos enfoques:

  • Almacenar la matriz por columnas, con una lista por objeto que especifica qué operaciones puede hacer cada dominio sobre ese objeto. La lista resultante se denomina lista de control de acceso (ACL, Acces Control List).
  • Almacenar la matriz por filas, con una lista por dominio que especifique qué operaciones se pueden hacer sobre un objeto cuando se pertenece a ese dominio. La lista resultante se denomina lista de capacidades (capabilities). 

5. LISTA DE CONTROL DE ACCESO 

Una forma frecuente de controlar los accesos a un objeto es usar el identificador del usuario como criterio. Con listas de control de acceso es necesario especificar para cada dominio de protección, e incluso para 'cada usuario, qué tipos de acceso al objeto son posibles. Para implementar esta solución, a cada objeto (archivos, directorios, procesos, etc. I se le asocia una lista de pares:

(Dominio, operaciones) 

Cuando un usuario pide acceso a un objeto, se determina a qué dominio de protección pertenece y se recorre la lista para ver si se puede hacer la operación solicitada.

La lista de control de acceso se corresponde directamente con las necesidades de los usuarios. Estas listas tienen dos problemas asociados:

  • Construir y mantener las listas es costoso en tiempo y recursos.
  • Es necesario disponer de estructuras de almacenamiento de tamaño variable porque las listas pueden tener longitudes distintas dependiendo del objeto.

5.1 Listas de control de acceso en UNIX 

En UNIX, solo existen tres dominios de protección: dueño, grupo, otros. Para cada dominio se permiten tres tipos de operaciones sobre un objeto: leer (r), escribir (w) y ejecutar (x). Todas las operaciones de interfaz Con el sistema operativo, estos permisos se indican Con números en octal. Se usa un digito para cada dominio y el valor de loS bits de cada digito se pone a 1 si la operación es posible a 0 si no lo es.

Los parámetros de protección de un objeto se pueden cambiar en UNIX mediante las llamadas al sistema chmod y chown.

5.2 Listas de control de acceso en Windows NT

 Todos los objetos de Windows NT tienen asignados descriptores de seguridad como parte de sus fichas de acceso. La parte mas significativa de los descriptores de seguridad es la lista de control de accesos. Cada entrada de la ACL contiene los descriptores de seguridad de los distintos dominios del sistema y los derechos de la ACL para permitir o denegar al acceso alobjeto.

El criterio de asignación de derechos en la ACL de un objeto nuevo en Windows NT es el siguiente:

  1. Si el creador de un objeto proporciona una ACL de forma explicita, el sistema la incluye en la ficha de acceso de dicho objeto.
  2. Si no proporciona una ACL de forma explicita, pero el objeto tiene un nombre, el sistema comprueba si el objeto debe heredar la de los objetos de su directorio. En ese caso se incluye en la fila de acceso del objeto la ACL heredada de los objetos de su directorio.
  3. Si ninguna de las dos condiciones anteriores se cumplen, el 'subsistema de seguridad aplica al objeto una ACL por defecto.

Además, en los descriptores de seguridad de los objetos se puede activar un campo de auditoria que indica al subsistema de seguridad que debe espiar al objeto y generar informes de seguridad cuando algún usuario intente hacer un uso incorrecto del mismo. 

6. CAPACIDADES 

La otra forma posible de implementar la matriz de protección es asociar a cada dominio un conjunto de descriptores que indiquen las operaciones que los componentes de ese dominio pueden efectuar sobre cada objeto del sistema. Estos descriptores se denominan capacidades (capabilities) y son una combinación de una referencia a un objeto con los permisos de acceso al mismo desde el dominio del poseedor de la capacidad. Las listas de capacidades son a su vez objetos, por 10 que pueden ser incluidas dentro de otras listas de capacidades, facilitando la comparición de los objetos en dominios y subdominios.

La mayoría de los sistemas que usan capacidades se basan en el hecho de que las listas de capacidades están siempre dentro del espacio de memoria del sistema operativo, sin que exista posibilidad de migrar a espacio de memoria de los procesos de usuario.

Una capacidad no pueda ser modificada. En casi todos los sistemas es necesario destruirla y crear una nueva, siguiendo un esquema de uso de una única vez. 

A nivel interno se han propuesto tres métodos para proteger las listas de capacidades:

  • Arquitectura etiquetada, en al cual la palabra de memoria tenga un bit de etiqueta adicional diciendo si contiene o no una capacidad. En caso positivo, esa posición de memoria sólo puede ser modificada por procesos que ejecuten dentro del núcleo del sistema operativo. Esta solución es cara y poco adecuada para sistemas de propósito de general.
  • capacidades cifradas. La clave de cifrado es desconocida por los usuarios, que deben limitarse a manipular las capacidades cifradas recibidas del sistema operativo. Este sistema se ajusta bien a las necesidades de los sistemas operativos distribuidos.
  • Listas de control de acceso asociadas a cada capacidad.

Las capacidades no se corresponden directamente con las necesidades de los usuarios y son menos intuitivas que las ACL. Debido a ello, la mayoría de los sistemas operativos proporcionan ACL como mecanismo de protección. Sin embargo, las capacidades tienen varias ventajas:

  • Son muy útiles para incluir información de protección para un proceso en particular.
  • El mecanismo de comprobación de derecho es muy sencillo.
  • Se adaptan muy bien a sistemas distribuidos.

Su gran desventaja sigue siendo que la revocación de accesos a un objeto puede ser ineficiente si se desea hacerla con criterios de selectividad entre dominios o para revocar derechos parciales.

6.1 Revocación de derechos de acceso: El principal problema de las capacidades es que, en un sistema dinámico, pueden existir cientos de capacidades concedidas para acceder a un objeto, lo que hace muy difícil su control. Por lo cual, revocar los derechos de acceso para un objeto en particular es muy difícil, ya que el sistema debe buscar todas las capacidades existentes sobre el mismo para aplicar la revocación de derechos.

Donde las capacidades se pueden implementar, para facilitar la revocación de derechos de

Acceso como:

  • Lista de control de acceso en la cual se puede mantener una lista desde cada objeto a todas sus capacidades. Si hay modificaciones, se recorre dicha lista y se aplican.
  • Claves de versión donde cada objeto tiene una clave maestra que se copia en cada nueva capacidad sobre ese objeto.
  • lndirecciones de manera que las capacidades no apunten directamente a los objetos, sino a una tabla global intermedia desde la cual se apunta al objeto.

 

 

 

 

Pagina Principal | | ©2005 Universidad Tecnologica de Panama |