descargar - Departamento de Informática y Sistemas

Anuncio
Seguridad en Sistemas de Bases de Datos
Competencias específicas a adquirir
•
Justificar la necesidad de controlar el acceso a la información almacenada por
parte de usuarios no autorizados.
•
Controlar el acceso a la información almacenada por parte de usuarios no
autorizados mediante las técnicas de seguridad y privacidad de los datos
ofrecidas por los SGBDs.
Tema 5. Seguridad en Sistemas de Bases de Datos
1
Seguridad en Sistemas de Bases de Datos
Contenidos
5.1 El problema de la seguridad
5.2 Control de acceso
5.2.1 Control de acceso al sistema global
5.2.2 Control de acceso obligatorio
5.2.3 Control de acceso discrecional
5.3 Seguridad en SQL-92
5.4 Otros aspectos de seguridad: auditoría y cifrado
Tema 5. Seguridad en Sistemas de Bases de Datos
2
1
Seguridad en Sistemas de Bases de Datos
Bibliografía más relevante
• [EN 2007] capítulo 23;
• [CB 2005] capítulo 19;
• [DD 1996] capítulo 15
Tema 5. Seguridad en Sistemas de Bases de Datos
3
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,
L
l
sociales
i l y éticos
éti
¿el solicitante tiene el derecho legal de obtener determinada
información? (saldos de cuentas de clientes)
¿cómo asegurar que no se revelen datos confidenciales a cambio de
sobornos u otros favores?
• Política gubernamental, institucional o corporativa
¿qué información no debe estar disponible al público? (historiales
médicos...)
éd
)
¿cómo se decide ‘quién’ puede acceder a ‘qué’?
• Controles físicos
¿cómo proteger físicamente contra intrusos las salas en donde están los
sistemas informáticos?
Tema 5. Seguridad en Sistemas de Bases de Datos
4
2
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 contraseñas para el acceso al SO ¿cómo 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 día fundamental,
tanto en Internet como en las redes privadas de las organizaciones
• Aspectos
p
específicos
p
del Sistema de Bases de Datos œ
¿dispone el sistema de BD del concepto de propiedad de la información?
¿cómo evitar que los usuarios puedan acceder a ciertas partes de la BD?
¿cómo 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 (œ)
Tema 5. Seguridad en Sistemas de Bases de Datos
5
El problema de la seguridad
• La seguridad es crucial en SBD multiusuario
– Muchos usuarios con acceso a una misma (y gran) BD integrada
– La información confidencial (salarios, saldos, informes de
productividad, etc.) debe estar oculta para la mayoría de usuarios
• El esfuerzo por conservar la seguridad de la BD merece la
pena...
– Grandes bases de datos de nóminas o datos financieros
atractivas para ladrones
– Bases de datos de operaciones empresariales
interesantes para competidores sin escrúpulos
• … pues la pérdida
é
de datos (por accidente o por fraude) supone
elevados costes y disminución de la capacidad de la empresa
para seguir funcionando
Tema 5. Seguridad en Sistemas de Bases de Datos
6
3
El problema de la seguridad
• La protección 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 técnicas 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 Autorización 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 protección individual
– Puede ser desde la base de datos completa, o un conjunto de tablas
... hasta una posición (fila, columna) dentro de cierta tabla
Tema 5. Seguridad en Sistemas de Bases de Datos
7
El problema de la seguridad
• Como hemos visto, las decisiones sobre seguridad son
políticas, no técnicas: están fuera del SGBD
• Pero el SGBD puede reforzarlas: imponerlas, obligar a su
cumplimiento
p
• Para ello...
‰
‰
‰
‰
Tales decisiones deben indicarse al SGBD, mediante LDD
Deben ser recordadas por el SGBD: almacenadas en el
INFORMATION_SCHEMA del catálogo del sistema de BD, en forma de
reglas de seguridad y autorización
El SGBD debe ser capaz de reconocer el origen de una petición
(usuario solicitante) para poder decidir qué reglas de seguridad son
aplicables a cierta petición
Debe existir una forma de comprobar peticiones de acceso
operación solicitada + datos solicitados + usuario solicitante
según las reglas de seguridad aplicables
Tema 5. Seguridad en Sistemas de Bases de Datos
8
4
El problema de la seguridad
• Diferencias Seguridad - Integridad:
– Seguridad: protección de datos contra revelación, alteración o
destrucción no autorizados
Asegurar que los usuarios están 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 pérdida accidental de la consistencia
• Similitudes Seguridad - Integridad:
– El sistema debe conocer las restricciones, tanto de seguridad
como de
d integridad,
i
id d que los
l usuarios
i no deben
d b violar
i l
– El SGBD debe supervisar la interacción 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
catálogo
Tema 5. Seguridad en Sistemas de Bases de Datos
9
Control de acceso
• Se debe evitar el acceso al propio sistema de BD por
parte de usuarios no autorizados
Control de acceso global
• Además se debe permitir que los usuarios,
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,
id d o los
l dos
d
− Mediante estos mecanismos se puede especificar...
• qué usuarios tienen acceso a qué datos, e incluso
• qué operaciones pueden realizar sobre dichos datos
Tema 5. Seguridad en Sistemas de Bases de Datos
10
5
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 acreditación
Tema 5. Seguridad en Sistemas de Bases de Datos
11
Control de acceso global
• Evitar que personal no autorizado acceda al sistema de BD
• Puesto en práctica mediante creación, por parte del ABD, de
cuentas de usuario de BD con contraseñas
• Implementación
– Tabla cifrada con dos columnas: cuenta y contraseña
– Almacenada en el INFORMATION_SCHEMA del catálogo y mantenida
por el SGBD
• Autenticación de usuarios
– Para entrar al sistema, el usuario indica al SGBD su cuenta y
contraseña
– Una vez que el SGBD valida esos datos, el usuario puede acceder a la
información almacenada en la BD
L un programa de aplicación puede ‘ser un usuario’ (puede exigírsele contraseña)
Tema 5. Seguridad en Sistemas de Bases de Datos
12
6
Control de acceso global
• Supervisión de toda operación realizada por cada
usuario en cada sesión de trabajo:
– Cuando el usuario entra al sistema, el SGBD asocia su cuenta al
puesto (equipo o terminal) desde el que se conecta
– Toda operación desde ese puesto se atribuye a la cuenta del usuario,
hasta que éste sale del sistema
Si se realiza una operación ilegal o no autorizada sobre la BD,
el ABD podrá determinar quién lo hizo
œ Seguimiento de Auditoría
í
(apartado 4)
Tema 5. Seguridad en Sistemas de Bases de Datos
13
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...
corporaciones
• Se suele combinar con el control de acceso discrecional
– Aunque la mayoría de SGBD sólo ofrecen el discrecional
• Clasificación 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 acreditación
− Cada objeto de datos puede ser accedido sólo por usuarios con
la acreditación apropiada
Tema 5. Seguridad en Sistemas de Bases de Datos
14
7
Control de acceso obligatorio
• Niveles de seguridad
ƒ TS (top secret) secreto máximo o alto secreto
ƒ S (secret)
secreto
ƒ C (confidential)
( fid ti l) 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)
Tema 5. Seguridad en Sistemas de Bases de Datos
15
Control de acceso discrecional
• Soportado por la mayoría de los SGBD comerciales (Oracle)
• Basado en privilegios
• Un privilegio es un derecho de acceso o autorización para
realizar determinada operación 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,
SELECT INSERT y DELETE sobre PELICULA,
PELICULA
mientras que U2 tiene sólo el privilegio SELECT
• Clases de privilegios
ƒ Privilegios de nivel de cuenta y
ƒ Privilegios de nivel de objeto de base de datos
Tema 5. Seguridad en Sistemas de Bases de Datos
16
8
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 están definidos en el estándar SQL-92, sino que son
específicos
ífi
de
d cada
d SGBD comercial
i l particular
ti l
Privilegios de nivel de objeto de BD
• Permiten especificar qué usuarios tienen qué privilegios
sobre qué objetos concretos
• Están definidos en el estándar SQL-92
Tema 5. Seguridad en Sistemas de Bases de Datos
17
Resumen
• Quién se encarga de controlar la seguridad
• Distinguir seguridad e integridad
• Cuáles son los tipos de controles de acceso más utilizados y qué tipo de políticas
permiten definir
Tema 5. Seguridad en Sistemas de Bases de Datos
18
9
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 concesión (GRANT OPTION)
• Concesión 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;
Tema 5. Seguridad en Sistemas de Bases de Datos
19
Seguridad en SQL-92
Tipos de privilegios (de nivel de objeto)
ƒ SELECT
ver toda columna de cierta tabla, incluso si ha sido
añadida después de haber sido creada. NO ES POSIBLE
INDICAR SÓLO ALGUNAS COLUMNA.
ƒ UPDATE
sobre una tabla concreta, quizá de sólo algunas columnas
ƒ INSERT
sobre una tabla concreta, quizá con valores para sólo
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 sólo RI Referencial
ƒ USAGE
uso de ciertos dominios
ƒ ALL PRIVILEGES todos los que tiene sobre el objeto el usuario que
concede (que ejecuta GRANT)
Tema 5. Seguridad en Sistemas de Bases de Datos
20
10
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
Tema 5. Seguridad en Sistemas de Bases de Datos
21
Seguridad en SQL-92
• Cancelación de privilegios (nivel de objeto)
REVOKE [GRANT OPTION FOR] <privilegios> ON <objetos>
FROM <sujetos> { RESTRICT | CASCADE }
– También ‘revocación’ o ‘denegación’ de privilegios
– La opción RESTRICT | CASCADE la veremos más 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
Tema 5. Seguridad en Sistemas de Bases de Datos
22
11
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 sólo algunas
columnas a1,a2,a3
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 sólo algunas filas de R, las que
satisfacen cierta condición Q
CREATE VIEW W AS SELECT * FROM R WHERE Q;
GRANT SELECT ON W TO u2;
1 Para poder crear una vista, el usuario debe poseer el
privilegio SELECT sobre cada tabla base de la vista,
además del privilegio de cuenta CREATE VIEW
Tema 5. Seguridad en Sistemas de Bases de Datos
23
Seguridad en SQL-92
Propagación de privilegios
- Cuando u1, propietario de una tabla R, concede privilegios
sobre R a otro usuario u2, también puede darle la opción 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
propagación de privilegios
- El SGBD mantiene la pista de la concesión y propagación de
privilegios entre los usuarios
Tema 5. Seguridad en Sistemas de Bases de Datos
24
12
Seguridad en SQL-92
Propagación 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;
2
- Pero si u1 sí revoca el privilegio concedido a u2, ¿qué ocurre
con los que u2 ya propagó a partir de la concesión?
Privilegios abandonados (no aplicables)
- Y si el propietario de una vista V pierde el privilegio SELECT
sobre
b alguna
l
de
d las
l tablas
bl base
b
de
d V
Vista abandonada (no válida, no puede utilizarse)
Tema 5. Seguridad en Sistemas de Bases de Datos
25
Seguridad en SQL-92
Propagación de privilegios (3)
• Cuando un usuario revoca privilegios, indica una de estas
opciones...
ƒ CASCADE
– el SGBD revocará automáticamente todos los privilegios
que quedarían abandonados y
– eliminará las vistas que quedarían abandonadas
ƒ RESTRICT
– el SGBD no revocará un privilegio si ello dejara
privilegios o vistas abandonados
– es la opción por omisión
REVOKE SELECT ON Fotografo FROM julia CASCADE;
REVOKE INSERT ON Reportaje FROM cristina RESTRICT;
Tema 5. Seguridad en Sistemas de Bases de Datos
26
13
Seguridad en SQL-92
Propagación de privilegios (y 4)
• La revocación completa y correcta de privilegios sólo se
conseguirá si el SGBD sigue la pista de la concesión y
propagación de privilegios
• Un usuario puede recibir un mismo privilegio desde varios
usuarios. Sólo lo perderá si se lo revocan todos ellos
• Eliminar un objeto (dominio, tabla, columna o vista), revoca
automáticamente todo privilegio sobre el objeto eliminado,
en todos los usuarios
Tema 5. Seguridad en Sistemas de Bases de Datos
27
Seguridad en SQL-92
Ejercicio
Considere el modelo de seguridad discrecional visto en clase. Supongamos
que el usuario user1 es propietario de un esquema, indique qué sentencias
en SQL
Q hacen falta a)) y b),
), y responda
p
a la pregunta
p g
de c):
)
a) user1 concede a user2 privilegios de inserción y eliminación de filas
en la tabla A con posibilidad de propagación de privilegios
b)user2 concede a user3 el privilegio de inserción sobre A
c)Si user1 cancela a user2 la opción de propagación del privilegio de
inserción sobre A.
A ¿Pueden ahora user2 y user 3insertar filas en A?¿Por
qué?
Tema 5. Seguridad en Sistemas de Bases de Datos
28
14
Otros aspectos de seguridad
Seguimiento de auditoría
• Necesario si los datos son muy delicados, o el
procesamiento realizado con ellos es crítico
• Consiste
C
i t en mantener
t
un fichero
fi h
especial
i l donde
d d ell
sistema registra de forma automática, toda interacción
de los usuarios con la información almacenada en la base
de datos
• El seguimiento de auditoría permite ...
– Verificar que todo está en orden
– Descubrir
D
b i sii alguien
l i ha
h accedido
did de
d forma
f
ilegal,
il
l o ha
h realizado
li d
operaciones sin autorización
Tema 5. Seguridad en Sistemas de Bases de Datos
29
Otros aspectos de seguridad
Seguimiento de auditoría (y 2)
• Cada entrada en el fichero de auditoría podría contener...
ƒ puesto o terminal desde la que se invocó la operación
ƒ usuario que solicitó la operación
ƒ operación realizada (por ejemplo UPDATE)
ƒ objetos afectados: base de datos, tablas (ficheros), filas (registros) y
columnas (campos)
ƒ fecha y hora de la operación
• En muchos casos, el hecho de mantener un seguimiento de
auditoría basta para desanimar a posibles «espías»
Tema 5. Seguridad en Sistemas de Bases de Datos
30
15
Otros aspectos de seguridad
Cifrado de los datos
• Para proteger datos confidenciales...
- transmitidos por satélite o cualquier tipo de red de comunicaciones
- almacenados en la BD ((Ö p
protección de áreas de la BD))
• Esquema de cifrado...
Texto Original
Clave de
texto plano
Cifrado
ƒ Clave de cifrado secreta
ƒ Algoritmo de cifrado público 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, ¿cuál es
la dificultad para encontrar la clave,
comparando textos planos y los textos
cifrados correspondientes?
Texto Cifrado
Tema 5. Seguridad en Sistemas de Bases de Datos
31
Otros aspectos de seguridad
Cifrado de los datos (y 2)
– Debe tomarse la precaución de cambiar la clave secreta de
forma periódica
– Punto débil: ¿dónde almacenar la clave? ¿y si las líneas de
comunicación para intercambiar la clave no son seguras?
• Cifrado de clave pública
ƒ El algoritmo de cifrado público o secreto
ƒ Clave de cifrado (del destinatario) pública
ƒ Clave de descifrado (del destinatario) secreta
– Ninguna
g
puede
p
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
Tema 5. Seguridad en Sistemas de Bases de Datos
32
16
Resumen
• Tipos de privilegios que se pueden definir en SQL-92
SQL 92
• Sentencias SQL para la concesión y revocación de
privilegios
• Rol de las vistas en seguridad
• Rol del seguimiento de auditoría
Tema 5. Seguridad en Sistemas de Bases de Datos
33
17
Descargar