Está en la página 1de 8

Suscríbete a DeepL Pro para poder traducir archivos de mayor tamaño.

Más información disponible en www.DeepL.com/pro.

El modelo de seguridad informática de Bell-


LaPadula representado como un caso
especial del modelo de Harrison-Ruzzo-
Ullman
Paul A. Pittelli

RESUMEN En concreto, supongamos que tenemos un modelo BLP que


consta de las siguientes entidades;
En la actualidad, la mayoría de los modelos de seguridad E = {s;: i= 1,2,...,k}-- conjunto de sujetos
informática se clasifican en tres tipos: control de acceso, flujo
0 = {o j = 1,2,...,n} -- conjunto de objetos; recuerde En O =
de información y no interferencia. En el ámbito del control de
0
acceso se sitúa el modelo clásico Bell-LaPadula. Un modelo BLP
consiste en un conjunto de sujetos y objetos, tres funciones de L = {Ii: t=0,1,...,T} -conjunto de valores de seguridad que
nivel de seguridad y una matriz de acceso discrecional junto forman un entramado bajo la ordenación parcial !!>
con un conjunto de reglas utilizadas para manipular el estado denominada relación de dominancia. Sin pérdida de
actual del modelo. En este modelo, la seguridad depende de la generalidad, lo e IT denotan el límite superior mínimo de
satisfacción de tres propiedades: seguridad simple, acceso L y el límite inferior máximo de L, respectivamente.
discrecional y propiedad *. Un modelo HRU consiste en una
fs:E => L -- función que proporciona el nivel de
matriz de acceso y un conjunto finito de comandos que actúan
seguridad máximo para un sujeto.
como transformaciones de la matriz. Aquí la seguridad se
determina buscando la existencia de un derecho de acceso en fc:E => L -- función que proporciona el nivel de seguridad
una celda específica de la matriz. Definimos un modelo HRU actual de un sujeto.
específico (denominado modelo Bobo) y establecemos una
fo:O => L -- función que proporciona el valor de
correspondencia entre los comandos Bobo y las reglas BLP,
seguridad de un objeto.
también entre los estados Bobo y BLP. Además, observamos
que esta correspondencia preserva la seguridad en el hecho de R = {append,write,read,execute}-- conjunto de derechos de
que un triple acceso BLP es seguro si y sólo si ese acceso está acceso.
contenido en una celda específica de la matriz de acceso
M = matriz k x n con m;i R que representa el conjunto de
Bobo.
derechos de acceso discrecionales que los sujetos; tienen
al objeto <>.i-

Introducción A continuación mostraremos cómo incorporar el


modelo BLP a un entorno HRU. En primer lugar, definiremos
El objetivo de esta nota es demostrar que el modelo Bell- los siguientes componentes de un modelo HRU:
LaPadula para el control de acceso no es más que un caso
especial del no tan conocido modelo Harrison-Ruzzo-Ullman. S = {s;lt: s; e E y t e STJ U {solT}.Correspondiente a cada
El modelo HRU consiste en una matriz de acceso junto con sujeto BLP Si hay un subconjunto S; deS, donde 81 = {s;li: t
un conjunto finito de comandos que se utilizan para e STJ, que representa s; junto con todos los valores de
manipular la matriz. Para desarrollar un modelo equivalente al seguridad permitidos de s;. Es decir {Ii: t e STJ = {It e L:
de BLP, necesitamos presentar comandos que sean fs(s;) !!> IJ. Formalmente, los elementos de S; proceden del
"idénticos" a las reglas de BLP. producto cruzado
espacio E x 0, pero para facilitar la notación escribiremos
Antes de empezar a definir los comandos, primero debemos los elementos como s;lt. Así, Silt denotará un sujeto HRU.
mostrar una correspondencia entre los "sujetos" y Hobjetos" en Además, reservamos el sujeto solT para que sea un sistema
el modelo BLP y los Hsujetos" y "objetos" en el entorno HRU. sujeto. Así pues, So = {solT} y STo = {T}. El propósito de
La razón de las citas anteriores es que sujetos y objetos son solT es permitir que el sistema sepa en qué nivel se
conjuntos disjuntos en BLP, mientras que el conjunto de sujetos clasifica actualmente un objeto, como se formalizará más
está contenido en el conjunto de objetos en HRU. Esta adelante.
distinción, aunque aparentemente pequeña, merece ser
recordada. Sin embargo, un factor clave del modelo BLP es el 0 =SU O donde O = {<>jiu: Oj e O y u e
uso de las funciones fs,fc,y fo. Estas funciones asocian un valor OTj}.Relacionamos a cada objeto Oj un conjunto de valores
de seguridad a un sujeto u objeto, lo que permite comparar {lu: u e OTj} que1 1 representa todos los valores de seguridad
sujetos con objetos. que podría asumir Oj. Es decir{Ju: u e OTj} = {Jue L: lu !!>
fo(<>j)}.
El párrafo anterior indica algunas de las diferencias que
debemos tener en cuenta al relacionar BLP con HRU. El A = {activo,propio,r,a,w,e}conjunto de derechos de acceso
concepto principal de este nuevo modelo es la noción de genéricos.
sujeto (objeto) representado por un conjunto de entidades. P = (P[s,o]), matriz p x (p+q) donde P[s,o] A para s e
Definir un sujeto como un conjunto de S y o e 0. Aquí

p= ±I STi I yq = iI OT1 I
sub-sujetos nos permite implementar las capacidades multinivel i=O J=l
de un sujeto BLP en una matriz de acceso. Del mismo modo, un Pis denominada simplemente matriz de acceso.
objeto visto como un conjunto permite utilizar un comando de
actualización.

118
Operaciones primitivas: columnas correspondientes a los miembros de OTj. Las
celdas de cada submatriz están todas vacías.
En el modelo BLP, las reglas permiten la creación y
(2) op = suprimir objeto Oj
eliminación de objetos, así como la inserción y eliminación de
un derecho de acceso de una celda de la matriz de acceso M. En Esta operación elimina de la matriz P todas aquellas
el modelo HRU existen contrapartidas de estas acciones que se submatrices Pij para O s i s k. Recordemos que k es la
denominan cardinalidad deS, el conjunto de sujetosBLP.
operaciones primitivas. Debido a nuestro ejemplo particular hay
una operación adicional: borrar un subconjunto propio del (3) op = suprimir objetos ojlu
conjunto Oj = Esta operación elimina un subconjunto de columnas de cada
{ojlu: u e OTj}. Esta última operación primitiva proporcionará matriz Pij, O s i s k, concretamente todas aquellas columnas
los medios para implementar una orden de actualización. correspondientes al aceite donde l f lu.
Dado el estado del sistema (S,O,P) definimos una operación (4) op = introducir x en P[Si,ojlul
primitiva op como una función op:(S,O,P) (S*,O*,P*) donde:
Esta operación inserta x en un subconjunto de
(1) op = crear objeto Ojlu, posiciones de la matriz Pij definido por los distintos
dondeOi/O. Tenemos por ahora 1>-lu; valores dex.
s- = s, o- = 0 U{ojl}, (5) op = borrar x de P[ ,ojlul
P*[s,o] = P[s,o] para todo (s,o) e S x 0 Esta operación elimina x de todas las entradas de las
columnas de Pij correspondientes a l en las que lu ;I>- l.
P*[s,<>jl] = 0 para todo s e S.
(2) op = borrar objeto Oj,
donde Oj;; 0 \ S. Tenemos para todo I e Comandos:
L; S* = S,O* = O{ojl}, Un comando HRU es simplemente un condicional IF
(expresión 1) THEN (expresión 2) donde la expresión 1 es una
P*[s,o] = P[s,o] para todo (s,o) e S x O*. función booleana y la expresión 2 es una secuencia de
(3) op = eliminar objetos <>jlu, operaciones primitivas. Para aplicar el modelo BLP en un
entorno HRU, vamos a
donde <>jlu e 0_ \ S. Tenemos para todo l '/, utilice los siguientes comandos. Para facilitar la notación
lu, S* = S,O* = O{ojl}, dejemos que S, =
sujeto solicitante y x un miembro del conjunto {r,a,w,e}.
P*[s,oI = P[s,oI para todo (s,ci) e S x O*.
(1) Comando GIVE(S,,Si,x,ojlul
(4) op = introduce x en P[Si,ojlul,
IFown e P[s,lt,Ojlul para
donde x e A, !;; S, y Ojlu e O \ S. Tenemos para todo !,It
cualquier lt, y active e
con
P[solT,o}ul
lt ;1,- l si x=r
ENTONCES introduce x en P[Si,OjlTl-
lt = l s x= w (2) Comando RESCIND(S,, ,x,ojlu)
;1,- i IF own e P[srlt,O}ul for any lt
lu
tierra l ;1,- lt s x=a THEN delete x from P[Si,<>jlul-
i
(3) Comando GENERATE(S,,o}ul
lt = lT s x = activo
IF TRUE
s- = s,o- = o, i
ENTONCES crea el objeto Ojlu,
0 s x= eo
P*[s,o] = P[s,o] para todo (s,o)* introduce activo en
i propio P[So,<>jlul, introduce
(s;lt,Ojl) P*[silt,Ojll = P[silt,Ojll U {x}. propio en P[Sr,<>jlTl-
(5) op = borrar x de P[Si,Ojlul, (4) Comando DESTROY(S,,ojlu)
donde x e A. Tenemos para todo l,lt con lu ;I>- l, IF own e P[s,lt,Ojlul para algún lt
s- = s,o- = o, THEN delete object Oj-
P*[s,o] = P[s,o}para todo (s,o)* (5) Comando UPGRADE(Sr,Oj,llJo,lu,l
(limo,<>jl) P*[limo,Ojll = P[limo,Ojl] IFown e P[srlt,O}llol para algún lt,
\{x}. y active e P[solT,ojlllol
Como ayuda para comprender los efectos de las ENTONCES borre los objetos o}u,,
operaciones primitivas sobre la matriz P, es útil considerar que entrar activo en P[So,Ojlu1l.
corresponde a cada par sujeto,objeto (si,ojl una submatriz Pij Nota: En el resto de este documento, los conjuntos S, 0, la matriz
cuyas filas están indexadas por STi y cuyas columnas están de acceso P y los cinco comandos definidos anteriormente
indexadas por OTj. Las consecuencias de aplicar las operaciones conformarán lo que se denominará el modelo Bobo.
primitivas pueden resumirse como sigue:
(1) op = crear objeto Ojlu
Esta operación crea un conjunto de matrices {Pif o :s i :s n}, Equivalencia con BLP:
donde P;j tiene filas correspondientes a elementos de ST; y
El método que utilizaremos para exhibir una
equivalencia entre los modelos BLP y Bobo es un proceso
doble Fir,t probaremos un teorema que mostrará cada estado
de un BJ.I'
119
es alcanzable por el modelo Bobo. En segundo lugar, se
Reglas 1-5: get,release read/append/write/execute
establecerá una correspondencia entre las transiciones de
estado de los dos modelos simplemente enumerando cada No es necesario implementar un comando get o release
transición de estado BLP junto con su transición de estado en nuestro modelo Bobo. En BLP, un sujeto tiene que solicitar
Bobo homóloga. acceso get a un objeto para que nunca se viole la * propiedad.
Sin embargo en el modelo Bobo la operación primitiva enter
Además de mostrar que cada estado BLP es alcanzable
access asegura
por el modelo Bobo, el teorema siguiente ilustra cómo
que la * propiedad no será violada. Así, un sujeto en el
identificar el conjunto BLP de triples de acceso seguro en el
El modelo Bobo obtiene acceso a un objeto siempre que el
entorno HRU.
propietario del objeto le haya dado el acceso deseado ejecutando

f
Una de las hipótesis del teorema es una suposición sobre la
un comando GIVE.
matriz de acceso inicial po. Suponemos que para Os si k ;
1 s j s n; t e ST;; u e OTi; Regla 6: dar - leer/aplicar/escribir/ejecutar
{activo} si s. = s y l = {. (o .) Esta regla corresponde al comando GIVE. La regla
. ' 0 u 0 J
P°rs.l ,o .l ]
I1 JU
= {own} ifs.creat,edo.
I J comprueba si el sujeto solicitante (dador) tiene autoridad para
{En caso contrario "dar" a otro sujeto acceso a un objeto específico. Esto se consigue
mediante la condición de que el sujeto solicitante sea
Supongamos que en el modelo BLP los sujetos crean el objeto
"propietario" del objeto en cuestión. Además, si la condición es
Oj en el nivel fo(<>j) = lu, En el modelo Bobo esto se consigue
verdadera, se concede el derecho de acceso para que no se
emitiendo el comando GENERATE(S;,ojlul. Al ejecutar el
infrinja la propiedad BLP *. (Por ejemplo, si se concede a w
comando vemos que las matrices sul;,Paj están todas vacías
acceso a Oj, entonces w sólo se añade al conjunto en las
excepto cuando a = i en la que la matriz P;j contiene {own} en
posiciones (s;lt,Ojltl para todo t c OTj).
cada celda. También hay sólo una entrada en Poj que no está
vacía y es PO[so!T,o/0 (oj)l = {active}. Así vemos que si el Regla 7: rescindir: leer/aplicar/escribir/ejecutar
sistema sabe quién creó cada objeto entonces podemos generar la
El comando RESCIND realiza la operación inversa a
matriz inicial po mediante una secuencia de comandos GIVE, al igual que la regla rescindir en el sentido de BLP. De
GENERATE. Por lo tanto, nuestra suposición sobre la matriz po nuevo, la condición comprueba la autoridad del sujeto
puede hacerse sin pérdida de generalidad. solicitante mediante "propiedad" y, si la autoridad es válida,
Teorema: Sea M,f un estado de un modelo BLP con sujetos elimina el acceso especificado de las columnas de acceso del
{s1,s2,...,sm} y objetos {01,02,.. ,,on}, Sea J3 el conjunto de todas sujeto.
las posibles triplas seguras (s,o,x) completamente determinadas por
Regla 8,9 crear,suprimir objeto
Mand f. Defina una matriz de acceso Bobo PO como, para Os es
k;l s sj n ; Los comandos GENERAR y DESTRUIR corresponden
t e ST;; u e OTi; a las reglas crear y borrar respectivamente. GENERATE crea
un objeto y define que el "propietario" inicial del objeto es su
{activo} ifs,= s0yl,. = f0(o) creador. DESTROY comprueba la "propiedad" para autorizar
P0 la eliminación del objeto del sistema.
[s.l ,o .l I= {propio} si s creado o
Norma 10: cambiar-sujeto-actual-nivel-de-seguridad
I 1 JU I J No es necesario un comando que cambie un
{
{} de lo el nivel de seguridad actual del sujeto. La razón es que el Bobo
contrario
Entonces existe una secuencia de órdenes c1,c2,...,,ck tal que define un sujeto S; como el conjunto {s;lf t c STJ. Esto
(SO,QO,po)=>(Sl,O1,Pl)=>... =>(Sk,Qk,Pk) y (s,o,x) e J3 # xe permite a un sujeto trabajar en un objeto o}u en modo x si y
Pk[sfc(s),ofo(o)]. sólo si existe algún t c ST; tal que x e P[s;lt,Ojlul, Así, el
comando cambia automáticamente el nivel de seguridad actual
Pf: Para cada objeto Oj realizamos lo siguiente: de un sujeto para acomodar el acceso deseado a un objeto.
Supongamos que sd es el creador de Oj,
entonces para todo x e m;j emite el comando Norma 11: cambio-objeto-nivel-de-seguridad
GIVE(Sd,S;,x,Ojfo(<>j)l, para i= 1,2,...,m. El comando UPGRADE realiza la función de cambiar el
Dado que el conjunto de sujetos, objetos y derechos de nivel de seguridad de un objeto. En BLP el monitor de
acceso son conjuntos finitos, hemos generado una referencia necesita verificar que el nuevo nivel es válido y que
secuencia finita de comandos, digamos c1,c2,..,Ck, que el sujeto solicitante tiene autoridad para cambiar la función fo.
transforma (S0,Q0,PO) => (Sk,Qk,Pk), Esto se consigue mediante el derecho de acceso "propio" y la
Afirmación: (s,o,x) e J3# x c Pk[sfc(s),ofo(o)]. operación primitiva de eliminación de objetos. Además
ff: Supongamos(s;,Oj,x) e J3 # supongamos que el objeto Oj se actualiza del nivel lu al Iv,
s<si )► fo<o) y fc(s;)► f0(o) : .x = r Observe que debido a la operación primitiva enter, si los
sujetos; tenían acceso x a <>jiu entonces s; seguirá teniendo
s<s.)► fo<o .) y fc(s.) = f (o .) si .x = w acceso x a <>jlv siempre que no se viole la propiedad *. Esto
0
.xcm.. y I
J ' J # implica que el comando UPGRADE cancela automáticamente
-J ► fc<s;)si .x=a
f0(o) todos los accesos actuales que violen la * propiedad en un
nuevo nivel de seguridad de los objetos.
Se ejecuta GIVE(Sd,S;,x,ojfo(oj)), cuando ti: el
creador deoi #
x c Pk[s;fc(s;),ojfo(oj)]. - Observaci
Ahora tenemos que demostrar que todas las ones:
transiciones de estado posibles en el modelo BLP son
alcanzables en esta nueva configuración. Remitiéndonos a Aunque el modelo Bobo puede simular el modelo BLP,
[1] encontramos que hay 11 transiciones de estado se han creado varias características para lograrlo. La .primera
(reglas). Para cada regla estableceremos un comando y más importante es la idea ne" de un derecho de acceso
equivalente y/o una razón por la que se cumple la regla. llamado "propio". El modelo BLP contiene una estructura de
árbol para los objetos denominada jerarquía. Sin embargo, la
jerarquía de objetos no está relacionada con la seguridad del
modelo.
120
decidible.
sino que existe únicamente por la aplicación de BLP al
sistema Multics. Así, vemos que el único concepto de
propiedad de un objeto en BLP reside en la función Give de la
regla 6. Para aplicar esta función Give es necesario utilizar un
derecho de acceso "own". El modelo Bobo es conservador en
el sentido de que el único sujeto que puede tener acceso
"propio" a un objeto es su creador. No obstante, si es necesario
que un objeto sea propiedad de un grupo, las condiciones del
comando GIVE pueden modificarse para dar cabida a esta
característica.
El otro derecho de acceso nuevo en el modelo Bobo es
"activo". El propósito de "activo" es simplemente permitir
que el monitor de referencia conozca el nivel actual de un
objeto. Esta función permite entonces actualizar el nivel de
seguridad de un objeto.
El uso de conjuntos para representar sujetos y objetos
crea más responsabilidades para el monitor de referencia en el
modelo Bobo. En particular, dado que un sujeto puede
trabajar en cualquier nivel que domine y que un objeto puede
asumir varios valores de seguridad, entonces debería ser tarea
del monitor de referencia informar al sujeto en qué nivel está
trabajando y el valor del objeto al que está accediendo.
La última observación que queremos hacer se refiere a
la forma de la matriz de acceso P. La observación más fácil
de hacer es que la submatriz cuyas filas y columnas están
indexadas por los s-sujetos está completamente vacía. Esto
refleja el hecho de que los sujetos no pueden acceder a otros
sujetos en el modelo BLP. Además, el método de otorgar
derechos de acceso a los sujetos crea mucha información
redundante. Es decir, si el monitor de referencia quiere
comprobar si el sujeto s; tiene acceso x al objeto Ojlu, entonces la
única celda necesaria para examinar es P[s;lu,Ojlul-

Seguridad:
En esta sección se analiza el concepto de seguridad
introducido por Harrison, Ruzzo y Ullman. Intuitivamente, un
modelo de seguridad "seguro" (es decir, un sistema de protección
en terminología HRU) es aquel que no permitirá el acceso no
autorizado a los objetos. Las dos definiciones siguientes
enuncian formalmente la idea de seguridad.
Def: Dado un sistema de protección, decimos que un
comando ex fuga genérica derecha r de la
configuración Q = (S, 0, P) si ex, cuando se ejecuta
en Q, puede ejecutar una primitiva
que introduce r en una celda de la matriz de acceso
que antes no contenía r.
Def: Dado un sistema de protección particular y
un derecho genérico r, decimos que la
configuración inicial Q0 es insegura para r (o tiene
fugas r) si existe una configuración Q y un
comando ex tales que
(1) => Q mediante una secuencia de operaciones
primitivas,
(2) ex escapa r de Q.
La primera observación que se puede hacer es que
cualquier sistema que utilice la operación primitiva enter será
probablemente considerado inseguro. Harrison et al. hacen la
convención de que para comprobar si hay fugas no
autorizadas, tenemos que eliminar de las pruebas a los sujetos
que realmente están autorizados a conceder (filtrar) derechos.
Utilizan el término sujetos "fiables" para referirse al conjunto
de sujetos que están autorizados a conceder el derecho
genérico r de un objeto a otro sujeto.
HRU ha demostrado que la cuestión general de si un
sistema de protección arbitrario es seguro o no es indecidible.
Sin embargo, si un modelo específico consiste en comandos que
implican sólo una operación primitiva (mono-operacional en
terminología HRU), entonces la cuestión de la seguridad es
de un modelo BLP. Esto no es asunto de este artículo, por lo
sentencias. Es decir, el modelo Bobo no es un sistema monooperativo, pero que no pretendemos insinuar ninguno de los dos casos. Sin
demostraremos que. el modelo es "seguro". embargo, lo que mostramos es cómo las reglas de cualquier
No es muy difícil ver que todos los comandos, excepto el comando GENERAR, modelo BLP se corresponden con los comandos de un modelo
contienen una comprobación de propiedad en la condición. Dado que un sujeto que HRU. Por lo tanto, si se añaden más reglas al modelo BLP
posee un objeto se considera fiable, el único comando en cuestión es el comando existente, se puede añadir un nuevo comando al modelo Bobo
GENERAR. Sin embargo, cualquiera que cree un objeto es fiable por naturaleza con para mantener la equivalencia. Aunque la implementación del
respecto a ese objeto. Así que podemos ver la entrada del derecho de acceso propio por modelo BLP podría simplificarse utilizando el modelo Bobo,
el creador del objeto dándose a sí mismo acceso. Por lo tanto, todos los comandos del la intención de este artículo y de los siguientes es intentar
modelo Bobo preservan la seguridad, lo que implica que el modelo Bobo es en sí mismo unificar todos los modelos de control de acceso existentes en
"seguro". un marco; tal vez el del modelo Harrison, Ruzzo, Ullman.

Conclusiones: Referencias:

Además de un intento de unificar algunos de los modelos de control de acceso (1) Bell, D.E. y LaPadula, L. J. Secure Computer
existentes, el modelo Bobo revela un punto de interés. Y es que vemos que el modelo Systems, Vol. IV: Unified Exposition and
HRU es un modelo de control de acceso muy general. Además, se puede apreciar la Multics Interpretation. MITRE Corp. Tech. Rep.
elegancia del modelo por el hecho de que el complejo modelo BLP puede definirse MTH 2997, 1975.
mediante una matriz de acceso junto con un conjunto de cinco comandos. El hecho
de poder incorporar las tres funciones f8, fc, f0 , la matriz de acceso discrecional BLP (2) Harrison, M. A., Ruzzo, W.L. y Ullman, J. D.
M y el conjunto de todos los accesos actuales b en la matriz P, permite ver la Protection in Opera ting Systems.
interacción entre los distintos niveles de seguridad y la propiedad *. Obsérvese Communications of the ACM, Vol. 19, No. 8,
también que sólo hemos tratado las reglas definidas por el volumen 4 del modelo agosto de 1975. -
Bell-LaPadula. Un tema de debate actual es si las reglas constituyen o no una parte

121

También podría gustarte