Bases de datos seguras

Rubén José Álvarez Ramírez
Modelos Avanzados de bases de datos Curso 2003/2004

ÍNDICE
n n n n n n n

Introducción. Problemas de seguridad. Confidencialidad. Disponibilidad. Integridad. Seguridad en Oracle. Implementación de bases de datos seguras. Oracle Label Security 9i. n Bibliografía.
2

1

Introducción
n En las bases de datos se plantean problemas de seguridad

como la compartición de datos, acceso a estos, protección contra fallos, contra accesos no permitidos, etc. n El SGBD facilita mecanismos para prevenir los fallos (subsistema de control), para detectarlos (subsistema de detección) y para corregirlos (subsistema de recuperación). n Aspectos fundamentales de la seguridad:
n

n n

Confidencialidad. No desvelar datos a usuarios no autorizados. Comprende también la privacidad (protección de datos personales). Accesibilidad o disponibilidad. La información debe estar disponible y también el acceso a los servicios. Integridad. Permite asegurar que los datos no han sido falseados o modificados de forma indebida.
3

Problemas de seguridad
n Existen dos tipos de mecanismos de seguridad contra

el acceso no autorizado:
n n

Discrecionales, se usan para otorgar privilegios a los usuarios. Obligatorios, sirven para imponer seguridad de múltiples niveles clasificando los datos los usuarios en varias clases de seguridad e implementando después la política de seguridad apropiada de la organización.

n Además se pueden crear cuentas de acceso a la base

de datos para los distintos usuarios, las cuales se podrían agrupar en roles. n En una base de datos estadística no se deber permitir tener acceso a información confidencial detallada sobre individuos específicos. En ocasiones es posible deducir ciertos hechos relativos a los individuos a partir de consultas, lo que tampoco debe permitirse. n Otra técnica de seguridad es el cifrado de datos. 4

2

Confidencialidad (I)
n Primero el sistema debe identificar y autenticar a

los usuarios. n Además, el administrador deberá especificar los privilegios que un usuario tiene sobre los objetos: utilizar una BD, consultar ciertos datos, actualizar datos, etc. n Para facilitar la administración los SGBD suelen incorporar el concepto de perfil, rol o grupo de usuarios que agrupa una serie de privilegios por lo que el usuario que se asigna a un grupo hereda todos los privilegios del grupo. n El mecanismo de control de acceso se encarga de denegar o conceder el acceso a los usuarios.
5

Confidencialidad (II)
n Tipos de autorización:
n

n

n

Autorización explícita vs. implícita. La primera consiste en almacenar qué sujetos pueden acceder a ciertos objetos con determinados privilegios. La segunda consiste en que una autorización definida sobre un objeto puede deducirse a partir de otras. Autorización fuerte vs. débil. En la fuerte no se pueden invalidar las autorizaciones implícitas mientras que en la débil se permiten excepciones sobre ellas. Autorización positiva vs. negativa. La primera indica la existencia de autorización y la segunda indica la denegación de una autorización.

n El tipo de autorización que se adopte dependerá entre

otras cosas de:
n n

La política de control. El modelo de datos.
6

n Con el cifrado también se obtiene confidencialidad

3

Confidencialidad. Políticas de Administración.
n Administración DBA (Administrador de la base de

datos). Solo el DBA puede conceder y revocar peticiones a un objeto dado.
n Administración por el propietario de objeto (Object-

owner Administration). El creador del objeto es el dueño del objeto y el único autorizado para administrarlo.
n Administración “cuidador” (o administrador) del objeto

(Object “curator” administration). Un sujeto, no necesariamente el creador del objeto, es nombrado administrador del objeto. Incluso el creador del objeto deber ser autorizado explícitamente para acceder al objeto. 7

Confidencialidad. Sujetos, objetos y privilegios de autorización <s, o, p>
n Sujetos de autorización pueden ser usuarios, grupos de

usuarios, roles y procesos. Son entidades del sistema a las que se les puede conceder autorizaciones. n Objetos de autorización pueden ser ficheros, directorios, relaciones, tablas, atributos, clases y jerarquías de clases. Son componentes pasivos del sistema a los que se les debe dar protección ante accesos no autorizados. n Los privilegios de autorización pueden ser leer, escribir, ejecutar, seleccionar, insertar, actualizar, referenciar o indexar. Son los tipos de operaciones puede ejecutar sobre los objetos del sistema.
8

4

Confidencialidad. Confidencialidad en SQL.
n Soporta control de acceso discrecional. n Privilegios:

n n n n

Nivel de cuenta. Privilegios de usuario. CREATE SCHEMA, CREATE TABLE, CREATE VIEW, ALTER, DROP, MODIFY, SELECT n Nivel de relación. Se aplican a las relaciones individuales: SELECT, MODIFY, REFERENCES. Los privilegios se dan o quitan con GRANT y REVOKE. Además se pueden crear y eliminar roles de usuario con CREATE ROLE… y DROP ROLE… Un usuario puede mantener privilegios revocados a través de otro usuario (que les haya concedido los mismos privilegios). El administrador o el propietario de los datos deberán especificar los privilegios de un usuario (utilizar la BD, consultar datos, actualizar datos, crear o actualizar objetos, ejecutar procedimientos, referenciar objetos, indexar objetos, crear identificadores, conceder privilegios…).
n
9

Confidencialidad. SGBD Multinivel (I).
n Los SGBD multinivel soportan el control de acceso obligatorio a

través de diferentes niveles de seguridad en los datos y diferentes niveles de habilitación para los usuarios. n Cada nivel de seguridad tendrá componentes jerárquicos (alto secreto, secreto, confidencial, no clasificado). n El modelo de seguridad multinivel asigna a cada sujeto y objeto una de las clasificaciones de seguridad o componentes jerárquicos anteriores, clasificando cada sujeto S en una clase (acreditación) y también cada objeto O dentro de una clase. n Control de acceso obligatorio. Reglas: n Regla de lectura no ascendente o propiedad de seguridad simple. Protege los datos contra accesos no autorizados. "No se permite que un sujeto S lea los datos de la clase C a no ser que clase(S)=C“ n Regla de escritura no descendente o propiedad * (estrella). Se ocupa de la protección de datos contra su contaminación. "No se permite que un sujeto S escriba datos de clase de seguridad C a no ser que clase(S)= C". 10

5

Confidencialidad. SGBD Multinivel (II).
n Distinto tamaño o granularidad en la clasificación. n La clave aparente de una relación multinivel es el

conjunto de atributos que habrían formado la clave en una relación normal. A veces se puede utilizar un proceso llamado filtrado que produce varias vistas de la misma tupla según la clasificación de cada atributo. n Problemas: n Integridad de entidad. Los valores de la clave primaria deben tener la misma clasificación. n Integridad referencial. Una tupla con cierta clase de seguridad no puede referenciar a una tupla de clase de seguridad superior. n Poliinstanciación. Coexistirían varias tuplas con información relativa al mismo ‘objeto’, y con distinto nivel de clasificación. 11

Confidencialidad. SGBD Multinivel (III).

12

6

Confidencialidad. SGBD Multinivel (IV).
n Arquitecturas referidas a sistemas relacionales: n arquitectura de kernel único. n arquitectura distribuida n arquitectura de sujeto custodiado n arquitectura de bloqueo de integridad n arquitectura de kernel extendido n ... n Prototipos y productos comerciales: TRUDATA, Secure Sybase,

Trusted Oracle, Trusted Informix…
n Modelos orientados a objetos: SODA model, SORION model,

Millen-Lunt Model, Jajodia-Kogan Model, UFOS Model…
n

n Situación actual:

Las bases de datos OO suelen descuidar los temas relativos a la confidencialidad, mientras que en bases de datos distribuidas hay problemas con la autenticación de las comunicaciones, partición y gestión de la información y replicación, donde se debe mantener la consistencia entre las 13 réplicas

Disponibilidad
n Los SGBD deben asegurar la disponibilidad de los

datos a aquellos usuarios que tienen derecho a ello, por lo que proporcionan mecanismos que permiten recuperar la base de datos contra fallos lógicos o físicos, que destruyan los datos en todo o en parte. n Sería conveniente además, contar con facilidades ajenas al SGBD como, por ejemplo, máquinas tolerantes a fallos, sistemas de alimentación ininterrumpida... n El principio básico es la redundancia física. n Los principales tipos de fallos son de memoria volátil y de memoria secundaria.
14

7

Disponibilidad. Transacciones.
n Hay que asegurar la consistencia tras los cambios en la n n n

n

BD. Para esto se crean transacciones. La base de datos se encuentra en un estado consistente antes de que se empiece a ejecutar una transacción y también lo deberá estar cuando la transacción termine. Las propiedades principales que debe poseer una transacción son la atomicidad, preservación de la consistencia, aislamiento (no muestra los cambios hasta que finaliza) y persistencia. Una transacción puede terminar con éxito, en cuyo caso se graban las actualizaciones que produce (commit) o con fracaso, debiendo ser restaurado el estado inicial, deshaciendo las actualizaciones (rollback).
15

Disponibilidad. Logs.
n Para conseguir anular y recuperar transacciones, el

método más extendido suele ser la utilización de un fichero denominado diario (log) en el que se va guardando toda la información necesaria para deshacer o rehacer las transacciones. n Normalmente se obliga a que los registros que se modifican se escriban antes en el fichero diario que en la base de datos, para poder anular así, en caso de necesidad, las transacciones (“log write-ahead protocol"), y evitar problemas. n El fichero diario puede ser un fichero circular, o constar de dos partes; una en disco, que cuando se llena se pasa a cinta u otro almacenamiento.
16

8

Disponibilidad. Checkpoint.
n Para evitar tener que recorrer todo el fichero diario, se

introduce el punto de verificación o recuperación (checkpoint), que se ejecuta periódicamente y que implica: n pasar el contenido de las memorias de área intermedia al fichero diario n escribir un registro de punto de recuperación en el fichero diario n pasar el contenido de las memorias de área intermedia de la base de datos a soporte secundario n escribir la dirección del registro de recuperación en un fichero de rearranque. n Nuevas técnicas: n Fichero diario efímero. 17 n Técnica de páginas ocultas.

Disponibilidad. Recuperación.
n Recuperación en caliente. Al ocurrir un fallo que dé

lugar a pérdida de memoria volátil, es preciso realizar la operación de recuperación en caliente, en la que el sistema consulta el fichero diario para determinar las transacciones que hay que deshacer y rehacer.
n Recuperación en frío. En caso de un fallo de memoria

secundaria que afecte a la base de datos, se lleva a cabo una recuperación en frío, que consiste en utilizar una copia de seguridad de la BD (backup). La copia de seguridad permitirá, junto con los ficheros diarios que se han ido produciendo desde que se realizó, reconstruir la BD llevándola de forma consistente a la situación anterior a que se produjera el fallo.
18

9

Disponibilidad. Error fatal.
n Se produce cuando se pierde el fichero diario

grabado en un soporte. n En este caso resulta imposible recuperar la base de datos a su estado actual. n La mejor solución para evitar este problema es la que ofrecen algunos SGBD, que permiten la gestión de copias del fichero diario en dispositivos independientes. n También se puede duplicar la base de datos. En general todas las técnicas de duplicación se conocen como espejo (mirroring) o duplexación (duplexing).
19

Disponibilidad. SQL.
n El SQL soporta las transacciones clásicas

mediante las sentencias COMMIT y ROLLBACK. Las transacciones se inician al empezar los programas, o al ejecutar sentencias de definición o manipulación.

20

10

Integridad (I).
n El objetivo es proteger la base de datos contra operaciones que

introduzcan inconsistencias en los datos.
n Integridad semántica:

Existen operaciones que pueden violar restricciones definidas al diseñar la base de datos, como pueden ser restricciones sobre los dominios o sobre los atributos. n Estas reglas de integridad se almacenan en el diccionario. n El subsistema de integridad del SGBD debe comprobar la coherencia de las reglas que se definen, controlar las distintas transacciones y detectar las violaciones de integridad, y en el caso de producirse, ejecutar las acciones pertinentes. n Integridad operacional: n En sistemas multiusuario es imprescindible un mecanismo de control de concurrencia para conservar la integridad de la base de datos. n Las más importantes podrían ser: operación perdida, salidas inconsistentes, inconsistencias en la base de datos y lectura 21 no reproducible.
n

Integridad (II).
n Las técnicas de control de concurrencia más habituales

son: n Bloqueo. n Marcas de tiempo. n Marcas de tiempo multiversión. n Técnicas optimistas.
n Y otras más avanzadas:
n n n

Transacciones anidadas. Transacciones largas. Transacciones de coordinación.

22

11

Integridad (III).
n Bloqueos.
n

Tipos:
n n

Exclusivos o de escritura. Compartidos o de lectura.

Se puede producir interbloqueo. Granularidad. n Marcas de tiempo (“timestamping”).
n n
n

n n n

Son identificadores únicos que se asignan a las transacciones y que pueden considerarse como el tiempo de inicio de la transacción. Permiten ordenar las transacciones y controlar un acceso en secuencia de las mismas a los datos. No existen interbloqueos. Protocolos: WAIT-DIE y WOUND-WAIT.
23

Integridad (IV).
n Marcas

de tiempo multiversión. Se permite que varias transacciones lean y escriban diferentes versiones del mismo dato. n Técnicas optimistas. n Permiten que las transacciones accedan libremente a los objetos, determinando antes de su finalización si ha habido o no interferencias. n Fases: lectura, validación y escritura. n Aspectos avanzados. Las aplicaciones avanzadas de bases de datos, que soportan sistemas CAD/CAM, CASE, OIS, GIS, etc. requieren nuevos mecanismos de control de concurrencia que permitan anidar transacciones, que soporten transacciones de larga duración, y que faciliten la coordinación entre varios usuarios. n Transacciones anidadas. Se puede descomponer en subtransacciones, que se pueden ejecutar concurrentemente.
24

12

Integridad (V).
n Transacciones largas. Existen actualmente diferentes propuestas para soportar transacciones de larga duración, como técnicas basadas en la serialidad, las que relajan la serialidad, utilizando semántica de datos o semántica específica de aplicación, etc. n Transacciones de coordinación. Se basan en mecanismos de control de versiones. También suelen permitir que se divida a los usuarios en grupos con diferentes modos de bloqueo, logrando así varios niveles de aislamiento. n Integridad en SQL. n Semántica. Se soportan además de la clave primaria, unicidad, no nulos e integridad referencial, las restricciones de verificación ( CHECK), los dominios (CREATE DOMAIN) y las aserciones (CREATE ASSERTION); sentencias que se incluyen en la definición de los elementos del esquema. n Operacional. El estándar SQL no proporciona, a diferencia de los productos relacionales, ninguna sentencia para bloquear datos, sino que deja este aspecto a los implementadores.
25

Seguridad en Oracle (I).
n Oracle tiene un control de acceso discrecional. Las facilidades

que ofrece Oracle son las siguientes: usuarios y esquemas de la BD, privilegios, papeles, opciones de almacenamiento y cuotas, limitación de recursos y auditorías. n Usuarios. n Cada BD Oracle tiene una lista de nombres de usuarios con una clave asociada para su autentificación (se guardan en el catálogo del sistema). n Existe un esquema asociado a cada usuario que corresponde a los objetos que son de su propiedad. n Por defecto se crean dos usuarios: SYS y SYSTEM. Para crear nuevos usuarios usaríamos CREATE USER. n Los usuarios se pueden modificar con ALTER USER y DROP USER, y las vistas para controlar los usuarios es dba_users.
n

Se pueden crear perfiles de usuario.
26

13

Seguridad en Oracle (II).
n Privilegios.

Dos tipos: n Del sistema: permite a los usuarios realizar acciones particulares en la BD. n De objetos: permite a los usuarios acceder y manipular un objeto particular. n Un usuario puede recibir privilegios de forma directa o a través de papeles (grupo de privilegios con nombre). Normalmente los privilegios se asignan a papeles. n Los privilegios se dan o quitan con GRANT o REVOKE. n Papeles. n Proporcionan una forma más sencilla de gestionar los privilegios. n Son un grupo de privilegios a los que se le da un nombre (se conceden a usuarios o a otros papeles). n Los papeles se crean con CREATE ROLE y se eliminan con DROP ROLE. 27
n

Seguridad en Oracle (III).
n Auditorías.
n

n

Oracle permite auditorías selectivas de las acciones de los usuarios para ayudar en la investigación de uso dudoso de la BD. Se pueden realizar a tres niveles: de sentencias, de privilegios o de objetos. El resultado de la auditoría se almacena en una tabla denominada rastro de la auditoría. Para auditar operaciones del sistema o privilegios del sistema se debe poseer el privilegio AUDIT SYSTEM y para auditar objetos AUDIT ANY.

28

14

Oracle Label Security 9i.
n Es un componente de Oracle9i que permite implementar bases de

datos con un control de acceso basado en unas etiquetas que se definen para los datos y para los usuarios, además de una política de privilegios. n El control de acceso propuesto por Oracle9i es mixto, considerando un enfoque discrecional junto con un enfoque basado en etiquetas. n Para que un usuario pueda realizar una determinada operación sobre una determinada fila de una tabla, deben cumplirse las siguientes condiciones: n Que el usuario esté autenticado por la base de datos. n Que el usuario tenga los privilegios sobre la fila de datos requerido para realizar la operación (control de acceso discrecional). n Que el usuario cumpla los criterios introducidos por OLS, que serán reglas de acceso en función del nivel de sensibilidad del dato y del nivel de habilitación del usuario.
29

Bibliografía
n PIATTINI, M. y DIAZ, O. “Advanced Databases: Technology

and Design”. Artech House, Londres, 2000. (Capítulo 11). n DE MIGUEL, A. y PIATTINI, M. “Fundamentos y modelos de bases de datos”. 2ªed. Madrid, Editorial Ra-ma, 1999. n Apuntes de Administración de Bases de Datos. Eduardo Fernández Medina. Escuela Superior de Informática:
n n n n

http://alarcos.inf-cr.uclm.es/doc/adbd/abd tema3.pdf http://alarcos.inf-cr.uclm.es/adbd/Bases de datos seguras.pdf http://alarcos.inf-cr.uclm.es/adbd/Control de acceso.pdf http://alarcos.inf-cr.uclm.es/adbd/oracle9i label security.pdf

30

15

Bibliografía
www.ati.es/novatica/2000/145/marpia-145.pdf http://informatica.uv.es/iiguia/2000/BD2Tema6.pdf n Dra. Coral Calero y Dr. Mario Piattini. SEGURIDAD DE LOS SISTEMAS DE INFORMACIÓN. BASES DE DATOS:
n

http://alarcos.inf-cr.uclm.es/per/ccalero/seguridad.pdf

n Reflexiones sobre el Real Decreto 994/1999 y la

Seguridad en Bases de Datos
n

comunidad.derecho.org/congreso/ponencia16.html

16

Sign up to vote on this title
UsefulNot useful