sábado, 18 de diciembre de 2010

5.5 Mecanismos de protección

Dominios de protección

Muchos objetos del sistema necesitan protección, tales como la CPU, segmentos de memoria, unidades de disco, terminales, impresoras, procesos, archivos, bases de datos, etc.

Cada objeto se referencia por un nombre y tiene habilitadas un conjunto de operaciones sobre él.

Un dominio es un conjunto de parejas (objeto, derechos):

  • Cada pareja determina:
    • Un objeto.
    • Un subconjunto de las operaciones que se pueden llevar a cabo en él.

Un derecho es el permiso para realizar alguna de las operaciones.

Es posible que un objeto se encuentre en varios dominios con “distintos” derechos en cada dominio.

Un proceso se ejecuta en alguno de los dominios de protección:

  • Existe una colección de objetos a los que puede tener acceso.
  • Cada objeto tiene cierto conjunto de derechos.

Los procesos pueden alternar entre los dominios durante la ejecución, una llamada al S.O. provoca una alternancia de dominio, en algunos S.O. los dominios se llaman anillos, una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada dominio es mediante una matriz:

  • Los renglones son los dominios.
  • Las columnas son los objetos.
  • Cada elemento de la matriz contiene los derechos correspondientes al objeto en ese dominio, por ej.: leer, escribir, ejecutar.

Lista de control de acceso

Las “matrices de protección” son muy grandes y con muchos lugares vacíos:

  • Desperdician espacio de almacenamiento.
  • Existen métodos prácticos que almacenan solo los elementos no vacíos por filas o por columnas.

La lista de control de acceso (ACL: access control list):

  • Asocia a cada objeto una lista ordenada con:
    • Todos los dominios que pueden tener acceso al objeto.
    • La forma de dicho acceso (ej: lectura (r), grabación (w), ejecución (x)).

Una forma de implementar las ACL consiste en:

  • Asignar tres bits (r, w, x) para cada archivo, para:
    • El propietario, el grupo del propietario y los demás usuarios.
  • Permitir que el propietario de cada objeto pueda modificar su ACL en cualquier momento:
    • Permite prohibir accesos antes permitidos.

Capacidades

La matriz de protección también puede dividirse por renglones:

  • Se le asocia a cada proceso una lista de objetos a los cuales puede tener acceso.
  • Se le indican las operaciones permitidas en cada uno.
  • Esto define su dominio.

La lista de objetos se denomina lista de posibilidades y los elementos individuales se llaman posibilidades.

Cada posibilidad tiene:

  • Un campo tipo:
    • Indica el tipo del objeto.
  • Un campo derechos:
    • Mapa de bits que indica las operaciones básicas permitidas en este tipo de objeto.
  • Un campo objeto:
    • Apuntador al propio objeto (por ej.: su número de nodo-i).

Los principales métodos de protección son:

  • Arquitectura marcada:
    • Necesita un diseño de hardware en el que cada palabra de memoria tiene un bit adicional:
      • Indica si la palabra contiene una posibilidad o no.
      • Solo puede ser modificado por el S.O.
  • Lista de posibilidades dentro del S.O.:
    • Los procesos hacen referencia a las posibilidades mediante su número.
  • Lista de posibilidades cifrada dentro del espacio del usuario:
    • Cada posibilidad está cifrada con una clave secreta desconocida por el usuario.
    • Muy adecuado para sistemas distribuidos.

Generalmente las posibilidades tienen derechos genéricos aplicables a todos los objetos, por ej.:

  • Copiar posibilidad:
    • Crear una nueva posibilidad para el mismo objeto.
  • Copiar objeto:
    • Crear un duplicado del objeto con una nueva posibilidad.
  • Eliminar posibilidad:
    • Eliminar un dato dentro de la lista-c sin afectar al objeto.
  • Destruir objeto:
    • Eliminar en forma permanente un objeto y una posibilidad.

Canales encubiertos

5.4 Seguridad

Los sistemas de archivos generalmente contienen información muy valiosa para sus usuarios, razón por la que los sistemas de archivos deben protegerla.

El entorno de seguridad

Se entenderá por seguridad a los problemas generales relativos a la garantía de que los archivos no sean leídos o modificados por personal no autorizado; esto incluye aspectos técnicos, de administración, legales y políticos.

Dos de las más importantes facetas de la seguridad son:

  • La pérdida de datos.
  • Los intrusos.

Algunas de las causas más comunes de la pérdida de datos son:

  • Actos y hechos diversos, como incendios, inundaciones, terremotos, guerras, revoluciones, roedores, etc.
  • Errores de hardware o de software, como fallas en la CPU, discos o cintas ilegibles, errores en los programas, etc.
  • Errores humanos, por ej., entrada incorrecta de datos, mal montaje de cintas o discos, ejecución incorrecta de programas.

Respecto del problema de los intrusos, se los puede clasificar como:

  • Pasivos: solo desean leer archivos que no están autorizados a leer.
  • Activos: desean hacer cambios no autorizados a los datos.

Algunos tipos de intrusos son los siguientes:

  • Curiosidad casual de usuarios no técnicos.
  • Conocidos (técnicamente capacitados) husmeando.
  • Intentos deliberados por hacer dinero.
  • Espionaje comercial o militar.

También debe señalarse la posibilidad del ataque del caballo de Troya:

  • Modificar un programa normal para que haga cosas adversas además de su función usual.
  • Arreglar las cosas para que la víctima utilice la versión modificada.

Además debe considerarse la posibilidad de ataques al estilo del gusano de Internet:

  • Fue liberado por Robert Tappan Morris el 02/11/88 e hizo que se bloquearan la mayoría de los sistemas Sun y Vax de Internet.
  • Constaba de un programa arrancador y del gusano propiamente dicho.

Una forma de probar la seguridad de un sistema es contratar un grupo de expertos en seguridad, conocido como el equipo tigre o equipo de penetración, cuyo objetivo es intentar penetrar el sistema de seguridad para descubrir sus falencias y proponer soluciones.

Fallas de seguridad famosas

Ataques genéricos contra la seguridad

Los virus computacionales:

  • Constituyen una categoría especial de ataque.
  • Son un enorme problema para muchos usuarios.
  • Son fragmentos de programas que se añaden a programas legítimos con la intención de infectar a otros.
  • Un virus difiere de un gusano en lo siguiente:
    • Un virus está a cuestas de un programa existente.
    • Un gusano es un programa completo en sí mismo.
  • Los virus y los gusanos intentan diseminarse y pueden crear un daño severo.
  • Generalmente se propagan a través de copias ilegítimas de programas.
  • Comúnmente los virus se ejecutan e intentan reproducirse cada vez que se ejecuta el programa que los aloja.
  • Frecuentemente los problemas con los virus son más fáciles de evitar que de curar:
    • Utilizar software original adquirido en comercios respetables.
    • No utilizar copias “piratas”.
    • Efectuar controles rigurosos y frecuentes con programas antivirus actualizados.
    • Trabajar con metodología y disciplina rigurosa en el intercambio de discos y en las copias a través de redes de comunicación de datos.

Principios de diseño para la seguridad

El diseño del sistema debe ser público, ya que pensar que el intruso no conocerá la forma de funcionamiento del sistema es un engaño.

El estado predefinido debe ser el de no acceso, dado que los errores en donde se niega el acceso válido se reportan más rápido que los errores en donde se permite el acceso no autorizado.

Verificar la autorización actual:

  • El sistema no debe:
    • Verificar el permiso.
    • Determinar que el acceso está permitido.
    • Abandonar esta información para su uso posterior.
  • El sistema tampoco debe:
    • Verificar el permiso al abrir un archivo y no después de abrirlo, pues un acceso habilitado permanecería como válido aunque haya cambiado la protección del archivo.

El mecanismo de protección debe ser simple, uniforme e integrado hasta las capas más bajas del sistema:

  • Dotar de seguridad a un sistema inseguro es casi imposible.
  • La seguridad no es una característica que se pueda añadir fácilmente.

El esquema de seguridad debe ser sicológicamente aceptable:

  • Los usuarios no deben sentir que la protección de sus archivos les implica demasiado trabajo:
    • Podrían dejar de proteger sus archivos.
    • Se quejarían en caso de problemas.
    • No aceptarían fácilmente su propia culpa

Verificación de autenticidad de usuarios

Muchos esquemas de protección se basan en la hipótesis de que el sistema conoce la identidad de cada usuario.

La identificación de los usuarios se conoce como la autentificación de los usuarios.

Muchos métodos de autentificación se basan en:

  • La identificación de algo conocido por el usuario.
  • Algo que posee el usuario.
  • Algo que es el usuario.

Contraseñas

Son la forma de autentificación más utilizada, son de fácil comprensión e implementación, deben almacenarse cifradas (encriptados).

Una mejora al esquema de contraseñas consiste en:

  • Asociar un número aleatorio de “n” bits a cada contraseña.
  • El número aleatorio se modifica al cambiar la contraseña.
  • El número se guarda en el archivo de contraseñas en forma no cifrada.
  • Se concatenan la contraseña y el número aleatorio y se cifran juntos.
  • El resultado cifrado se almacena en el archivo de contraseñas.
  • Se aumenta por 2 n el espectro de búsqueda: a esto se llama salar el archivo de contraseñas.

Una protección adicional consiste en hacer ilegible el archivo de contraseñas encriptados.

Otra protección adicional consiste en que el sistema sugiera a los usuarios contraseñas generadas según ciertos criterios; con esto se evita que el usuario elija contraseñas muy sencillas.

También es conveniente que el sistema obligue al usuario a cambiar sus contraseñas con regularidad; se puede llegar a la contraseña de una sola vez.

Identificación Física

Una posibilidad es la verificación de si el usuario tiene cierto elemento (generalmente una tarjeta plástica con una banda magnética), que generalmente se combina con una contraseña.

Otro aspecto consiste en la medición de características físicas difíciles de reproducir:

  • Huellas digitales o vocales.
  • Firmas.
  • Longitud de los dedos de las manos.

Medidas Preventivas

· Limitar los intentos de acceso fallidos y registrarlos.

· Registrar todos los accesos.

· Tender trampas para atrapar a los intrusos.