You are on page 1of 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?

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

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
4

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

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
6

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

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

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
POSIBLE

UPDATE

ver toda columna de cierta tabla, incluso si ha sido


aadida despus de haber sido creada. NO ES
INDICAR SLO ALGUNAS COLUMNA.
sobre una tabla concreta, quiz de slo algunas

columnas

INSERT
slo

sobre una tabla concreta, quiz con valores para


algunas columnas

DELETE

filas de cierta tabla

REFERENCES

permite hacer referencia a (columnas concretas


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

de)
de

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
M
usuario_1

objeto_1 objeto_2 objeto_3


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
texto plano

Clave de
Cifrado

Clave de cifrado secreta


Algoritmo de cifrado pblico o secreto
Algoritmo de
El texto cifrado se transmite o almacena
Cifrado
y es ininteligible para quien no dispone de la clave
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

You might also like