Está en la página 1de 28

Seguridad

Base de Datos

5.1 El problema de la seguridad


Aspectos del problema de la seguridad
El mbito de la seguridad de las bases de datos es amplio, pues abarca
aspectos relacionados con hardware, software, personas y datos:

Legales, sociales y ticos


el solicitante tiene el derecho legal de obtener determinada
informacin? (saldos de cuentas de clientes)
cmo asegurar que no se revelen datos confidenciales a cambio de
sobornos u otros favores?

Poltica gubernamental, institucional o corporativa


qu informacin no debe estar disponible al pblico? (historiales
mdicos...)
cmo se decide quin puede acceder a qu?

Controles fsicos
cmo proteger fsicamente contra intrusos las salas en donde estn los
sistemas informticos?
2

5.1 El problema de la seguridad


Aspectos del problema de la seguridad (y 2)
Seguridad del Sistema Operativo
borra el SO el contenido de reas de almacenamiento y archivos de
datos cuando no se necesitan?
el SO permite el acceso directo a los ficheros de la base de datos?
si se usan contraseas para el acceso al SO cmo se mantienen en
secreto? con qu frecuencia se cambian?

Seguridad de la Red
La seguridad en el nivel de software de red es hoy en da fundamental,
tanto en Internet como en las redes privadas de las organizaciones

Aspectos especficos del Sistema de Bases de Datos


dispone el sistema de BD del concepto de propiedad de la informacin?
cmo evitar que los usuarios puedan acceder a ciertas partes de la BD?
cmo limitar las operaciones que los usuarios pueden realizar sobre la
BD?

Hay que adoptar medidas de seguridad en todos estos niveles,


pero nos centraremos en el ltimo de ellos ()
3

5.1 El problema de la seguridad


La seguridad es crucial en SBD multiusuario
Muchos usuarios con acceso a una misma (y gran) BD integrada
La informacin confidencial (salarios, saldos, informes de
productividad, etc.) debe estar oculta para la mayora de usuarios

El esfuerzo por conservar la seguridad de la BD merece la


pena...
Grandes bases de datos de nminas o datos financieros
atractivas para ladrones
Bases de datos de operaciones empresariales
interesantes para competidores sin escrpulos

pues la prdida de datos (por accidente o por fraude) supone


elevados costes y disminucin de la capacidad de la empresa
para seguir funcionando

5.1 El problema de la seguridad


La proteccin total y absoluta de la BD contra el mal
uso intencionado es imposible
Pero se puede elevar el coste de los intentos de acceso no
autorizado lo suficiente como para disuadirlos
El SGBD proporciona tcnicas para que (grupos de) usuarios
tengan acceso a ciertas partes de la base de datos, sin tener
acceso al resto
El Subsistema de Seguridad y Autorizacin del SGBD garantiza la
seguridad de (partes de) la BD contra accesos no autorizados

El SGBD tiene definido el objeto de datos:


Unidad de datos que requiere proteccin individual
Puede ser desde la base de datos completa, o un conjunto de tablas
... hasta una posicin (fila, columna) dentro de cierta tabla

5.1 El problema de la seguridad


Como hemos visto, las decisiones sobre seguridad son
polticas, no tcnicas: estn fuera del SGBD
Pero el SGBD puede reforzarlas: imponerlas, obligar a su
cumplimiento
Para ello...

Tales decisiones deben indicarse al SGBD, mediante LDD


Deben ser recordadas por el SGBD: almacenadas en el
INFORMATION_SCHEMA del catlogo del sistema de BD, en forma de
reglas de seguridad y autorizacin
El SGBD debe ser capaz de reconocer el origen de una peticin
(usuario solicitante) para poder decidir qu reglas de seguridad son
aplicables a cierta peticin
Debe existir una forma de comprobar peticiones de acceso
operacin solicitada + datos solicitados + usuario solicitante
segn las reglas de seguridad aplicables

5.1 El problema de la seguridad


Diferencias Seguridad - Integridad:
Seguridad: proteccin de datos contra revelacin, alteracin o
destruccin no autorizados
Asegurar que los usuarios estn autorizados para hacer lo que
quieren hacer
Integridad: exactitud o validez de datos (reflejo de la realidad)
Asegurar que lo que los usuarios tratan de hacer es correcto, y
Evitar la prdida accidental de la consistencia

Similitudes Seguridad - Integridad:


El sistema debe conocer las restricciones, tanto de seguridad
como de integridad, que los usuarios no deben violar
El SGBD debe supervisar la interaccin de cada usuario con la
BD, para controlar el cumplimiento de las restricciones
Restricciones especificadas en un lenguaje apropiado (LDD)
Y son almacenadas y mantenidas en el INFORMATION_SCHEMA del
catlogo
7

5.2 Control de acceso


Se debe evitar el acceso al propio sistema de BD por
parte de usuarios no autorizados
Control de acceso global
Adems se debe permitir que los usuarios, una vez
conectados a la BD, puedan acceder a ciertas porciones
sin tener acceso al resto
Control de acceso obligatorio
Control de acceso discrecional
Un SGBD moderno suele implementar uno de estos mecanismos de
seguridad, o los dos
Mediante estos mecanismos se puede especificar...
qu usuarios tienen acceso a qu datos, e incluso
qu operaciones pueden realizar sobre dichos datos

5.2 Control de acceso


El administrador de la base de datos, ABD, es la
autoridad central responsable de la seguridad global del
sistema de bases de datos
Dispone de una cuenta de bases de datos privilegiada o de
sistema, con capacidades extraordinarias, desde la que
puede...
Crear y eliminar cuentas de usuario
Control Global

para acceso a la base de datos


Conceder y cancelar privilegios a Control Discrecional
(cuentas de) usuarios
Asignar datos a niveles de seguridad
Control Obligatorio
Asignar cuentas de usuario a niveles
de seguridad o acreditacin

5.2.1 Control de acceso global


Evitar que personal no autorizado acceda al sistema de BD
Puesto en prctica mediante creacin, por parte del ABD, de
cuentas de usuario de BD con contraseas
Implementacin
Tabla cifrada con dos columnas: cuenta y contrasea
Almacenada en el INFORMATION_SCHEMA del catlogo y mantenida
por el SGBD

Autenticacin de usuarios
Para entrar al sistema, el usuario indica al SGBD su cuenta y
contrasea
Una vez que el SGBD valida esos datos, el usuario puede acceder a la
informacin almacenada en la BD
un programa de aplicacin puede ser un usuario (puede exigrsele contrasea)

10

5.2.1 Control de acceso global


Supervisin de toda operacin realizada por cada
usuario en cada sesin de trabajo:
Cuando el usuario entra al sistema, el SGBD asocia su cuenta al
puesto (equipo o terminal) desde el que se conecta
Toda operacin desde ese puesto se atribuye a la cuenta del usuario,
hasta que ste sale del sistema

Si se realiza una operacin ilegal o no autorizada sobre la BD,


el ABD podr determinar quin lo hizo

Seguimiento de Auditora

(apartado 4)

11

5.2.2 Control de acceso obligatorio


Para establecer una seguridad multinivel
Existe la necesidad de este tipo de seguridad en aplicaciones
gubernamentales, militares, de espionaje, de algunas
grandes industrias y corporaciones...
Se suele combinar con el control de acceso discrecional
Aunque la mayora de SGBD slo ofrecen el discrecional

Clasificacin de los datos y usuarios en niveles de


seguridad
Cada objeto de datos es etiquetado con un nivel de seguridad
Cada usuario se asigna a un nivel de acreditacin
Cada objeto de datos puede ser accedido slo por usuarios con
la acreditacin apropiada

12

5.2.2 Control de acceso obligatorio


Niveles de seguridad
TS (top secret) secreto mximo o alto secreto
S (secret)
secreto
C (confidential) confidencial
U (unclassified) no clasificado

Modelo de seguridad multinivel


Asigna a cada sujeto (usuario o cuenta, o programa)
y a cada objeto (tabla, fila, columna, vista)
un nivel de seguridad (TS, S, C, U)
Restricciones de acceso:
un sujeto S puede leer el objeto O si nivel(S) nivel(O)
un sujeto S puede escribir el objeto O si nivel(S) = nivel(O)
13

5.2.3 Control de acceso discrecional


Soportado por la mayora de los SGBD comerciales (Oracle)
Basado en privilegios
Un privilegio es un derecho de acceso o autorizacin para
realizar determinada operacin sobre ciertos objetos de BD
Un usuario puede tener diversos privilegios sobre
distintos objetos
Privilegio SELECT sobre las tablas PELICULA, DIRECTOR y ACTOR

Diferentes usuarios pueden tener privilegios distintos


sobre un mismo objeto
U1 con privilegios SELECT, INSERT y DELETE sobre PELICULA,
mientras que U2 tiene slo el privilegio SELECT

Clases de privilegios
Privilegios de nivel de cuenta y
Privilegios de nivel de objeto de base de datos
14

5.2.3 Control de acceso discrecional


Privilegios de nivel de cuenta
Privilegios particulares de cada usuario (cuenta),
independientemente de los objetos de BD existentes
Tipos de privilegios

CREATE SCHEMA, DROP SCHEMA,


CREATE TABLE, ALTER TABLE, DROP TABLE,
CREATE VIEW, DROP VIEW,
CREATE DOMAIN, ALTER DOMAIN, DROP DOMAIN,
CREATE ASSERTION, DROP ASSERTION,
SELECT, INSERT, UPDATE, DELETE (sobre cualquier tabla)

No estn definidos en el estndar SQL-92, sino que son


especficos de cada SGBD comercial particular

Privilegios de nivel de objeto de BD


Permiten especificar qu usuarios tienen qu privilegios
sobre qu objetos concretos
Estn definidos en el estndar SQL-92
15

5.3 Seguridad en SQL-92


Propietario de un objeto de base de datos
-

El usuario que lo ha creado (= cuenta de BD en la que fue creado)


Posee todos los privilegios (posibles) sobre el objeto,
y capacidad de conceder tales privilegios a otros usuarios (GRANT)
e incluso propagar dicha capacidad de concesin (GRANT OPTION)

Concesin de privilegios (de nivel de objeto)


GRANT <privilegios> ON <objetos>
TO <sujetos> [ WITH GRANT OPTION ]
Especifica qu operaciones pueden realizar sobre qu objetos
ciertos usuarios
GRANT SELECT ON Fotografo TO julia;
GRANT UPDATE(cuota) ON Editorial TO julia, ruben;
GRANT INSERT ON Reportaje TO cristina WITH GRANT OPTION;
GRANT DELETE ON Exclusiva TO eva;
16

5.3 Seguridad en SQL-92


Tipos de privilegios (de nivel de objeto)
SELECT

ver toda columna de cierta tabla, incluso si ha sido


aadida despus de haber sido creada. NO ES POSIBLE
INDICAR SLO ALGUNAS COLUMNA.

UPDATE

sobre una tabla concreta, quiz de slo algunas columnas

INSERT

sobre una tabla concreta, quiz con valores para slo


algunas columnas

DELETE

filas de cierta tabla

REFERENCES

permite hacer referencia a (columnas concretas de)


cierta tabla mediante Restricciones de Integridad de
cualquier tipo, no slo RI Referencial

USAGE

uso de ciertos dominios

ALL PRIVILEGES todos los que tiene sobre el objeto el usuario que
concede (que ejecuta GRANT)
17

5.3 Seguridad en SQL-92


Modelo de Matriz de Acceso
objeto_1 objeto_2 objeto_3
M
usuario_1 none SELECT
ALL

SELECT
usuario_2 SELECT UPDATE DELETE
UPDATE
usuario_3 none
none SELECT
usuario_4
ALL
ALL
ALL

M(usuario_i,objeto_j)=conjunto de privilegios del usuario_i sobre objeto_j


La fila usuario_i es el perfil del usuario usuario_i

18

5.3 Seguridad en SQL-92


Cancelacin de privilegios (nivel de objeto)
REVOKE [GRANT OPTION FOR] <privilegios> ON <objetos>
FROM <sujetos> { RESTRICT | CASCADE }
Tambin revocacin o denegacin de privilegios
La opcin RESTRICT | CASCADE la veremos ms adelante
REVOKE SELECT ON Fotografo FROM julia;
REVOKE UPDATE ON Editorial FROM julia, ruben;
REVOKE INSERT ON Reportaje FROM cristina;
REVOKE DELETE ON Exclusiva FROM eva;

REVOKE ALL PRIVILEGES ON <objetos> FROM <sujetos>


Cancela todos los privilegios que el usuario que ejecuta la sentencia
concedi a los sujetos indicados en el FROM
19

5.3 Seguridad en SQL-92


Uso de vistas como mecanismo de seguridad
El usuario u1 es propietario de la tabla R(a1,a2,a3,a4,a5)
Si u1 desea que otro usuario u2 pueda leer slo algunas
columnas a1,a2,a3 de R
CREATE VIEW V AS SELECT a1, a2, a3 FROM R;
GRANT SELECT ON V TO u2;

Si u1 desea que u2 lea slo algunas filas de R, las que


satisfacen cierta condicin Q
CREATE VIEW W AS SELECT * FROM R WHERE Q;
GRANT SELECT ON W TO u2;

Para poder crear una vista, el usuario debe poseer el


privilegio SELECT sobre cada tabla base de la vista,
adems del privilegio de cuenta CREATE VIEW
20

5.3 Seguridad en SQL-92


Propagacin de privilegios
- Cuando u1, propietario de una tabla R, concede privilegios
sobre R a otro usuario u2, tambin puede darle la opcin de
otorgar dichos privilegios a terceros
GRANT SELECT, INSERT ON R TO u2 WITH GRANT OPTION;

- A partir de ese momento, u2 podr conceder esos


privilegios sobre R a otras cuentas de usuario
propagacin de privilegios
- El SGBD mantiene la pista de la concesin y propagacin de
privilegios entre los usuarios

21

5.3 Seguridad en SQL-92


Propagacin de privilegios

(2)

- Revocar la GRANT OPTION de cierto privilegio a u2 no le cancela


dicho privilegio, pero evita que u2 lo propague
REVOKE GRANT OPTION FOR INSERT ON R FROM u2;

- Pero si u1 s revoca el privilegio concedido a u2, qu ocurre


con los que u2 ya propag a partir de la concesin?
Privilegios abandonados (no aplicables)
- Y si el propietario de una vista V pierde el privilegio SELECT
sobre alguna de las tablas base de V
Vista abandonada (no vlida, no puede utilizarse)

22

5.3 Seguridad en SQL-92


Propagacin de privilegios (3)
Cuando un usuario revoca privilegios, indica una de estas
opciones...
CASCADE
el SGBD revocar automticamente todos los privilegios
que quedaran abandonados y
eliminar las vistas que quedaran abandonadas
RESTRICT
el SGBD no revocar un privilegio si ello dejara
privilegios o vistas abandonados
es la opcin por omisin
REVOKE SELECT ON Fotografo FROM julia CASCADE;
REVOKE INSERT ON Reportaje FROM cristina RESTRICT;
23

5.3 Seguridad en SQL-92


Propagacin de privilegios (y 4)
La revocacin completa y correcta de privilegios slo se
conseguir si el SGBD sigue la pista de la concesin y
propagacin de privilegios
Un usuario puede recibir un mismo privilegio desde varios
usuarios. Slo lo perder si se lo revocan todos ellos
Eliminar un objeto (dominio, tabla, columna o vista), revoca
automticamente todo privilegio sobre el objeto eliminado,
en todos los usuarios

24

5.4 Otros aspectos de seguridad


Seguimiento de auditora
Necesario si los datos son muy delicados, o el
procesamiento realizado con ellos es crtico
Consiste en mantener un fichero especial donde el
sistema registra de forma automtica, toda interaccin
de los usuarios con la informacin almacenada en la base
de datos
El seguimiento de auditora permite ...
Verificar que todo est en orden
Descubrir si alguien ha accedido de forma ilegal, o ha realizado
operaciones sin autorizacin

25

5.4 Otros aspectos de seguridad


Seguimiento de auditora (y 2)
Cada entrada en el fichero de auditora podra contener...
puesto o terminal desde la que se invoc la operacin
usuario que solicit la operacin
operacin realizada (por ejemplo UPDATE)
objetos afectados: base de datos, tablas (ficheros), filas (registros) y
columnas (campos)
fecha y hora de la operacin

En muchos casos, el hecho de mantener un seguimiento de


auditora basta para desanimar a posibles espas

26

5.4 Otros aspectos de seguridad


Cifrado de los datos
Para proteger datos confidenciales...
- transmitidos por satlite o cualquier tipo de red de comunicaciones
- almacenados en la BD ( proteccin de reas de la BD)

Esquema de cifrado...

Texto Original

Clave de
Cifrado

texto plano
Clave de cifrado secreta
Algoritmo de cifrado pblico o secreto
El texto cifrado se transmite o almacena
Algoritmo de
y es ininteligible para quien no dispone de la clave
Cifrado

Problema...
Para un infiltrado o intruso, cul es
la dificultad para encontrar la clave,
comparando textos planos y los textos
cifrados correspondientes?

Texto Cifrado

27

5.4 Otros aspectos de seguridad


Cifrado de los datos (y 2)
Debe tomarse la precaucin de cambiar la clave secreta de
forma peridica
Punto dbil: dnde almacenar la clave? y si las lneas de
comunicacin para intercambiar la clave no son seguras?

Cifrado de clave pblica


El algoritmo de cifrado pblico o secreto
Clave de cifrado (del destinatario) pblica
Clave de descifrado (del destinatario) secreta
Ninguna puede deducirse de la otra
Incluso el que cifra puede ser incapaz de recuperar el texto plano si
desconoce la clave de descifrado

El cifrado de los datos reduce el rendimiento del sistema


El SGBD debe decodificar/codificar los datos manejados
28