Conjunto de normas LBAC: DB2LBACRULES

El conjunto de reglas LBAC DB2LBACRULES proporciona un conjunto tradicional de reglas para comparar los valores de los componentes de etiqueta de seguridad. Protege tanto de escritura hacia arriba como de escritura hacia abajo.

¿Qué son escribir y anotar?

La escritura hacia arriba y la escritura hacia abajo sólo se aplican a los componentes de tipo ARRAY y sólo al acceso de escritura. La grabación se produce cuando el valor que protege los datos en los que está grabando es mayor que el valor. La escritura es cuando el valor que protege los datos es menor que el suyo. De forma predeterminada, no se permite escribir ni escribir, lo que significa que sólo puede escribir datos protegidos por el mismo valor que tiene.

Al comparar dos valores para el mismo componente, las reglas que se utilizan dependen del tipo del componente (ARRAY, SET o TREE) y del tipo de acceso que se está intentando (lectura o grabación). Esta tabla lista las reglas, indica cuándo se utiliza cada una y describe cómo determina la regla si el acceso está bloqueado.

Tabla 1. Resumen de las reglas DB2LBACRULES
Nombre de regla Se utiliza para comparar valores de este tipo de componente Se utiliza para este tipo de acceso El acceso está bloqueado cuando se cumple esta condición
DB2LBACREADARRAY ARRAY Read El valor del usuario es menor que el valor de protección.
DB2LBACREADSET SET Read Hay uno o más valores de protección que el usuario no retiene.
DB2LBACREADTREE TREE Read Ninguno de los valores del usuario es igual o un ancestro de uno de los valores de protección.
DB2LBACWRITEARRAY ARRAY Escritura El valor del usuario es mayor que el valor de protección o menor que el valor de protección.1
DB2LBACWRITESET SET Escritura Hay uno o más valores de protección que el usuario no retiene.
DB2LBACWRITETREE TREE Escritura Ninguno de los valores del usuario es igual o un ancestro de uno de los valores de protección.
Nota:
  1. Se puede considerar que la regla DB2LBACWRITEARRAY es una combinación de dos reglas diferentes. Uno impide escribir en datos que son superiores a su nivel (escritura) y el otro impide escribir en datos que son inferiores a su nivel (escritura). Al otorgar una exención a esta regla, puede eximir al usuario de cualquiera de estas reglas o de ambas.

Cómo manejan las reglas los valores vacíos

Todas las reglas tratan los valores vacíos de la misma forma. Un valor vacío no bloquea ningún otro valor y está bloqueado por cualquier valor no vacío.

Ejemplos de DB2LBACREADSET y DB2LBACWRITESET

Estos ejemplos son válidos para un usuario que intenta leer o intentar grabar datos protegidos. Asumen que los valores son para un componente de tipo SET que tiene estos elementos: uno dos tres cuatro
Tabla 2. Ejemplos de aplicación de las reglas DB2LBACREADSET y DB2LBACWRITESET .
Valor del usuario Valor de protección ¿Acceso bloqueado?
'ONE' 'ONE' No bloqueado. Los valores son los mismos.
"(uno, dos, tres)" 'ONE' No bloqueado. El valor del usuario contiene el elemento 'uno'.
"(uno, dos)" "(uno, dos, cuatro)" Bloqueado. El elemento 'four' está en el valor de protección pero no en el valor del usuario.
'()' 'ONE' Bloqueado. Un valor vacío está bloqueado por cualquier valor no vacío.
'ONE' '()' No bloqueado. Ningún valor está bloqueado por un valor vacío.
'()' '()' No bloqueado. Ningún valor está bloqueado por un valor vacío.

DB2LBACREADTREE y DB2LBACWRITETREE

Estos ejemplos son válidos tanto para el acceso de lectura como para el acceso de escritura. Presuponen que los valores son para un componente de tipo TREE que se ha definido de este modo:
CREATE SECURITY LABEL COMPONENT mycomp 
TREE ( 
    'Corporate'      ROOT, 
    'Publishing'     UNDER 'Corporate', 
    'Software'       UNDER 'Corporate', 
    'Development'    UNDER 'Software', 
    'Sales'          UNDER 'Software', 
    'Support'        UNDER 'Software' 
    'Business Sales' UNDER 'Sales'
    'Home Sales'     UNDER 'Sales'
)
Esto significa que los elementos están en esta disposición:
El diagrama muestra la disposición del componente TREE utilizado en los ejemplos.
Tabla 3. Ejemplos de aplicación de las reglas DB2LBACREADTREE y DB2LBACWRITETREE .
Valor del usuario Valor de protección ¿Acceso bloqueado?
'(Soporte, Ventas)' "Desarrollo" Bloqueado. El elemento 'Desarrollo' no es uno de los valores del usuario y ni 'Soporte' ni 'Ventas' es un ancestro de 'Desarrollo'.
'(Desarrollo, Software)' "(Business Sales, Publishing)" No bloqueado. El elemento 'Software' es un ancestro de 'Ventas de negocio'.
"(Publishing, Sales)" '(Publicación, Soporte)' No bloqueado. El elemento 'Publishing' está en ambos conjuntos de valores.
"Corporativo" "Desarrollo" No bloqueado. El valor raíz es un ancestro de todos los demás valores.
'()' "Ventas" Bloqueado. Un valor vacío está bloqueado por cualquier valor no vacío.
"Home Sales" '()' No bloqueado. Ningún valor está bloqueado por un valor vacío.
'()' '()' No bloqueado. Ningún valor está bloqueado por un valor vacío.

Ejemplos de DB2LBACREADARRAY

Estos ejemplos son sólo para acceso de lectura. Asumen que los valores son para un componente de tipo ARRAY que incluye estos elementos en esta disposición:
Los elementos se listan en orden de valor decreciente. Top secret es primero, luego Secret, luego Employee, luego Public.
Tabla 4. Ejemplos de aplicación de la regla DB2LBACREADARRAY .
Valor del usuario Valor de protección ¿Acceso de lectura bloqueado?
"Secreto" 'EMPLOYEE' No bloqueado. El elemento 'Secret' es superior al elemento 'Employee'.
"Secreto" "Secreto" No bloqueado. Los valores son los mismos.
"Secreto" 'Top Secret' Bloqueado. El elemento 'Top Secret' es superior al elemento 'Secret'.
'()' 'PUBLIC' Bloqueado. Un valor vacío está bloqueado por cualquier valor no vacío.
'PUBLIC' '()' No bloqueado. Ningún valor está bloqueado por un valor vacío.
'()' '()' No bloqueado. Ningún valor está bloqueado por un valor vacío.

Ejemplos de DB2LBACWRITEARRAY

Estos ejemplos son sólo para acceso de escritura. Asumen que los valores son para un componente de tipo ARRAY que incluye estos elementos en esta disposición:
Los elementos se listan en orden de valor decreciente. Top secret es primero, luego Secret, luego Employee, luego Public.
Tabla 5. Ejemplos de aplicación de la regla DB2LBACWRITEARRAY .
Valor del usuario Valor de protección ¿Acceso de escritura bloqueado?
"Secreto" 'EMPLOYEE' Bloqueado. El elemento 'Employee' es inferior al elemento 'Secret'.
"Secreto" "Secreto" No bloqueado. Los valores son los mismos.
"Secreto" 'Top Secret' Bloqueado. El elemento 'Top Secret' es superior al elemento 'Secret'.
'()' 'PUBLIC' Bloqueado. Un valor vacío está bloqueado por cualquier valor no vacío.
'PUBLIC' '()' No bloqueado. Ningún valor está bloqueado por un valor vacío.
'()' '()' No bloqueado. Ningún valor está bloqueado por un valor vacío.