biba

33
Resumen Este artículo tiene por objetivo hacer una descripción del modelo de seguridad Biba, teniendo como punto de partida el modelo de Bell-LaPadula debido a su parecido modelo matemático, haciendo énfasis en las implicaciones del cambio del dominio de las reglas, además de mostrar ejemplos sobre su uso, y de la manera como se haría su implementación teniendo como alternativas el uso de patrones de software de seguridad y de lenguajes de seguridad. Palabras clave: Modelos de seguridad, Biba, Integridad 1. Introducción [1] La seguridad en las organizaciones es considerada desde hace tiempo un factor primordial, pero el enfoque sobre la forma y los elementos a proteger ha cambiado radicalmente debido a los medios que se utilizan para romper las medidas de seguridad que buscan proteger los activos más importantes de una organización. Desde los años 60 las organizaciones prestaban más atención a la seguridad física, pero a raíz de desarrollos en el El Modelo de Seguridad Biba Edison Castaño Dario Melo Juan Pablo Garzón Ruiz Andres Gonzalez Estudiantes Maestría en Ingeniería de Sistemas y Universidad de los Andes, Bogotá, Colombia e-mail: [email protected] Febrero de 2003

Upload: alan-castro

Post on 30-Jul-2015

325 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Biba

Resumen

Este artículo tiene por objetivo hacer una descripción del modelo de seguridad Biba, teniendo como punto de partida el modelo de Bell-LaPadula debido a su parecido modelo matemático, haciendo énfasis en las implicaciones del cambio del dominio de las reglas, además de mostrar ejemplos sobre su uso, y de la manera como se haría su implementación teniendo como alternativas el uso de patrones de software de seguridad y de lenguajes de seguridad.

Palabras clave:

Modelos de seguridad, Biba, Integridad

1. Introducción [1]

La seguridad en las organizaciones es considerada desde hace tiempo un factor primordial, pero el enfoque sobre la forma y los elementos a proteger ha cambiado radicalmente debido a los medios que se utilizan para romper las medidas de seguridad

que buscan proteger los activos más importantes de una organización.

Desde los años 60 las organizaciones prestaban más atención a la seguridad física, pero a raíz de desarrollos en el campo de las redes de comunicaciones e internet, permiten nuevas formas y medios de ataque, que ya no son físicos sino remotos desde cualquier lugar del mundo con igual o mayor facilidad e impacto que los ataques físicos.

Entre los elementos para proteger en una organización la información se ha convertido en uno de los principales activos. Esta importancia se debe entre otras razones al avance tecnológico y a la utilización de herramientas informáticas que permiten agilizar los procesos de tratamiento de datos, con el fin obtener resultados importantes para la organización. A pesar de su importancia, muchas empresas no le prestan el debido cuidado ya que descuidan el proceso de diseño de sus sistemas de manera que estos no cumplen con las mínimas normas de protección.

El Modelo de Seguridad Biba

Edison CastañoDario Melo

Juan Pablo Garzón RuizAndres Gonzalez

Estudiantes Maestría en Ingeniería de Sistemas y ComputaciónUniversidad de los Andes, Bogotá, Colombia

e-mail: [email protected] Febrero de 2003

Page 2: Biba

Un sistema de información debe estar protegido adecuadamente en contra de cualquier intento de lecturas o modificaciones a la información respondiendo a unas políticas para la organización. Además la información debe estar reglamentada de acuerdo a unos perfiles de usuario en donde se define claramente la información a la que puede tener acceso, el tipo de operaciones que puede realizar (actualizaciones, lecturas, etc.) de acuerdo a las labores propias de su trabajo y el carácter de importancia.

Es en esta parte donde son importantes los esquemas de seguridad y de manejo de información, en donde se definen etiquetas y se cataloga la información de acuerdo al grado de secreto que se posea o el nivel de sensibilidad.

2. Conceptos Preliminares

Existe gran variedad de modelos de seguridad, y a la vez existe gran cantidad de elementos y bases que comparten y relacionan, por lo tanto en esta parte se introduce a los conceptos preliminares de los modelos de seguridad que sirven de base para entender el Modelo de Seguridad Biba.

2.1. Aspectos básicos de seguridad[2]

Cuando se habla de seguridad de la información, se busca el cumplimiento básicamente de tres aspectos básicos que se deben preservar o garantizar, y son: Confidencialidad, Integridad y Disponibilidad.

Se entiende la confidencialidad como que la información pueda ser “vista” por quien tiene ese derecho y de acuerdo al nivel de acceso permitido. En el esquema militar se observa una clara tendencia a garantizar este aspecto de seguridad, debido al nivel de sensibilidad de la información que es manejada por ellos, solo algunas personas que tienen un nivel de clasificación que por lo menos es superior o igual a la información presentada entonces puede tener acceso a esta.

En cuanto a la Integridad, se refiere a la forma en que protegemos la información de cambios intencionales o accidentales no autorizados (prevenir que la información se contamine). A través de este control garantizamos que la información es precisa y se mantiene en el estado que los usuarios esperan. Sobre esto lo principal es brindar mecanismos de protección de tal forma que la información se mantenga integra y se puedan prevenir fraudes y errores.

Por último, a nivel de la disponibilidad lo que se quiere es garantizar que la información se encuentre lista a ser accedida cuando se necesita.

Una vez se identificaron los diferentes aspectos que se deben “garantizar” para un adecuado nivel de seguridad de la información, aparece el concepto de los modelos de seguridad. Estos nos permiten tener una certeza formal de la validez de un esquema de seguridad donde a través de una sustentación matemática (formal) se puede comprobar si un sistema es realmente seguro. En resumen un modelo de

2

Page 3: Biba

seguridad se trata de una definición formal de una política de seguridad.

En la actualidad se tienen propuestas de modelos que nacieron de la mano con el modelo militar (muchos de estos estudios fueron patrocinados por el gobierno), entre los mas destacados aparece el modelo de Bell-LaPadula [3], el cual se concentra en el aspecto de la confidencialidad (Protección de Secretos), y el modelo de integridad de BIBA [4] el cual es un modelo similar al propuesto por Bell-LaPadula y que se enfoca en el manejo de la integridad de la información.

2.2. Control de Acceso

El control de acceso como su nombre lo indica hace referencia a la manera en que se administra el acceso a un recurso compartido. En cuanto al control de acceso de los modelos de seguridad básicamente se distinguen dos grupos. El primero el control de acceso mandatorio (MAC) que determina un conjunto de reglas para ser cumplidas a nivel del sistema. Y el segundo grupo el control de acceso discreto (DAC) en donde se definen las reglas para ser cumplidas a nivel de usuario[5].

Biba es una alternativa a las limitaciones de los modelos donde las reglas se definen para ser cumplidas por el usuario (DAC) por ejemplo con respecto a ataques del tipo Caballo de Troya, el problema se debe a la ejecución de un programa que hace procesos ocultos sin que el usuario que lo ejecuta se entere, haciendo todas las operaciones permitidas para el usuario. El control de acceso discreto es

incapaz de hacer algo en contra de esto ya que las políticas se definen para el usuario y no para el sistema. Por consiguiente en modelos MAC como Biba los elementos básicos como son los sujetos y objetos tienen un nivel de seguridad asignado que limita su interacción.

2.3. Modelos de máquinas de estados

Los modelos de seguridad como Biba se basan en modelos de máquinas de estados que buscan representar formalmente los estados de un sistema y en especial en los modelos de seguridad se interesan en aspectos de confidencialidad, integridad y disponibilidad del control de acceso[6]. El uso de estos modelos hace referencia básicamente a los siguientes puntos:

· Definir el conjunto de estados que están involucrados en el proceso de seguridad.· Chequear todos los estados de transición que llevan de un estado seguro, a uno igualmente seguro.· Chequear el estado inicial de sistema “seguro”.

Por lo tanto esta clase de modelos indica la forma en que el sistema esta en un estado seguro y bajo que reglas llevan a un estado igualmente “seguro”. Esto es lo que se conoce como el teorema básico de seguridad.

2.4 Elementos

Los elementos básicos que componen los modelos de seguridad MAC son:

3

Page 4: Biba

· Sujetos: Los elementos activos (hacen las operaciones) del sistema como por ejemplo las personas.· Objetos: Los elementos pasivos (sobre los cuales hacen las operaciones) como por ejemplo los archivos, discos y memoria.· Modos de acceso: Los permisos que tiene los sujetos para operar sobre los objetos.· Niveles de seguridad: Los permisos de los sujetos y la clasificación de los objetos.

La relación de los modos de acceso con los sujetos y objetos es determinada por una estructura matricial basado en el modelo de matriz de acceso que se desarrolló en los años 70[7]. La estructura matricial se utiliza en los modelos de seguridad para definir el conjunto de operaciones que un sujeto puede hacer sobre un objeto.

3. Contenido

En esta parte se hace una breve descripción del modelo Bell-LaPadula y más profunda del modelo Biba los cuales presentan aspectos afines, prestando especial atención en los impactos en el cambio de las reglas. Esta parte finaliza con una comparación entre Biba y BLP y la forma como se puede implementar Biba.

3.1. Modelo Bell-LaPadula

El modelo Bell-LaPadula se desarrolló en 1976 por la organización Mitre fundada por el gobierno de los Estados Unidos para elaborar los estudios

referentes a modelos de seguridad militar[8].

3.1.1. Propiedades

Las propiedades indican las reglas para definir un estado seguro. Por lo tanto la realización de la operación depende de sí se cumplen o no estas propiedades. Este modelo busca preservar la confidencialidad de la información y no tiene en cuenta otros principios como integridad o disponibilidad. A continuación en las tablas 1 y 2 se describen las propiedades[9]:

Tabla 1. ConvencionesConvenciones

Descripción SímboloSujeto S

Nivel Máximo de Seguridad MNivel de Seguridad O

Nivel Actual de Seguridad CObjeto O

Tabla 2.Reglas de Bell-LaPadulaReglas

Nombre de la

propiedad

Operación Descripción Fórmula

Básica Read Ningún sujeto puede tener

acceso de este tipo a cualquier objeto que tenga una clasificación superior que los

permiso del sujeto

fm(S) >= fo(O)

Estrella Append Ningún sujeto tendrá acceso a un objeto cuyo

nivel de seguridad no sea por lo menos el actual nivel de seguridad del

sujeto

fc(S) <= fo(O)

Estrella Read-Write

Ningún sujeto tendrá acceso a un objeto cuyo

nivel de

fc(S)=fo(O)

4

Page 5: Biba

seguridad no sea igual al actual

nivel de seguridad del

sujetoEstrella Read Ningún sujeto

tendrá acceso a un objeto cuyo

nivel de seguridad no sea

a lo sumo, el actual nivel de seguridad del

sujeto

fc(S) >= fo(O)

Matriz - La operación que se desee hacer el sujeto sobre un

recurso(archivo) debe ser

subconjunto de las propiedades definidas en la matriz para este archivo a este

sujeto

{o1} {o1,o2}

En la tabla 2 se describen las tres propiedades del modelo Bell-LaPadula que indican sí el sistema esta o no en un estado seguro.

La primera llamada la propiedad básica indica que un sujeto solo puede leer los objetos cuyo nivel de seguridad sea menor o igual que el nivel de seguridad del sujeto. un ejemplo gráfico de esta relación se muestra en la figura 1.

Figura 1. Propiedad Básica

La segunda propiedad llamada la propiedad estrella indica que solo se permiten escrituras cuando el nivel de seguridad del sujeto es menor o igual que el nivel de seguridad del objeto, un ejemplo gráfico de esta relación se muestra en la figura 2.

Figura 2. Propiedad estrella

Y por último la propiedad de acceso discrecional basada en la matriz de acceso donde se establecen los permisos que un sujeto tiene sobre un objeto, un ejemplo gráfico de esta relación se muestra en la figura 3.

5

Page 6: Biba

Figura 3. Propiedad matriz

3.1.2. Ejemplo

Teniendo como modelo de seguridad BLP y como niveles de seguridad los de la tabla 4. Se quiere saber si el usuario 1 (Nivel de seguridad Ultra-Secreto) puede leer el archivo 2(Nivel de seguridad Público).

Tabla 4. Niveles de seguridadUltra-Secreto Mayor Nivel de

SeguridadSecreto ...Público Menor Nivel de

Seguridad

Para saber si se puede o no hacer la operación se debe verificar cada uno de las propiedades del modelo, tal como se muestra en la tabla 5.

Tabla 5. Aplicación de las propiedadesPropiedad Operación Comparación Resultado y

AlternativaPropiedad

BásicaRead UltraSecreto

>= Público(Sí)

Propiedad Estrella

Read UltraSecreto >= Público

(Sí)

Propiedad Matriz

{Lectura} {Escritura}

(No) Adicionar a la matriz el permiso de

lectura

En este caso no se puede hacer la operación porque no se cumple la propiedad de la matriz.

3.2. Biba

Creado por K. J. Biba en 1977, y publicado en Mitre un año después del modelo Bell-LaPadula. Biba se centra sobre la protección contra usuarios de

un nivel inferior que puede escribir en cualquiera de los niveles superiores en los cuales está ubicado. Lo cual permite a un usuario de un bajo nivel de seguridad sobrescribir documentos altamente secretos, a menos que se adoptara un conjunto de políticas de integridad.

3.2.1. Modelos de Integridad

Como se menciono la integridad se refiere a la prevención de modificaciones no autorizadas de información, además que esta debe ser consistente internamente y con los objetos del mundo real que representa y que el sistema ejecuta correctamente.

Los sistemas de integridad tienen que ver con la conducta del sistema de acuerdo a las expectativas del ambiente, aun cuando tengan que enfrentar ataques.

La integridad de los datos debe ser consistente tanto internamente como externamente con respecto a las entidades del mundo real que representan

En resumen la integridad de los datos tiene las siguientes metas:

· Prevenir las modificaciones no autorizadas· Mantener la consistencia interna y externa· Mantener otros atributos de calidad de los datos· Prevenir las modificaciones autorizadas pero impropias

3.2.2 Descripción

6

Page 7: Biba

Biba es un modelo de integridad que supone una separación en niveles de integridad (análogo a los niveles de seguridad) con una relación ordenada. Los objetos son asignados a clases de integridad de acuerdo al daño que sufrirían si fueran modificados de manera inapropiada, y los usuarios asignados a clases de integridad basados en su veracidad.

Los niveles de integridad son interpretados como niveles de confidencialidad del modelo BLP, y el nivel de integridad de un sujeto está basado en el nivel de integridad del usuario que representa y en sus necesidades.

3.2.3. Elementos [10]

Biba presenta varias opciones de integridad, todos basados en las mismas entidades pero representando diferentes políticas de integridad. Una opción es el modelo que representa la política de integridad estricta la cual intenta ser un doble de la política de confidencialidad de Bell-LaPadula.

Los elementos del modelo son:

S, O, I: Conjunto de sujetos, objetos y niveles de integridad.

il: Función que define el nivel de integridad de cada sujeto y objeto.

leq: Relación parcial ordenada sobre los niveles de integridad, menor que o igual.

min: Función que regrese el límite inferior del conjunto de I especificado.

o, m: Relaciones que definen la habilidad de un sujeto s para

observar o modificar (m) un objeto.

i: Relación que define la habilidad de un sujeto s1 para invocar a otro sujeto s2.

3.2.4. Propiedades [10]

La política de integridad estricta se caracteriza por tres propiedades:

1. Para que un sujeto observe a un objeto, el sujeto debe tener un nivel de integridad menor o igual que el nivel de integridad del objeto, tal como se muestra en la figura en la figura 4.

Figura 4.Popiedad de lectura hacia arriba

2. Para que un sujeto modifique un objeto, el objeto debe tener un nivel de integridad menor o igual que el nivel de integridad del sujeto, tal como se muestra en la figura 5.

7

Page 8: Biba

Figura 5. Propiedad de escritura hacia abajo

3. Para que un sujeto 1 invoque a un sujeto 2, el sujeto 2 debe tener un nivel de integridad menor o igual que el nivel de integridad del sujeto 1.

En resumen las dos primeras propiedades indican que un sujeto no puede observar a un objeto de menor integridad y no puede modificar a un objeto de más alta integridad, y la tercera propiedad establece que un sujeto no puede invocar a otro sujeto de más alta integridad, tratando de prevenir que el sujeto invoque cualquier modificación indirecta de objetos de más alta integridad.

El modelo Biba prueba que bajo las propiedades de integridad estricta, si existe una ruta de transferencia de un objeto o(1) a un objeto o(n+1) entonces el nivel de integridad del objeto o(n+1) es menor o igual que el nivel de integridad del objeto o(1), lo cual indica que la información no se transmite a un nivel de integridad más alto.

Biba escoge la dualidad matemática de la política de Bell-LaPadula en donde existe un conjunto de niveles de integridad, una relación entre ellos y dos reglas las cuales, si son implementadas apropiadamente aseguran un estado seguro del sistema.

La figura 6 muestra un ejemplo del esquema de la política de integridad Biba.

Modelo de Integridad

Alto

No escribir ...n+1

n n-1

No leer ...Bajo

ConvencionesNo escribir No leer

Figura 6. Política de integridad Biba.

Debido a que la política de integridad es equivalente a la política de seguridad, cualquier restricción que aplique a una aplicara a la otra. Por ello el problema de precisión permanece, y la información tiende hacia los niveles de integridad más bajos posibles.Si se desea tanto integridad como confidencialidad, se tendrá un sistema donde la información tienda hacia los niveles mas altos de confidencialidad y a los niveles más bajos de integridad, en otras palabras, se tendrá que tratar con información altamente clasificada y con baja integridad.

Otro efecto de la combinación de integridad y confidencialidad es que el sistema tiende hacia un conjunto de subsistemas aislados. Un ejemplo de combinar las políticas de Bell-LaPadula con Biba se describe en la figura 7.

Modelo Combinado

Integridad (Biba)

Confidencialidad (Bell-LaPadula)

Combinado

Alto

No escribir No leer No acceso...

n+1

n

n-1

No leer No escribir No acceso...

8

Page 9: Biba

Bajo

Convenciones

No escribir

No leer

No acceso

Figura 7. Seguridad e integridad combinada

Como se presenta en la figura 7 el resultado es que no es posible una comunicación entre usuarios de diferentes niveles. Así el sistema es seguro en el sentido de aislar usuarios, pero no facilita el compartir recursos. Un problema de eliminar el compartimiento de recursos es que ello afecta el propósito de tener conjuntos de usuarios juntos en un mismo sistema. Otro problema más importante es que ello significa una gran duplicación de esfuerzos. Por ejemplo, un usuario en un área no podría usar el editor de texto usado por otra área. Cada área tendría que embarcarse de manera separada en proyectos de investigación y desarrollo siendo ignorantes sobre los resultados de los colegas.

3.3. Paralelo entre los Modelos[11]

Como se menciono Bell-LaPadula esta enfocado hacia la confidencialidad mientras que Biba orienta sus controles a lograr la integridad. Esto da ha entender que tanto la integridad se encuentra en la cima del lattice para el modelo de Biba, como la confidencialidad en el modelo de Bell-LaPadula, teniendo flujo de información de arriba hacia abajo en Bell-LaPadula, mientras que en su similar tendremos un flujo contrario (de abajo hacia arriba).

Estas posiciones en el lattice de los modelos no son obligatorias, después de todo tanto la cima como el fondo son posiciones relativas, por lo tanto para ser equivalentes los modelos podrían establecer que la integridad baja se encuentra en el tope del lattice y que la integridad alta se encuentra en el fondo. Entonces se puede usar los controles del modelo BLP para forzar los flujos de información requeridos por el modelo Biba, como se muestra en la figura 8.

Figura 8. Comparación de integridad

De igual forma si en el modelo Biba se lleva la baja confidencialidad al tope mientras la alta confidencialidad se lleva al fondo del lattice, empleando los controles de Biba para forzar los flujos de información, tal como se muestra en la figura 9

Figura 9. Comparación de confidencialidad

9

Page 10: Biba

Esto lleva a decir que no hay diferencias fundamentales de manejo de flujo entre los modelos de Biba y Bell-LaPadula, ya que ambos modelos se preocupan por el flujo de información en el lattice, siendo este permitido solo en un sentido para los dos modelos. Debido a que la dirección es relativa, un sistema que pueda impulsar uno de los modelos también puede impulsar el otro. Siendo posible combinar estos modelos en situaciones donde es necesario tanto la confidencialidad como la integridad, tal como se representa en la figura 7.

3.4. Implementación

Son varias las aplicaciones y áreas en las cuales se construyen sistemas de seguridad multinivel como por ejemplo SCOMP, Blacker, NRL, MLS, CMW, por solo nombrar algunos ejemplos[12] [13]. A continuación se describen los elementos principales a tener en cuenta en la implementación, tal como son los patrones de seguridad, y lenguajes de seguridad.

3.4.1 Elementos

Biba es un modelo de la clase de modelos multinivel, debido a que tanto usuarios como objetos tiene asignado un nivel de seguridad de un conjunto común de niveles. En esta clase de modelos, existe un conjunto de reglas para establecer si una transición producirá o no un estado seguro, como por ejemplo las definidas en la tabla 2.

A la vez existen otras reglas que son igualmente importantes en la implementación como son las reglas que definen la transición de un estado seguro a otro, y además se utilizan para alterar la matriz y son necesarias para preservar las propiedades de seguridad, estas reglas se indican a continuación en la tabla 6.

Tabla 6. Reglas de transiciónReglas de transición

Obtener acceso(leer, escribir, ejecutar, o leer y escribir), para inicializar acceso a un objeto por una solicitud de un sujeto.Soltar acceso, el inverso de obtenerDar accesos, permitir el control de un objeto, para extender la designación de acceso a otro sujeto.Rescindir acceso, inverso de dar accesos.Crear objetos, para activar un objeto inactivo.Eliminar Objetos, desactivar un objeto activo.Cambiar el nivel de seguridad, permite a un sujeto alterar su actual nivel de seguridad.

Por lo tanto las reglas de transición inciden en el modelo, debido a que indican si el paso de un estado seguro nos lleva o no a otro estado seguro. Por ejemplo un sujeto puede obtener o liberar un objeto, si tiene el atributo de control del objeto, y si se cumplen las propiedades del modelo.

3.4.2 Patrones de seguridad

Los patrones encapsulan experiencia y buenas prácticas de diseño, y proveen un lenguaje común para diseñadores[14], por lo tanto es conveniente cuando se habla de implementación tener en cuenta en el diseño estas propuestas.

10

Page 11: Biba

Un elemento del modelo es la matriz de acceso donde se especifican los permisos que un usuario tiene sobre un objeto, y sobre el cual aplican las reglas para modificar la matriz que se especifican en la tabla 6.

La matriz trabaja básicamente con dos grupos de reglas. La primera, la regla básica donde un sujeto(s), tiene un tipo de acceso(a) a un objeto(o), y se denota con una tupla de la forma (s,a,o). La segunda la regla extendida donde se adiciona un elemento llamado predicado que indica la condición de acceso y manejo de la matriz, donde se contemplan las reglas de la tabla de transición.

Una propuesta se describe en el siguiente diagrama de clases a continuación:

Figura 10. Diagrama de clases. Patron de Seguridad

En la opción anterior existen tres clases principales, correspondientes al sujeto, objeto y a la autorización.

Un sujeto como por ejemplo un usuario tiene asociado un identificador, y un nivel de seguridad, por otro lado el objeto debe tener como características un identificador, un nivel de seguridad, y por último la clase derecho que determina el tipo de acceso del sujeto sobre el objeto, además de otras características que tiene el usuario para cambiar el estado del sistema (predicados), y que involucra objetos.

11

Page 12: Biba

Figura 11.Diagrama de clases (Alternativa con roles, Patron de seguridad)

En otra opción se tiene en cuenta el control de acceso basados en el rol (papel) del usuario. Donde a los usuarios se les asigna un rol de acuerdo a las funciones y necesidades a las cuales tienen derecho[14]. En esta opción los usuarios son asignados por usuarios especiales llamados administradores teniendo así un modelo mandatorio.

En la propuesta correspondiente a la figura 11 se definen diferentes perfiles de usuario, que se relacionan directamente con las capacidades que tiene el usuario sobre las operaciones del sistema. En la clase derecho se determina el tipo de acceso de la categoría de usuario. Una de las ventajas tiene que ver con el tamaño de la matriz de permisos donde los sujetos no son cada una de las personas del sistema, haciendo matrices más manejables, un ejemplo se tiene en el manejo de archivos de unix, donde se tienen permisos para el dueño, para el grupo al cuál pertenece el dueño y para al resto.

Figura 12.Diagrama de clases (Alternativa con diferentes niveles, Patron de seguridad)

Otra alternativa es teniendo en cuenta diferentes clasificaciones dependencias (ventas, inventario). En esta alternativa los usuarios y datos son asignados a la clasificación [14].

3.4.3. Lenguaje de autorización (ASL)

El lenguaje de autorización es un intento para especificar una forma que se puede usar para modelar especificaciones de diferentes políticas de seguridad [14,15], por lo tanto en esta parte se describe está alternativa para el modelo Biba. Primero se describe de manera general el lenguaje, después el significado de los roles, grupos y acciones y por último la especificación para Biba acompañado de un ejemplo[16].

3.4.3.1. Descripción de las especificaciones del lenguaje de autorización(ASL)

El lenguaje define un conjunto de predicados con el objetivo que sean la base para la representación de las normas del modelo de seguridad, basado en que estas normas son lo suficiente para cualquier modelo. A pesar de esto existen algunos estudios que mencionan que este lenguaje no define los suficientes predicados para todo modelo de seguridad[16].

Pero cabe resaltar la propuesta como un intento para definir de manera estándar los requerimientos de control de acceso y la selección de políticas[14,15].

12

Page 13: Biba

A continuación en la tabla 7 y 8 se describen los predicados que componen el lenguaje ASL.

Tabla 7. Convenciones ASLConvenciones

Descripción Símbolo

Usuarios UTipos T

Objetos OGrupos GPapeles R

El conjunto de autorizaciones sin asignar

A

El conjunto de autorizaciones asignadas SA

Tabla 8. Predicados ASLPredicado Descripción

Cando(o,s,a) Representa la autorización explícita del administrador de seguridad de un sujeto para un objeto.

Dercando(o,s,a) Representa autorizaciones derivadas por el sistema por medio de reglas lógicas.

Do(o,s,sa) Resuelve los conflictos de las políticas acerca de la representación de las autorizaciones de un sujeto para un objeto.

Grant(o,s,R,sa) El predicado representa la autorización para permitir o denegar accesos a un objeto, siempre y cuando no se tenga una restricción.

Done(o,s,R,a,j) Representa una acción de ejecución un sujeto en un objeto.

Active(u,r) Representa el papel activo para un usuario

Dirin(s1,s2) Representa la relación directa entre sujetos

In(s1,s2) Representa la relación indirecta(deducida) entre sujetos

Typeof(o,t) Representa la relación de agrupamiento entre objetos

Error() Denota que ocurre un error.

Estas reglas se utilizan para describir los predicados, y de estas se derivan

las autorizaciones, resolución de conflictos y control de acceso[15].

3.4.3.2. Roles, grupos y acciones

Un rol al igual que un grupo es un conjunto de tuplas binarias de la forma (objeto, acción), donde el usuario con el rol x asume que puede desempeñar la acción al objeto, determinada al rol.

La diferencia entre roles y grupos, es que el rol puede ser asumido dinámicamente por el usuario, mientras el grupo es estático y se asigna por el administrador de seguridad.

Por otra parte en la tabla 9 a continuación, se muestran las acciones que se tienen en el lenguaje[15].

Tabla 9. Acciones ASLAcción Descripción

CreateRole( r ) Crear un papel para el sistema con el nombre del parámetro r de la acción.

AddtoRole(r,o,a) Acción que toma el argumento del papel con nombre del parámetro( r ) y adiciona la tupla de objeto acción (o,a).

CreateType(t) Es una acción que crea un objeto de nombre t.

AddtoType(t,o) Adiciona el objeto de nombre definido en el parámetro o y lo adiciona en el tipo de nombre definido en el parámetro t.

CreateGroup(g) Crea un grupo de nombre definido en el parámetro g.

13

Page 14: Biba

AddtoGroup(g,s) Asigna el sujeto s al grupo g.

CreateUser(u) Crea el usuario u con el nombre correspondiente al parámetro u

SetHr(o1,o2) Crea un árbol de objetos, donde o1 es pariente de o2.

3.4.3.3. Representación en ASL del modelo Biba[16]

El propósito es mostrar el uso de ASL para describir el modelo Biba.

Como requerimientos se debe tener:

Un conjunto de etiquetas L={li |i N}Un conjunto de estructuras lattice como un conjunto de tuplas S= {{li,lj} | li > lj } donde “mayor que” es un símbolo de relación dominante.La clasificación de objetos es un conjunto de tuplas así:OC={ {o,l}| o O, l L}La clasificación de usuarios es un conjunto de tuplas así:UC={ {u,l}| u U, l L}

El siguiente es un algoritmo para especificar en ASL el modelo Biba [16].

Paso 1: por cada etiqueta li L el administrador del sistema ejecuta las siguientes instrucciones:

createRole(RRi)createRole(WRi)

Como resultado se entran los siguientes predicados:

done ({RRi}, SSO, , createRole( RRi), t1 )

done ({WRi}, SSO, , createRole( WRi), t2 )

Paso2: Por cada tupla en el conjunto de la estructura (li, lj) S, El SSO ejecuta las siguientes acciones.

setHr (RRj, RRi)setHr (WRi, WRj)

Como resultado se entran los siguientes predicados:

done ({RRj, RRi}, SSO, , setHr( RRj, RRi), t3 )

done ({WRi, WRj}, SSO, , setHr( WRi, WRj), t4 )

Paso 3: El SSO entra las siguientes reglas en la base de datos de reglas.

dirIn (o1, o2) done ({o2, o1}, SSO, , setHr( o1, o2), t)

in (R1, R2) dirIn (R1, R2)

in (R1, R3) in (R1, R2) & in (R2, R3)

Donde o1, o2, R1, R2 y R3 son variables.

Paso 4: Por cada tupla en el conjunto de clasificación de objetos (o, li) OC. El SSO ejecuta las siguientes acciones.

addtoRole (RRi, o, +read)addtoRole (WRi, o, +write)

Como resultado se entran los siguientes predicados:

done ({RRi}, SSO, , addtoRole (RRi, o, +read), t5 )

14

Page 15: Biba

done ({WRi}, SSO, , addtoRole (WRi, o, +write), t6 )

Paso 5: Por cada tupla en el conjunto de clasificaciones del usuario (u,li) ) UC. El SSO entra las siguientes reglas en la base de datos de reglas.

grant (RRi, u, ,activate) do (RRi, u, activate)

do (RRi, u, activate) cando( RRi, u, activate)

cando( RRi, u, activate) .

grant (WRi, u, ,activate) do (WRi, u, activate)

do (WRi, u, activate) cando( WRi, u, activate)

cando( WRi, u, activate) .

Las reglas anteriores permiten a un usuario registrarse en el mismo nivel de seguridad.

done ({RRi}, u, {WRi}, activate (RRi), t+1 ) done ({WRi}, u, ,

activate (WRi), t )activate (u, RRi) done ({WRi}, u,

, activate (WRi), t )

done ({WRi}, u, {RRi}, activate (WRi), t+1 ) done ({RRi}, u, ,

activate (RRi), t )activate (u, WRi) done ({RRi}, u,

, activate (RRi), t )

Las reglas anteriores especifican que si un usuario asume un rol RRi el sistema puede automáticamente asignar el papel WRi, al mismo usuario y viceversa.

grant ( RRj, u, ,activate) dercando (RRj, u, activate)

dercando (RRj, u, activate) in (RRi, RRj)

grant (WRx, u, ,activate) dercando ( WRx, u, activate)

dercando ( WRx, u, activate) dercando ( RRj, u, activate)

Las reglas anteriores especifican que un usuario puede usar cualquier nivel de seguridad que sea dominado por la etiqueta de seguridad del usuario.

Paso 6: El SSO entra las siguientes reglas en la base de datos de reglas:

grant ( o, u, +read) dercando ( o, u, +read)

dercando (o, u, +read) active ( u, RRx) & done (RRx, SSO, , addtoRole (RRx, o, +read), t )

grant ( o, u, +write) dercando ( o, u, +write)

dercando (o, u, +write) active ( u, WRx) & in (WRx, WRy) & done

(WRx, SSO, , addtoRole (WRx, o, +write), t )

Las reglas anteriores permiten que el usuario lea y escriba en el mismo nivel de seguridad, y las siguientes leer arriba y escribir abajo.

grant ( o, u, +read) dercando ( o, u, +read)

dercando (o, u, +read) active ( u, RRx) & in (RRy, RRx) & done (RRy, SSO, , addtoRole (RRy, o, +read), t )

grant ( o, u, +write) dercando ( o, u, +write)

dercando (o, u, +write) active ( u, WRx) & in (WRx, WRy) & done

15

Page 16: Biba

(WRy, SSO, , addtoRole (WRy, o, +write), t )

3.4.3.4. Ejemplo del algoritmo ASL usando el modelo Biba

A continuación se muestra un ejemplo del uso de este algoritmo [16]

Siendo L = {l1,l2,l3,l4,l5,l6,l7,l8}Con l1 = (S, {JAVA, C++})l2 = (S, {JAVA})l3 = (S, {C++})l4 = (S, {})l5 = (P, {JAVA,C++})l6 = (P, {JAVA})l7 = (P, {C++})l8 = (P, {})

Con S, y P como niveles de seguridad, y siendo S > P.

Por lo tanto el conjunto de tuplas de la estructura lattice es:

S = {(l1,l2), (l1,l3), (l1,l5), (l2,l4), (l2,l6), (l3,l4), (l3,l7), (l4,l8), (l5,l6), (l5,l7), (l6,l8), (l7,l8) }

La tuplas se forman teniendo en cuenta que el primer término de la tupla es mayor o igual que el segundo, por ejemplo en el caso de (l1,l2) es l1 >= l2, donde ( S >= S y {JAVA} {JAVA,C++} ).

Una representación de la estructura lattice se encuentra en la figura 13.

El conjunto de tuplas de los objetos es:OC= {(JDK,l4), (JRE,l5), (MSVC,l6)}

Y el conjunto de tuplas de la clasificación de usuarios es:UC ={(Juan, l1)}

Teniendo en cuenta los datos mencionados se procede a aplicar el algoritmo para el modelo Biba.

Figura 13, Estructura lattice, ejemplo ASL

Paso 1: Crear el papel para cada una de las etiquetas.

createRole (RR1)createRole (WR1)

.

.createRole (RR8)createRole (WR8)

Por consiguiente se entran los siguientes predicados:

done({RR1}, SSO, , createRole (RR1), 1)

16

Page 17: Biba

done({WR1}, SSO, , createRole (WR1), 2)

.

.done({RR8}, SSO, , createRole

(RR8), 15)done({WR8}, SSO, , createRole

(WR8), 16)

Donde se utiliza el predicado done para ejecutar una acción de un sujeto en un objeto.

Paso 2:En este paso se define la relación entre los papeles de las etiquetas, determinado por la relación en la estructura lattice.

setHr(RR2, RR1)setHr(WR1, WR2)

.

.setHr(RR8, RR7)

setHr(WR7, WR8)

Por consiguiente se entran los siguientes predicados:

done({RR2, RR1},SSO, , setHr(RR2, RR1), 17)

done({WR1, WR2},SSO, , setHr(WR1, WR2), 18)

.

.done({RR8, RR7},SSO, ,

setHr(RR8, RR7), 39)done({WR7, WR8},SSO, ,

setHr(WR7, WR8), 40)

Paso 3: En este paso se describen las relaciones directas e indirectas del modelo.

dirin(RR2, RR1) done({RR2, RR1},SSO, ,

setHr(RR2, RR1), 41)

dirin(WR1, WR2) done({WR1, WR2},SSO, ,

setHr(WR1, WR2), 42)..

dirin(RR8, RR7) done({RR8, RR7},SSO, ,

setHr(RR8, RR7), 63)

dirin(WR7, WR8) done({WR7, WR78},SSO, ,

setHr(WR7, WR8), 64)

in (RR2, RR1) dirin (RR2,RR1)in (WR1, WR2) dirin (WR1,WR2)

.

.in (RR8, RR7) dirin (RR8,RR7)

in (WR7, WR8) dirin (WR7,WR8)

Ahora se determinan las relaciones indirectas:

in (RR1, RR4) in (RR1,RR2) & in (RR2,RR4)

in (WR4, WR1) in (WR4,WR2) & in (WR2,WR1)

.

.in (RR5, RR8) in (RR5,RR6) & in

(RR6,RR8)in (WR8, WR5) in (WR8,WR6) &

in (WR6,WR5)

Paso 4: En este paso a las etiquetas correspondientes a los objetos del problema (l1,l4,l5) se les adiciona los objetos (JDK,JRE,MSVC) y las operaciones permitidas.

17

Page 18: Biba

addToRole(RR1,MSVC,+read)addToRole(WR1,MSVC,+write)

addToRole(RR4,JDK,+read)addToRole(WR4,JDK,+write)addToRole(RR5,JRE,+read)

addToRole(WR5,JRE,+write)

Por consiguiente se entran los siguientes predicados:

done({RR1}, SSO, , addToRole(RR1, MSVC, +read),

65)done({WR1}, SSO, ,

addToRole(WR1, MSVC, +write), 66)

done({RR4}, SSO, , addToRole(RR4, JDK, +read),

67)done({WR4}, SSO, ,

addToRole(WR4, JDK, +write), 68)

done({RR5}, SSO, , addToRole(RR5, JRE, +read),

69)done({WR5}, SSO, ,

addToRole(WR5, JRE, +write), 70)

Paso 5: En este paso se describe la relación del usuario con respecto a la etiqueta de la estructura lattice.

grant(RR1, Juan, , activate) do( RR1, Juan, Activate)

do( RR1, Juan, Activate) cando(RR1, Juan, activate)

cando(RR1, Juan, activate)

grant(WR1, Juan, , activate) do( WR1, Juan, Activate)

do( WR1, Juan, Activate) cando(WR1, Juan, activate)

cando(WR1, Juan, activate)

Esto permite a Juan asumir los papeles RR1, y WR1, y las siguientes reglas permite a Juan degradarse a cualquier nivel de seguridad que sea dominado por el definido por el usuario.

grant( RR2, Juan, , activate) dercando(RR2,Juan, activate)

dercando(RR2, Juan, activate) in(RR1,RR2)

grant( WR2, Juan, , activate) dercando(WR2, Juan, activate)

dercando(WR2, Juan, activate) dercando(RR2, Juan, activate)

.

.grant( RR8, Juan, , activate)

dercando(RR8,Juan, activate)

dercando(RR8, Juan, activate) in(RR1,RR8)

grant( WR8, Juan, , activate) dercando(WR8, Juan, activate)

dercando(WR8, Juan, activate) dercando(RR8, Juan, activate)

El nivel de seguridad de Juan corresponde a la etiqueta l1, la cual domina los niveles de seguridad correspondiente al resto de etiquetas (l2,l3,l4,l5,l6,l7,l8).

Paso 6: En este paso se determinan las reglas del modelo Biba(leer arriba y escribir abajo).

18

Page 19: Biba

Para leer arriba:En esta parte del ejemplo se suponen (juan.l4) debido a que si se toma como originalmente esta planteado con (juan,l1) no puede leer más arriba, debido a que l1 es el nivel superior.

grant( MSVC, Juan, +read) dercando(MSVC, Juan, +read)

dercando (MSVC, Juan, +read) active (Juan, RR4) & in(RR1, RR4)

& done ({RR1}, SSO, , addToRole(RR1, MSVC, +read), 71)

Teniendo a Juan con l4 y MSVC que es l1, se tiene que l1 contiene a l4, debido a que l1=(S,{JAVA,C++}) y l4=(S,{}) , eso quiere decir que l4 que es el nivel del usuario Juan quiere leer un nivel de seguridad superior que es donde esta el objeto MSVC que corresponde a L1.

Para escribir abajo:grant( JDK, Juan, +write) dercando(JDK, Juan, +write)

dercando (JDK, Juan, +write) active (Juan, WR1) & in(WR1, WR4) & done ({WR4}, SSO, ,

addToRole(WR4, JDK, +write), 72)

Teniendo a Juan con l1 y JDK que es l4, se tiene que l4 está contenido en l1, debido a que l4=(S,{}) y l1=(S,{JAVA,C++}) , eso quiere decir que l1 que es el nivel del usuario Juan quiere escribir en un nivel de seguridad inferior que es donde esta el objeto JDK que corresponde a L4.

4. Resultados

Este estudio demuestra que Biba no es ni mejor o peor modelo de seguridad que BLP, sino que el enfoque de cada uno es distinto. Por un lado BLP es un modelo de seguridad confidencial mientras que Biba hace énfasis en la integridad.Por otra parte hoy en día existen propuestas de Patrones de Software y de Lenguajes de Seguridad como ASL que ayudan en una buena implementación de los modelos de seguridad, desde el análisis hasta la implementación en un lenguaje de programación.

5. Conclusiones

Dependiendo de las necesidades de seguridad en una organización se deben escoger los modelos de seguridad.

Tanto Biba como BLP tienen modelos de control de acceso mandatorio (MAC) que proveen alternativas para restringir la interacción entre los usuarios.

Biba utiliza los modelos de máquinas de estados como la manera formal de indicar si el sistema se encuentra en un estado seguro, y bajo que condiciones pasa a otro estado seguro o no.

El control de acceso en los modelos DAC se implementa en una estructura matricial determinada por los sujetos, los objetos, y el valor en la matriz corresponde al permiso que tiene un sujeto sobre un objeto.

El estado seguro en el modelo BLP esta determinado por tres reglas, que tienen por objetivo evitar las

19

Page 20: Biba

lecturas arriba y escrituras debajo de un determinado nivel de seguridad dado a un sujeto.

Las reglas de BLP determinan el enfoque del modelo hacia el aspecto confidencial debido a que un sujeto en un nivel de seguridad n no puede observar la información de los niveles superiores.

Al igual que en BLP, el estado seguro en Biba esta determinado por tres reglas que tienen por objeto evitar las lecturas abajo y las escrituras arriba de un nivel de seguridad dado a un sujeto.

Una alternativa que combina los modelos BLP y Biba garantiza una confidencialidad e integridad, pero limita la facilidad de compartir recursos.

Haciendo una comparación más detallada entre Biba y BLP no hay diferencias fundamentales en cuanto al flujo de información en el lattice, debido a que la dirección es relativa, ya que un sistema que pueda impulsar el flujo en un sentido, esta en igual capacidad para impulsarlo en el contrario.

Hoy en día existen patrones de software que encapsulan experiencia y buenas prácticas de diseño para poder implementar más eficientemente modelos de seguridad como los descritos en este artículo.

A parte de los patrones de software existen propuestas complementarias como son los lenguajes de seguridad como ASL que intentan especificar de una manera formal las políticas de seguridad para cualquier modelo de seguridad.

6. Referencias

[1] M. Bishop, Computer Security Art and Science, An Overview of Computer Security, Chapter 1, Addison Wesley, 2003

[2] C. Pfleeger, Security in Computing, Security Needs, Chapter 5,Pretice Hall, 1996

[3] D. E. Bell and L.J. Padula, Secure Computer Systems, Mathematical Foundations, Hanscom Field, Bedford, Mass., 1976

[4] K.J. Biba, Integrity Considerations for Secure Computer Systems, Hanscom Field, Bedford, Mass., 1977

[5] lack5831, “Information Security Models”,http://itd.colorado.edu/lack5831/ Information%20Security%20Models.pdf ,2002

[6]MT5104, Computer Security, Lecture 3, “Security Models”,www.cccure.org/Documents/Security_models/models.pdf.,2001

[7] C. Quezada Reyes y S. A. Gutierrez Rodríguez, “Políticas de seguridad”,http://mx.geocities.com/fundamentosdeseguridad/SEMINARIO/TEMA_6.htm,2000

[8] F. Cohem, “Models of OS Protection”,http://www.all.net/books/ip/Chap3-3.html,2002

20

Page 21: Biba

[9] C. E. Landwehr, A survey of Formal Models for Computer Security, NRL Report 8489, Naval Research Laboratory, Washington, D.C., 1981.

[10] F. Cohem, “Models of OS Protection”,http://www.all.net/books/ip/Chap3-3.html,1995

[11] R. Shandu, “DAC and MAC”, http://www.list.gmu.edu/infs767/infs767fall02/lec4-6.PDF,2002

[12]M. Stamp, “Multilevel Security”, Chapter 7,http://www.cs.sjsu.edu/faculty/stamp/SecurityEngineering/chapter7/chapter7.html,2000

[13] J. M. Smith, Software Design and Engineering,CSE350, University of Pennsylvania,www.cis.upenn.edu/~cse350/lec/CSE350_13.ppt ,2002

[14] S. Jajodia y V. S. Subramanian, A Logical Language for Expressing Authorization, IEEE Symposium on Security and Privacy, Oakland, California, 1997

[15] S. Jajodia, V. S. Subramanian y E. Berlino, A Unified Framework for Enforcing Multiple Access Control Policies, ACM International SIGMOD Conference on Management of Data, Tucson, Arizona, 1997

[16] K.Mishra, A.G. Stoica, P. Talekar, Unified Language for Expressing Multiple Access Control Policies, A feasibility Study, htpp://www.cse.sc.edu/~talekar/ps/paper1.ps, 2000

7. Autores

Edison Castaño Henao: Ingeniero de Sistemas, Estudiante Maestría en Sistemas y Computación. E-mail: [email protected]

Juan Pablo Garzón Ruiz: Ingeniero de Sistemas, Especialista en Gerencia Integral de Proyectos, Estudiante Maestría en Sistemas y Computación. E-mail: [email protected]

Andres Alberto Gonzalez: Ingeniero de Sistemas, Estudiante Maestría en Sistemas y Computación. E-mail: [email protected]

Dario Melo: Ingeniero Electronico, Estudiante Maestría en Sistemas y Computación. E-mail: [email protected]

21