11. Seguridad en sistemas de bases de datos 11. Seguridad en

Anuncio
11. Seguridad en sistemas de
bases de datos
Objetivos
• Comprender la necesidad de controlar el acceso a la
información almacenada por parte de usuarios no
autorizados
• Conocer las posibilidades que puede ofrecer un sistema de
bases de datos relacional para establecer la seguridad y
privacidad de los datos almacenados
Contenidos
11.1 El problema de la seguridad
11.2 Control de acceso (global, obligatorio, discrecional)
11.3 Seguridad en SQL-92
11.4 Otros aspectos de seguridad: auditoría y cifrado
Tema 4. Seguridad en Sistemas de Bases de Datos
1
11. Seguridad en sistemas de
bases de datos
Bibliografía
[EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de
Bases de Datos. 3ª Edición. Addison-Wesley. (Cap. 22)
[EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos.
Conceptos fundamentales. 2ª Ed. Addison-Wesley
Iberoamericana. (Cap. 20)
[CBS 1998] Connolly et al.: Database Systems: A Practical Approach to
Design, Implementation and Management. 2 nd Ed.
Addison-Wesley (Cap. 16)
[DD 1996] Date, C.J.; Darwen, H.: A guide to the SQL Standard. 4th Ed.
Addison-Wesley (Cap. 15)
Tema 4. Seguridad en Sistemas de Bases de Datos
2
11.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 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...)
¿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 4. Seguridad en Sistemas de Bases de Datos
3
11.1 El problema de la seguridad
Aspectos del problema de la seguridad (y 2)
• Seguridad del S.O.
¿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 específicos del sistema de bases de datos ¶
¿dispone el sistema de BD de un 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?
I Hay que adoptar medidas de seguridad en todos estos niveles,
pero nos centraremos en el último de ellos...
Tema 4. Seguridad en Sistemas de Bases de Datos
4
11.1 El problema de la seguridad
• La seguridad es crucial en SBD multiusuario, pues
– Diferentes usuarios usan una misma (y grande) BD integrada
– Información confidencial (salarios, saldos) debe ocultarse a la
mayoría de usuarios
» 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
• 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
Tema 4. Seguridad en Sistemas de Bases de Datos
5
11.1 El problema de la seguridad
• 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
– La pérdida de datos (por accidente o fraude) supone elevados costes y
disminución de la capacidad de la empresa para seguir funcionando
¥El Subsistema de Seguridad y Autorización del SGBD
garantiza la seguridad de (partes de) la base de datos contra
accesos no autorizados
Tema 4. Seguridad en Sistemas de Bases de Datos
6
11.1 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 que los usuarios no
deben violar
– Restricciones especificadas en un lenguaje apropiado
– Restricciones deben ser almacenadas y mantenidas en el catálogo
del sistema
– El SGBD debe supervisar la interacción de cada usuario con la BD,
para controlar el cumplimiento de las restricciones
Tema 4. Seguridad en Sistemas de Bases de Datos
7
11.2 Control de acceso
• Un 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
• Un SGBD moderno suele implementar uno o ambos de estos
mecanismos de seguridad:
§ CONTROL DISCRECIONAL
§ CONTROL OBLIGATORIO
• Mediante estos mecanismos se puede especificar...
– qué usuarios tienen acceso a qué datos, e incluso
– qué operaciones pueden realizar sobre dichos datos
Tema 4. Seguridad en Sistemas de Bases de Datos
8
11.2 Control de acceso
• Las decisiones sobre seguridad ...
– son políticas, no técnicas: están fuera del SGBD
– pero el SGBD puede reforzarlas: imponerlas, obligar a cumplirlas
• Para ello...
q
q
q
q
Tales decisiones deben indicarse al SGBD, mediante LDD
Deben ser recordadas por el SGBD: almacenadas en el catálogo en
forma de reglas de seguridad y autorización
Debe existir una forma de comprobar peticiones de acceso
operación solicitada + datos solicitados + usuario solicitante
según las reglas de seguridad aplicables
El SGBD debe ser capaz de reconocer el origen de una petición
(usuario solicitante) para decidir qué reglas de seguridad son
aplicables a cierta petición
ð control de acceso al sistema de bases de datos
Tema 4. Seguridad en Sistemas de Bases de Datos
9
11.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 cuentas de usuario para acceso
D Control Global
a la base de datos
– Conceder y cancelar privilegios a D Control Discrecional
(cuentas de) usuarios
– Asignar datos a niveles de seguridad
– Asignar cuentas de usuario a niveles D Control Obligatorio
de seguridad o acreditación
Tema 4. Seguridad en Sistemas de Bases de Datos
10
11.2.1 Control de acceso al sistema 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 atributos: cuenta y contraseña
– almacenada en el catálogo del SGBD y mantenida por éste
• 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 usar el
SGBD y acceder a la información almacenada
i un programa de aplicación puede ser un usuario (puede exigírsele contraseña)
Tema 4. Seguridad en Sistemas de Bases de Datos
11
11.2.1 Control de acceso al sistema global
• Control 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 (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
Tema 4. Seguridad en Sistemas de Bases de Datos
(apartado 4)
12
11.2.3 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 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 4. Seguridad en Sistemas de Bases de Datos
13
11.2.3 Control de acceso obligatorio
• Niveles de seguridad
§ TS (top secret)
secreto máximo 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, tupla, 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 4. Seguridad en Sistemas de Bases de Datos
14
11.2.2 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 datos
– Un usuario puede tener diversos privilegios sobre
distintos objetos de base de datos
– Diferentes usuarios pueden tener privilegios distintos
sobre un mismo objeto
• Clases de privilegios
§ Privilegios en el nivel de cuenta y
§ Privilegios en el nivel de objeto de base de datos
Tema 4. Seguridad en Sistemas de Bases de Datos
15
11.2.2 Control de acceso discrecional
Privilegios en el 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 relación)
• No están definidos en el estándar SQL-92, sino que son
específicos de cada SGBD comercial particular
Privilegios en el 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 4. Seguridad en Sistemas de Bases de Datos
16
11.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 concesión (GRANT OPTION)
• Concesión de privilegios
GRANT <privilegios> ON <objetos>
TO <sujetos> [ WITH GRANT OPTION ]
– Especifica qué operaciones pueden realizar sobre qué objetos
ciertos usuarios
GRANT SELECT ON Fotógrafo TO julia;
GRANT UPDATE(cuota) ON Editorial TO ruben;
GRANT INSERT ON Reportaje TO cristina WITH GRANT OPTION;
Tema 4. Seguridad en Sistemas de Bases de Datos
17
11.3 Seguridad en SQL-92
Tipos de privilegios
§ SELECT
todo atributo de cierta relación, incluso si ha sido
añadido después de haber sido creada
§ UPDATE
sobre una relación concreta, quizá de sólo algunos
atributos
§ INSERT
sobre una relación concreta, quizá con valores para
sólo algunos atributos
§ DELETE
tuplas de cierta relación
§ REFERENCES
permite hacer referencia a (atributos concretos de)
cierta relación 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 quien concede
Tema 4. Seguridad en Sistemas de Bases de Datos
18
11.3 Seguridad en SQL-92
• Modelo de Matriz de Acceso
Objeto1 Objeto2 Objeto3 ...
Usuario1 NONE
SELECT ALL
Usuario2 SELECT UPDATE SELECT
DELETE
UPDATE
Usuario3 NONE
NONE
SELECT
Usuario4 ALL
ALL
ALL
M(u,o) = conjunto de
privilegios del usuario u
sobre el objeto o
La fila u es el perfil del
usuario u
• Cancelación de privilegios (revocación)
REVOKE [GRANT OPTION FOR] <privilegios> ON <objetos>
FROM <sujetos> { RESTRICT | CASCADE }
REVOKE SELECT ON Fotografo FROM julia;
REVOKE UPDATE ON Editorial FROM ruben;
REVOKE INSERT ON Reportaje FROM cristina;
Tema 4. Seguridad en Sistemas de Bases de Datos
19
11.3 Seguridad en SQL-92
Uso de vistas como mecanismo de seguridad
El usuario u1 es propietario de la relación R(a1,a2,a3,a4,a5)
• Si u1 desea que otro usuario u2 pueda leer sólo algunos
atributos 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 tuplas de R, las que
satisfacen cierta condición Q
CREATE VIEW W AS SELECT * FROM R WHERE Q;
GRANT SELECT ON W TO u2;
N Para poder crear una vista, el usuario debe poseer el
privilegio SELECT sobre cada tabla base de la vista
Tema 4. Seguridad en Sistemas de Bases de Datos
20
11.3 Seguridad en SQL-92
Propagación de privilegios
- Cuando u1, propietario de una relación R, concede privilegios
sobre R a otro usuario u2, también puede darle la opción de
otorgar dichos privilegios a terceros
GRANT SELECT 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 4. Seguridad en Sistemas de Bases de Datos
21
11.3 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 SELECT ON R FROM u2;
- Pero si u1 sí revoca el privilegio concedido a u2, ¿qué ocurre
con los que u2 propagó a partir de la concesión?
ð 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 válida, no puede utilizarse)
Tema 4. Seguridad en Sistemas de Bases de Datos
22
11.3 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
REVOKE SELECT ON Fotografo FROM julia CASCADE;
REVOKE INSERT ON Reportaje FROM cristina RESTRICT;
Tema 4. Seguridad en Sistemas de Bases de Datos
23
11.3 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 4. Seguridad en Sistemas de Bases de Datos
24
11.4 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 en mantener un fichero especial donde el
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 si alguien ha accedido de forma ilegal, o ha realizado
operaciones sin autorización
Tema 4. Seguridad en Sistemas de Bases de Datos
25
11.4 Otros aspectos de seguridad
Seguimiento de auditoría (y 2)
• Cada entrada en el fichero de auditoría podría contener...
§ operación realizada (por ejemplo UPDATE)
§ puesto o terminal desde la que se invocó la operación
§ usuario que solicitó la operación
§ fecha y hora de la operación
§ objetos afectados: base de datos, tablas (ficheros), tuplas (registros)
y atributos (campos)
§ valor anterior de los datos
§ nuevo valor de los datos
• En muchos casos, el hecho de mantener un seguimiento de
auditoría basta para desanimar a posibles «espías»
Tema 4. Seguridad en Sistemas de Bases de Datos
26
11.4 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 (ð protección de áreas de la BD)
• Esquema de cifrado...
Texto Original
Clave de
plaintext
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 i n f i l t r a d o o i n t r u s o , ¿cuál es
la dificultad para encontrar la clave,
comparando plaintexts y los textos
cifrados correspondientes?
Texto Cifrado
Tema 4. Seguridad en Sistemas de Bases de Datos
27
11.4 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?
• Encriptación de clave pública
§ El algoritmo de cifrado público o secreto
§ Clave de cifrado pública
§ Clave de descifrado secreta
– Ninguna puede deducirse de la otra
– Incluso el que encripta puede ser incapaz de recuperar el plaintext 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 4. Seguridad en Sistemas de Bases de Datos
28
Descargar