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:
- Al USER1 se le concede el privilegio de objeto SELECT con GRANT OPTION.
- 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
CI. 12.897.310
No hay comentarios:
Publicar un comentario