Es más fácil obtener
seguridad si hay un modelo claro de lo que se debe proteger y de a quién se le
permite hacer qué cosa, nos concentraremos en unos cuantos modelos generales y en
los mecanismos para llevarlos a cabo.
Dominios de protección
Un dominio es un conjunto de pares
(objeto, permisos). Cada par especifica un objeto y cierto subconjunto de las
operaciones que se pueden realizar en él. Un permiso en este contexto indica el
permiso para realizar una de las operaciones. A menudo, un dominio corresponde
a un solo usuario y le indica lo que puede hacer y lo que no, pero un dominio
también puede ser más general que sólo un usuario. Por ejemplo, los miembros de
un equipo de programación que trabajan en cierto proyecto podrían pertenecer al
mismo dominio, de manera que todos tengan acceso a los archivos del proyecto.
La manera en que se
asignan los objetos a los dominios depende de los detalles sobre quién necesita
saber qué. Sin embargo, uno de los conceptos básicos es el POLA (Principle of Least Authority, Principio de menor autoridad),
o la necesidad de saber. En general, la seguridad funciona mejor cuando cada
dominio tiene los mínimos objetos y privilegios para realizar su trabajo; y no más.
Listas de control de acceso
La mayoría de los
dominios no tienen acceso a la mayoría de los objetos, por lo que se
desperdicia mucho espacio en disco al almacenar una matriz muy grande y en su
mayor parte vacía. Existe un método práctico: almacenar la matriz por columnas y
después almacenar solo los elementos no vacíos, esta técnica consiste en
asociar con cada objeto una lista (ordenada) que contenga todos los dominios
que pueden acceder al objeto, y la forma de hacerlo. A esta lista se le conoce
como Lista de control de acceso
(Access Control List, o ACL).
Capacidades
La otra manera de almacenar
la matriz es por filas. Al utilizar este método, a cada proceso se le asocia
una lista de objetos que puede utilizar, junto con una indicación de las
operaciones permitidas en cada objeto; en otras palabras, su dominio. A esta
lista se le conoce como lista de
capacidades (o lista-C) y a los
elementos individuales que contiene se les conoce como capacidades, cada capacidad otorga al propietario ciertos derechos
sobre un objeto.
Además de los derechos específicos dependientes del objeto, como
lectura, escritura y ejecución, las capacidades por lo general tienen permisos
genéricos que se pueden aplicar a todos los objetos. Algunos ejemplos de
permisos genéricos son:
1. Capacidad de copia: crea una nueva capacidad para el mismo objeto.
2. Copiar objeto: crea un objeto duplicado con una nueva capacidad.
3. Eliminar capacidad: elimina una entrada de la lista-C; el objeto no
se ve afectado.
4. Destruir objeto: elimina un objeto y una capacidad de manera
permanente.
Sistemas y base de cómputo confiables
En el mundo de la seguridad, todos hablan con frecuencia sobre los sistemas
confiables en vez de sistemas seguros. Éstos son sistemas que han declarado
formalmente requerimientos de seguridad y cumplen con ellos. En el centro de
todo sistema confiable hay una TCB (Trusted Computing Base, Base
de cómputo confiable) mínima que consiste en el hardware y software necesarios
para cumplir con todas las reglas de seguridad. Si la base de cómputo confiable
funciona según las especificaciones, no se puede comprometer la seguridad el
sistema, sin importar qué otra cosa esté mal.
Las funciones del sistema operativo que deben formar parte de la TCB
son: creación de procesos, cambio de procesos, administración del mapa de
memoria y parte de la administración de archivos y de la E/S. En un diseño
seguro es frecuente que la TCB esté muy separada del resto del sistema
operativo para poder minimizar su tamaño y verificar que sea correcto.
Seguridad multinivel
La mayoría de los sistemas operativos permiten a los usuarios
individuales determinar quién puede leer, escribir y ejecutar sus archivos y demás
objetos, a esta directiva se le conoce como control de acceso discrecional.
En muchos entornos este modelo funciona bien, pero hay otros en donde se requiere
una seguridad más estricta, como en la computación militar, los departamentos
de patentes corporativas y los hospitales.
En estos entornos, la organización ha establecido reglas sobre qué es lo
que puede ver cada quién, y los soldados, abogados o doctores no pueden
modificar estas reglas, por lo menos no sin antes obtener un permiso especial
del jefe. Estos entornos necesitan controles de acceso obligatorio para
asegurar que el sistema implemente las directivas de seguridad establecidas,
además de los controles de acceso discrecional estándar. Lo que hacen estos
controles de acceso obligatorio es regular el flujo de información, para
asegurar que no se fugue de una manera que no esté considerada.
No hay comentarios:
Publicar un comentario