Está en la página 1de 16

Bases de datos Seguras

CAPITULO VII BASE DE DATOS III (SIS 306) Ing. Marcelo Arancibia

NDICE
Introduccin. Problemas de seguridad. Confidencialidad. Disponibilidad. Integridad. Seguridad en Oracle. Implementacin de bases de datos

seguras. Oracle Label Security 9i. Bibliografa.

Introduccin
En

las bases de datos se plantean problemas de seguridad como la comparticin de datos, acceso a estos, proteccin contra fallos, contra accesos no permitidos, etc. El SGBD facilita mecanismos para prevenir los fallos (subsistema de control), para detectarlos (subsistema de deteccin) y para corregirlos (subsistema de recuperacin). Aspectos fundamentales de la seguridad:
Confidencialidad.

No desvelar datos a usuarios no autorizados. Comprende tambin la privacidad (proteccin de datos personales). Accesibilidad o disponibilidad. La informacin debe estar disponible y tambin el acceso a los servicios. Integridad. Permite asegurar que los datos no han sido falseados o modificados de forma indebida.
3

Problemas de seguridad
Existen dos tipos de mecanismos de seguridad contra el acceso no autorizado:
Discrecionales, se usan para otorgar privilegios a los usuarios. Obligatorios, sirven para imponer seguridad de mltiples

niveles clasificando los datos los usuarios en varias clases de seguridad e implementando despus la poltica de seguridad apropiada de la organizacin.

Adems se pueden crear cuentas de acceso a la base


de datos para los distintos usuarios, las cuales se

podran agrupar en roles. En una base de datos estadstica no se deber permitir


tener acceso a informacin confidencial detallada

sobre individuos especficos. En ocasiones es posible


deducir ciertos hechos relativos a los individuos a

partir de consultas, lo que tampoco debe permitirse. Otra tcnica de seguridad es el cifrado de datos.

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

los usuarios. Adems, el administrador deber especificar los privilegios que un usuario tiene sobre los objetos: utilizar una BD, consultar ciertos datos, actualizar datos, etc.
Para facilitar la administracin 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. El mecanismo de control de acceso se encarga de denegar o conceder el acceso a los usuarios.
5

Confidencialidad (II)
Tipos de autorizacin:
Autorizacin

El tipo de autorizacin que se adopte depender entre otras cosas de:


La poltica de control. El modelo de datos.

explcita vs. implcita. La primera consiste en almacenar qu sujetos pueden acceder a ciertos objetos con determinados privilegios. La segunda consiste en que una autorizacin definida sobre un objeto puede deducirse a partir de otras. Autorizacin fuerte vs. dbil. En la fuerte no se pueden invalidar las autorizaciones implcitas mientras que en la dbil se permiten excepciones sobre ellas. Autorizacin positiva vs. negativa. La primera indica la existencia de autorizacin y la segunda indica la denegacin de una autorizacin.

Con el cifrado tambin se obtiene confidencialidad

Confidencialidad. Polticas de Administracin.


Administracin DBA (Administrador de la base de
datos). Solo el DBA puede conceder y revocar

peticiones a un objeto dado. Administracin por el propietario de objeto (Objectowner Administration). El creador del objeto es el dueo del objeto y el nico autorizado para

administrarlo. Administracin 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 explcitamente para acceder al objeto.

Confidencialidad. Sujetos, objetos y privilegios de autorizacin <s, o, p>


Sujetos de autorizacin pueden ser usuarios, grupos de

usuarios, roles y procesos. Son entidades del sistema a las que se les puede conceder autorizaciones. Objetos de autorizacin pueden ser ficheros, directorios, relaciones, tablas, atributos, clases y jerarquas de clases. Son componentes pasivos del sistema a los que se les debe dar proteccin ante accesos no autorizados. Los privilegios de autorizacin pueden ser leer, escribir, ejecutar, seleccionar, insertar, actualizar, referenciar o
indexar. Son los tipos de operaciones puede ejecutar

sobre los objetos del sistema.


8

Confidencialidad. Confidencialidad en SQL.


Soporta control de acceso discrecional. Privilegios:

de cuenta. Privilegios de usuario. CREATE SCHEMA, CREATE TABLE, CREATE VIEW, ALTER, DROP, MODIFY, SELECT Nivel de relacin. Se aplican a las relaciones individuales: SELECT, MODIFY, REFERENCES. Los privilegios se dan o quitan con GRANT y REVOKE. Adems se pueden crear y eliminar roles de usuario con CREATE ROLE y DROP ROLE Un usuario puede mantener privilegios revocados a travs de otro usuario (que les haya concedido los mismos privilegios).
El administrador o el propietario de los datos debern especificar

Nivel

los privilegios de un usuario (utilizar la BD, consultar datos,

actualizar

datos,

crear

actualizar

objetos,

ejecutar
9

procedimientos, referenciar objetos, indexar objetos, crear

identificadores, conceder privilegios).

Confidencialidad. SGBD Multinivel (I).


Los SGBD multinivel soportan el control de acceso obligatorio a

travs de diferentes niveles de seguridad en los datos y diferentes niveles de habilitacin para los usuarios. Cada nivel de seguridad tendr componentes jerrquicos (alto secreto, secreto, confidencial, no clasificado). El modelo de seguridad multinivel asigna a cada sujeto y objeto
una de las clasificaciones de seguridad o componentes

jerrquicos anteriores, clasificando cada sujeto S en una clase (acreditacin) y tambin cada objeto O dentro de una clase. Control de acceso obligatorio. Reglas: 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 Regla de escritura no descendente o propiedad * (estrella). Se ocupa de la proteccin de datos contra su contaminacin. "No
se permite que un sujeto S escriba datos de clase de

seguridad C a no ser que clase(S)= C".

10

Confidencialidad. SGBD Multinivel (II).


Distinto tamao o granularidad en la clasificacin. La clave aparente de una relacin multinivel es el conjunto de atributos que habran formado la clave en
una relacin normal. A veces se puede utilizar un

proceso llamado filtrado que produce varias vistas de la misma tupla segn la clasificacin de cada atributo. Problemas: Integridad de entidad. Los valores de la clave primaria deben tener la misma clasificacin. Integridad referencial. Una tupla con cierta clase de seguridad no puede referenciar a una tupla de clase de seguridad superior. Poliinstanciacin. Coexistiran varias tuplas con informacin relativa al mismo objeto, y con distinto 11 nivel de clasificacin.

Confidencialidad. SGBD Multinivel (III).

12

Confidencialidad. SGBD Multinivel (IV).


Arquitecturas referidas a sistemas relacionales: arquitectura de kernel nico. arquitectura distribuida arquitectura de sujeto custodiado arquitectura de bloqueo de integridad arquitectura de kernel extendido ... Prototipos y productos comerciales: TRUDATA, Secure Sybase,

Trusted Oracle, Trusted Informix

Modelos orientados a objetos: SODA model, SORION model,

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


Las

Situacin actual:

bases de datos OO suelen descuidar los temas relativos a la confidencialidad, mientras que en bases de datos distribuidas hay problemas con la autenticacin de las comunicaciones, particin y gestin de la informacin y replicacin, donde se debe mantener la consistencia entre las rplicas 13

Disponibilidad
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 lgicos o
fsicos, que destruyan los datos en todo o en parte. Sera conveniente adems, contar con facilidades ajenas al SGBD como, por ejemplo, mquinas tolerantes a fallos, sistemas de alimentacin

ininterrumpida...
El principio bsico es la redundancia fsica. Los principales tipos de fallos son de memoria voltil

y de memoria secundaria.
14

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

BD. Para esto se crean transacciones. La base de datos se encuentra en un estado consistente antes de que se empiece a ejecutar una transaccin y tambin lo deber estar cuando la transaccin termine. Las propiedades principales que debe poseer una
transaccin son la atomicidad, preservacin de la

consistencia, aislamiento (no muestra los cambios hasta que finaliza) y persistencia. Una transaccin 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.
Para conseguir anular y recuperar transacciones, el

mtodo ms extendido suele ser la utilizacin de un fichero denominado diario (log) en el que se va guardando toda la informacin necesaria para deshacer o rehacer las transacciones. 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. 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

Disponibilidad. Checkpoint.
Para evitar tener que recorrer todo el fichero diario, se introduce el punto de verificacin o recuperacin (checkpoint), que se ejecuta peridicamente y que implica: pasar el contenido de las memorias de rea intermedia al fichero diario escribir un registro de punto de recuperacin en el fichero diario pasar el contenido de las memorias de rea intermedia de la base de datos a soporte secundario escribir la direccin del registro de recuperacin en un fichero de rearranque. Nuevas tcnicas: Fichero diario efmero. 17 Tcnica de pginas ocultas.

Disponibilidad. Recuperacin.
Recuperacin en caliente. Al ocurrir un fallo que d
lugar a prdida de memoria voltil, es preciso realizar la operacin de recuperacin en caliente, en la que el

sistema consulta el fichero diario para determinar las transacciones que hay que deshacer y rehacer. Recuperacin en fro. En caso de un fallo de memoria secundaria que afecte a la base de datos, se lleva a cabo una recuperacin en fro, 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 llevndola de forma consistente a la situacin anterior a que se produjera el fallo.
18

Disponibilidad. Error fatal.


Se produce cuando se pierde el fichero diario

grabado en un soporte. En este caso resulta imposible recuperar la base de datos a su estado actual. La mejor solucin para evitar este problema es la
que ofrecen algunos SGBD, que permiten la

gestin de copias del fichero diario en dispositivos independientes. Tambin se puede duplicar la base de datos. En
general todas las tcnicas de duplicacin se

conocen como espejo (mirroring) o duplexacin (duplexing).


19

Disponibilidad. SQL.
El SQL soporta las transacciones clsicas

mediante las sentencias COMMIT y ROLLBACK. Las transacciones se inician al


empezar los programas, o al ejecutar

sentencias de definicin o manipulacin.

20

10

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

introduzcan inconsistencias en los datos.


Integridad semntica:

operaciones que pueden violar restricciones definidas al disear la base de datos, como pueden ser restricciones sobre los dominios o sobre los atributos. Estas reglas de integridad se almacenan en el diccionario. 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. Integridad operacional: En sistemas multiusuario es imprescindible un mecanismo de control de concurrencia para conservar la integridad de la base de datos. Las ms importantes podran ser: operacin perdida, salidas inconsistentes, inconsistencias en la base de datos y lectura no reproducible. 21

Existen

Integridad (II).
Las tcnicas de control de concurrencia ms habituales son: Bloqueo. Marcas de tiempo. Marcas de tiempo multiversin. Tcnicas optimistas. Y otras ms avanzadas: Transacciones anidadas. Transacciones largas. Transacciones de coordinacin.
22

11

Integridad (III).
Bloqueos. Tipos:

Exclusivos o de escritura. Compartidos o de lectura.

Se

puede producir interbloqueo.

Granularidad.

Marcas de tiempo (timestamping).


Son

identificadores nicos que se asignan a las transacciones y que pueden considerarse como el tiempo de inicio de la transaccin. 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).
Marcas de tiempo multiversin. Se permite que varias

transacciones lean y escriban diferentes versiones del mismo dato. Tcnicas optimistas. Permiten que las transacciones accedan libremente a los objetos, determinando antes de su finalizacin si ha habido o no interferencias. Fases: lectura, validacin y escritura. 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 duracin, y que faciliten la coordinacin entre varios

usuarios.
Transacciones

anidadas.

Se

puede

descomponer

en
24

subtransacciones, que se pueden ejecutar concurrentemente.

12

Integridad (V).
Transacciones largas. Existen actualmente diferentes propuestas para soportar transacciones de larga duracin, como tcnicas basadas en la serialidad, las que relajan la serialidad, utilizando semntica de datos o semntica especfica de aplicacin, etc. Transacciones de coordinacin. Se basan en mecanismos de control de versiones. Tambin suelen permitir que se divida a los usuarios en grupos con diferentes modos de bloqueo, logrando as varios niveles de aislamiento. Integridad en SQL. Semntica. Se soportan adems de la clave primaria, unicidad, no nulos e integridad referencial, las restricciones de verificacin (CHECK), los dominios (CREATE DOMAIN) y las aserciones (CREATE ASSERTION); sentencias que se incluyen en la definicin de los elementos del esquema. Operacional. El estndar 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).


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, limitacin de recursos y auditoras. Usuarios. Cada BD Oracle tiene una lista de nombres de usuarios con una clave asociada para su autentificacin (se guardan en el catlogo del sistema). Existe un esquema asociado a cada usuario que corresponde a los objetos que son de su propiedad. Por defecto se crean dos usuarios: SYS y SYSTEM. Para crear nuevos usuarios usaramos CREATE USER. Los usuarios se pueden modificar con ALTER USER y DROP USER, y las vistas para controlar los usuarios es dba_users.
Se

pueden crear perfiles de usuario.


26

13

Seguridad en Oracle (II).


Privilegios.
Dos

tipos: Del sistema: permite a los usuarios realizar acciones particulares en la BD. De objetos: permite a los usuarios acceder y manipular un objeto particular.
usuario puede recibir privilegios de forma directa o a travs

Un

de papeles (grupo de privilegios con nombre). Normalmente los privilegios se asignan a papeles. Los privilegios se dan o quitan con GRANT o REVOKE. Papeles. Proporcionan una forma ms sencilla de gestionar los privilegios.
Son Los

un grupo de privilegios a los que se le da un nombre (se papeles se crean con CREATE ROLE y se eliminan con
27

conceden a usuarios o a otros papeles). DROP ROLE.

Seguridad en Oracle (III).


Auditoras. Oracle permite auditoras selectivas de las acciones de los usuarios para ayudar en la investigacin de uso dudoso de la BD. Se pueden realizar a tres niveles: de sentencias, de privilegios o de objetos. El resultado de la auditora se almacena en una tabla denominada rastro de la auditora. 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.


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, adems de una poltica

de privilegios.
El control de acceso propuesto por Oracle9i es mixto, considerando un enfoque discrecional junto con un enfoque

basado en etiquetas.
Para que un usuario pueda realizar una determinada operacin

sobre una determinada fila de una tabla, deben cumplirse las siguientes condiciones: Que el usuario est autenticado por la base de datos. Que el usuario tenga los privilegios sobre la fila de datos requerido para realizar la operacin (control de acceso discrecional). Que el usuario cumpla los criterios introducidos por OLS, que sern reglas de acceso en funcin del nivel de sensibilidad del dato y del nivel de habilitacin del usuario.
29

Bibliografa
M. y DIAZ, O. Advanced Databases: Technology and Design. Artech House, Londres, 2000. (Captulo 11). DE MIGUEL, A. y PIATTINI, M. Fundamentos y modelos de bases de datos. 2ed. Madrid, Editorial Ra-ma, 1999. Apuntes de Administracin de Bases de Datos. Eduardo Fernndez Medina. Escuela Superior de Informtica:
PIATTINI,
http://alarcos.inf-cr.uclm.es/doc/adbd/abd http://alarcos.inf-cr.uclm.es/adbd/Bases

tema3.pdf

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

Bibliografa
www.ati.es/novatica/2000/145/marpia-145.pdf http://informatica.uv.es/iiguia/2000/BD2Tema6.pdf Dra. Coral Calero y Dr. Mario Piattini. SEGURIDAD
DE LOS SISTEMAS DE INFORMACIN. BASES DE

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

Reflexiones sobre el Real Decreto 994/1999 y la Seguridad en Bases de Datos


comunidad.derecho.org/congreso/ponencia16.html

16

También podría gustarte