19 jul 2012

CONTROL DE ACCESO BASADO EN CONCESIÓN/REVOCACIÓN DE PRIVILIGEIOS


En la actualidad se acostumbra hablar de dos tipos de mecanismos de seguridad en las bases de datos:
Los mecanismos de seguridad discrecionales se usan para otorgar privilegios a los usuarios, incluida la capacidad de tener acceso a archivos, registros o campos de datos específicos en un determinado modo.
Los mecanismos de seguridad obligatorios sirven para imponer igualdad de múltiples niveles clasificando los datos y los usuarios en varias clases (o niveles) de seguridad e implementando después la política de seguridad apropiada de la organización.
Un problema de seguridad común a todos los sistemas de computo es el de evitar que personas no autorizadas tengan acceso al sistema, ya sea para obtener información o para efectuar cambios mal intencionados en una porción de la base de datos. El mecanismo de seguridad de un SGBD debe incluir formas de restringir el acceso al sistema como un todo. Esta función se denomina control de acceso y se pone en practicas creando cuentas de usuarios y contraseñas para que es SGBD controle el proceso de entrada al sistema.

Otra técnica de seguridad es el cifrado de datos, que sirven para proteger datos confidenciales que se transmiten por satélite o por algún otro tipo de red de comunicaciones. El cifrado puede proveer protección adicional a secciones confidenciales de una base de datos. Los datos se codifican mediante algún algoritmo de codificación. Un usuario no autorizado que tenga acceso a los datos codificados tendrá problemas para descifrarlos, pero un usuario autorizado contara con algoritmos (o claves) de codificación o descifrado para descifrarlos.


Seguridad de la base de datos y el DBA

El administrador de bases de datos (DBA) es la autoridad central que controla un sistema de este tipo. El DBA tiene una cuenta privilegiada en el SGBD, a veces denominada
cuenta del sistema, que confiere capacidades extraordinarias no disponibles para cuentas y usuarios ordinarios de la base de datos. El DBA ejecuta los siguientes tipos de acciones:
Creación de cuentas
Concesión de privilegios
Revocación de privilegios
Asignación de niveles de seguridad
El DBA es el responsable de la seguridad global del sistema de base de datos.

Violaciones de Seguridad
Entre las formas de acceso malintencionado encuentran:
La lectura no autorizada de los datos (robo información)
La modificación no autorizada de los datos
La destrucción no autorizada de los datos se de La seguridad de las bases de datos se refiere a la protección frente a accesos malintencionados. Para proteger la base de datos hay que adoptar medidas de seguridad en varios niveles:
  • Sistema de bases de datos
  • Sistema operativo
  • Red
  • Físico
  • Humano

Debe conservarse la seguridad en todos estos niveles si hay que asegurar la seguridad de la base de datos. La debilidad de los niveles bajos de seguridad (físico o humano) permite burlar las medidas de seguridad estrictas de niveles superiores (base de datos). La seguridad dentro del sistema operativo se aplica en varios niveles, que van desde las contraseñas para el acceso al sistema hasta el aislamiento de los procesos concurrentes que se ejecutan en el sistema. El sistema de archivos también proporciona algún nivel de protección.

Autorizaciones y Vistas
Los usuarios pueden tener varios tipos de autorización para diferentes partes de la base de datos. Entre ellas están las siguientes:
La autorización de lectura permite la lectura de los datos, pero no su modificación.
La autorización de inserción permite la inserción de datos nuevos, pero no la modificación de los existentes.
La autorización de actualización permite la modificación de los datos, pero no su borrado.
La autorización de borrado permite el borrado de los datos.
Además de estas formas de autorización para el acceso a los datos, los usuarios pueden recibir autorización para modificar el esquema de la base de datos:
La autorización de índices permite la creación y borrado de índices.
La autorización de recursos permite la creación de relaciones nuevas.
La autorización de alteración permite el añadido o el borrado de atributos de las relaciones.
La autorización de eliminación permite el borrado de relaciones.

Recordando el concepto de Vistas, decimos que:
Una vista es una relación virtual.
Una vista se puede construir realizando operaciones como las del álgebra relacional a partir de las relaciones base de la base de datos. Las relaciones base son aquellas que forman parte directa de la base de datos, las que se encuentran almacenadas físicamente.
Estas proporcionan un poderoso mecanismo de seguridad, ocultando partes de la base de datos a ciertos usuarios. El usuario no sabrá que existen aquellos atributos que se han omitido al definir una vista.
En Postgre SQL:
CREATE TABLE estudiante (nombre varchar(20), nombre ci edad int8
PRIMARY KEY, edad int2);
Nombre CI. Edad
María 17345678 17
Juan 12345657 20
Luis 23456923 19


CREATE VIEW mayoresedad WHERE edad>18; AS SELECT * FROM estudiante nombre ci edad

Nombre CI. Edad
Juan 12345657 20
Luis 23456923 19

Esto permite que cuando se consulte utilizando la vista mayores de edad, sólo se impriman aquellas tuplas donde la edad es mayor a 18 en el caso de la relación Estudiantes... Estas proporcionan un poderoso mecanismo de seguridad, ocultando partes de la base de datos a ciertos usuarios. El usuario no sabrá que existen aquellos atributos que se han omitido al definir una vista.
La creación de vistas no necesita la autorización de recursos.
El usuario que crea una vista no recibe necesariamente todos los privilegios sobre la misma. Ese usuario sólo recibe los privilegios que no proporcionan autorizaciones adicionales respecto de las que ya posee.
Si un usuario crea una vista sobre la que no se puede conceder ninguna autorización, se deniega la solicitud de creación de la vista.

Cifrado y Autentificación
Una técnica de seguridad es el cifrado de datos que sirve para proteger datos confidenciales que se transmiten por satélite o algún tipo de red de comunicaciones. Asimismo el cifrado puede proveer protección adicional a secciones confidenciales de una base de datos.
Los datos se codifican mediante algún algoritmo de codificación. Un usuario no autorizado tendrá problemas para descifrar los datos codificados, pero un usuario autorizado contará con algoritmos para descifrarlos.
Ejemplo que nos permitirá saber cómo utilizar las nuevas funciones de cifrado y descifrado de DB2 en este caso hipotético para proporcionar una capa adicional de seguridad:
SET ENCRYPTION PASSWORD = 'SECRETO'
INSERT INTO cliente VALUES('JOSE', ENCRYPT('1111222233334444'))
SET ENCRYPTION PASSWORD = 'SECRETO'
SELECT nombre, DECRYPT_CHAR(num_tarj)
FROM cliente

En el código anterior, la sentencia Set Encryption Password proporciona a DB2 la clave que se utilizará para cifrar (y descifrar) los datos.
En la sentencia siguiente se muestra cómo se utiliza la función de cifrado de DB2 para codificar el número de la tarjeta de crédito antes de grabarlo en la tabla de DB2. La última
sentencia muestra los pasos necesarios para ver el valor original del número de la tarjeta de crédito, ‘1111222233334444’.
En primer lugar, la clave de cifrado debe ser la misma que la que se utilizó para cifrar el número. Después, debe utilizarse una de las funciones de descifrado de DB2 para convertir el valor binario cifrado en el valor original de tipo carácter.
No hay palabras clave de SQL o DDS que indiquen a DB2 UDB que cifre o descifre automáticamente los datos. Hay que realizar cambios en la aplicación. •La razón es que el cifrado y descifrado automático no ofrece una capa adicional de seguridad. Si DB2 descifra
automáticamente el número de la tarjeta de crédito para todos los usuarios que lean la tabla de clientes, entonces dicho número sería visible para los mismos usuarios que antes de cifrarlo.
Únicamente podrá sacar partido de la seguridad que ofrece el cifrado si cambia las aplicaciones y las interfaces para que descifren de forma selectiva los datos para un subconjunto de usuarios autorizados.

Control de Acceso Discrecional

Obviamente, una BD para una empresa contiene grandes cantidades de información y usualmente tiene varios grupos de usuarios, la mayoría de estos usuarios necesitan acceder sólo a una pequeña parte de los datos. Por ello, un DBMS tiene dos enfoques principales para esto:
1.- Control de acceso discrecional: Previene de accesos no autorizados a la base de datos y está basado en los derechos de acceso o privilegios y mecanismos para darle al
usuario tales privilegios. Acceso discrecional es un modo de restringir el acceso a la información basado en privilegios. Dos niveles de asignación de privilegios:
2- Nivel de cuenta: En este nivel el administrador especifica los privilegios particulares que tiene cada usuario, independiente de las tablas de la BD (CREATE TABLE, CREATE VIEW, ALTER, MODIFY, SELECT).
3- Nivel de relación: En este nivel se controlan los privilegios para tener acceso cada relación o vista individual. Cada tabla de BD tiene asignada una cuenta propietario, que tiene todos los privilegios sobre esa tabla y se encarga de otorgarlos al resto de cuentas. En SQL:
Privilegio SELECT para R confiere a la cuenta el privilegio de consultar la BD para obtener datos de R.
Privilegio MODIFY para R confiere a la cuenta el privilegio de modificar las tuplas de la tabla R.
Privilegio REFERENCES para R confiere a la cuenta el privilegio de hacer referencia a la tabla R por media de una clave ajena.
En SQL las instrucciones para asignar privilegios se denomina GRANT y las que los elimina REVOKE.

Revocacion De Privilegios De Objeto
REVOKE execute ON dbms_pipe FROM scott;
Sintaxis:
REVOKE { object_priv
             [, object_priv ] …
             | ALL [PRIVILEGES]}
    ON     [schema.] object
FROM     {user | role | PUBLIC }
             [, { user | role | PUBLIC } ]…
             [ CASCADE CONSTRAINTS

Donde:
Object_priv especifica el privilegio de objeto que va a ser revocado.
ALL revoca todos los privilegios del objeto que han sido concedido al usuario.
ON identifica el objeto en el que han sido revocados los privilegios.
FROM identifica los usuarios o roles a los que los privilegios de objeto son revocados.
CASCADE CONSTRAINTS Borra cualquier restricción de integridad referencial que haya definido la revocación usando privilegios. REFERENCES o ALL.

                                          Revocación de Privilegios de Objetos Utilizando WITH GRANT OPTION
                                GRANT              SCOTT  USUARIO1 USUARIO2
 
Restricción Los concesores pueden revocar privilegios solo a usuarios a los que ellos hayan concedido privilegios.

La revocación de privilegios será en Cascada cuando se haya dado con WITH GRANT OPTION.
El siguiente escenario muestra lo anterior:
  1. Al USER1 se le concede el privilegio de objeto SELECT con GRANT OPTION.
  2. USER1 concede el privilegio SELECT en EMP al USER2.
Resultado:
3. Más tarde, el privilegio SELECT es revocado a USER1. Esto hace que también le sea revocado a USER

Entre las obligaciones del DBA está otorgar privilegios a los usuarios y clasificar los usuarios y los datos de acuerdo con la política de la organización. Las órdenes privilegiadas del DBA incluyen los siguientes tipos de acciones:
1. Creación de cuentas
2. Concesión de privilegios.
3. Revocación de privilegios.
4. Asignación de niveles de seguridad.
La acción 1 de la lista sirve para controlar el acceso al SGBD en general, la 2 y la 3 para controlar las autorizaciones discrecionales y la 4 controla la autorización obligatoria
Los mecanismos de seguridad obligatorios sirven para imponer seguridad de múltiples niveles clasificando los datos y los usuarios en varias clases de seguridad e implementando después la política de seguridad apropiada de la organización.
Consiste en la clasificación de tanto los sujetos como los objetos en el sistema en ‘clases de acceso’ determinan sus características de confidencialidad.
Una ‘clase de acceso’ es un elemento de un conjunto de ‘clases’ parcialmente ordenadas. Las clases de acceso se definen como un conjunto formado por dos componentes, un
nivel de seguridad’ y un ‘conjunto de categorías’. •Cada ‘nivel de seguridad’ es un elemento de un conjunto jerárquicamente ordenado como ‘alto secreto’ (TS), ‘secreto’ (S), ‘confidencial’ (C) y ‘sin clasificar’ (U), donde TS > S > C > U.
El conjunto de categorías es un subconjunto de un conjunto desordenado, donde los elementos pueden reflejar áreas funcionales o diferentes competencias como por ejemplo
finanzas’, ‘administración’, ‘ventas’ y ‘compras’ para sistemas comerciales.
Sujetos de autorización
USUARIOS
GRUPOS DE USUARIOS
ROLES
PROCESOS
Privilegios de autorización
LEER, ESCRIBIR, EJECUTAR
SELECCIONAR, INSERTAR, ACTUALIZAR, REFERENCIAR, INDEXAR

Las políticas de control de acceso se pueden clasificar en dos grupos:
Cerradas: Solamente los accesos autorizados explícitamente son permitidos



Abiertas: Los accesos que no son explícitamente prohibidos son permitidos.


Dexys Padrón
CI. 12.897.310

No hay comentarios: