Вы находитесь на странице: 1из 19

SEGURIDAD EN BASES DE DATOS

Javier Honorio Casado Fernndez Ampliacin de Bases de Datos 2002/2003

INTRODUCCIN A LA SEGURIDAD

La informacin almacenada en la base de datos debe estar protegida contra accesos no autorizados, la destruccin o alteracin de datos con fines indebidos y contra la introduccin accidental de inconsistencia.
A veces los trminos de seguridad e integridad en bases de datos no estn totalmente separados, pudiendo uno incluir a ambos. Nosotros intentaremos separar estos dos trminos en la medida que nos sea posible:

Seguridad: proteccin contra accesos mal intencionados.


Integridad: proteccin contra una prdida accidental de consistencia.

2002/2003

Ampliacin de Bases de Datos

VIOLACIONES DE LA SEGURIDAD E INTEGRIDAD

El mal uso que se haga de la base de datos puede ser accidental o intencionado (con fines indebidos).
La prdida accidental de la consistencia puede deberse a:

cadas durante el procesamiento de las transacciones. anomalas por acceso concurrente a la base de datos. anomalas que resultan de la distribucin de los datos entre varios computadores. un error lgico que viola la suposicin de que las transacciones respetan las protecciones de consistencia de la base de datos.

Es ms fcil prevenir la prdida accidental de la consistencia de los datos que prevenir el acceso mal intencionado a la base de datos.

2002/2003

Ampliacin de Bases de Datos

VIOLACIONES DE LA SEGURIDAD E INTEGRIDAD

Algunas formas de acceso indebido son:


lectura de datos sin autorizacin (robo de informacin). modificacin de datos sin autorizacin. destruccin no autorizada de los datos.

No es posible proteger de manera absoluta a la base de datos contra un manejo indebido, pero puede hacerse que el coste para el autor sea tan alto que frene prcticamente todos los intentos de acceder a la base de datos sin la autorizacin debida.
Ampliacin de Bases de Datos 4

2002/2003

VIOLACIONES DE LA SEGURIDAD E INTEGRIDAD

Para proteger la base de datos es necesario adoptar medidas de seguridad en varios niveles:

fsico: el lugar donde se encuentran los sistemas debe estar protegido. humano: se debe tener cuidado al conceder autorizaciones. sistema operativo: seguridad contra ataques exteriores. sistemas de bases de datos: garantizar que no se violen las restricciones de autorizacin.

La seguridad debe mantenerse en todos los niveles ya que un punto dbil en un nivel bajo de seguridad (fsico o humano) permitira burlar las medidas estrictas de seguridad adoptadas a alto nivel (bases de datos). Nosotros nos centraremos en diferentes tcnicas de seguridad al nivel de las bases de datos ya que el resto de niveles quedan fuera del propsito de esta asignatura.
Ampliacin de Bases de Datos 5

2002/2003

AUTORIZACIONES Y VISTAS

Las vistas sirven para filtrar la informacin obtenida de la base de datos de acuerdo con las necesidades de un usuario. Con respecto a la seguridad, una vista puede ocultar datos que el usuario no tiene necesidad de ver.
De esta forma, las vistas sirven tanto para simplificar la utilizacin del sistema como para fomentar la seguridad.

2002/2003

Ampliacin de Bases de Datos

AUTORIZACIONES Y VISTAS

Un ejemplo podra ser que un empleado slo necesite conocer los nombres de los proveedores de su empresa, un telfono de contacto y sus direcciones. El administrador de la base de datos le podra facilitar el acceso a esa informacin creando una vista en la base de datos:
create view nombres-proveedores as (select nombre, telefono, direccion from proveedores)

As, nuestro empleado podra ejecutar la consulta de la siguiente forma:

select * from nombres-proveedores

Ahora slo necesitaramos un mecanismo que limite a los usuarios a su vista o vistas personales.
Ampliacin de Bases de Datos 7

2002/2003

AUTORIZACIONES Y VISTAS

Lo normal es que los sistemas de bases de datos cuenten con dos niveles de seguridad:

relacin: permitir o no acceso a directo a una relacin. vista: permitir o no el acceso a la informacin que aparece en la vista.

Y dentro de estos niveles podramos tener diferentes autorizaciones:


lectura: permite leer pero no modificar. insercin: slo insertar, no modificar. actualizacin: permite modificar pero no eliminar. borrado: permite eliminar datos.

2002/2003

Ampliacin de Bases de Datos

AUTORIZACIONES Y VISTAS

Adems, es posible autorizar al usuario para modificar estructuras:


ndice: permite creacin y eliminacin de ndices. recursos: autoriza crear relaciones nuevas. alteracin: para agregar o eliminar atributos a una relacin. eliminacin: permite eliminar relaciones.

El lenguaje de definicin de datos SQL incluye mandatos para conceder y revocar privilegios.
El conjunto exacto de privilegios depende de la versin de SQL con la que trabajemos, algunos de ellos seran:

alter delete index insert select update references

==> ==> ==> ==> ==> ==> ==>

modificar borrar ndice insertar leer actualizar referenciar (restringe la creacin de relaciones)
Ampliacin de Bases de Datos

2002/2003

AUTORIZACIONES Y VISTAS

Para conceder autorizaciones se utiliza la sentencia "grant" (conceder):


grant <lista de privilegios> [(lista de campos restringidos)] on <nombre de relacin o vista> to <lista de usuarios> [with grant option]

La opcin "with grant option" sirve para que los usuarios que reciben los privilegios puedan, a su vez, pasarle los privilegios a otros usuarios. Ejemplos:

Lectura sobre proveedores: grant select on proveedores to usuario1, usuario2 Actualizacin de los telfonos de los proveedores: grant update (telefono) on proveedores to usuario3 Insercin de nuevos proveedores con posibilidad de autorizar a otros usuarios: grant insert on proveedores to usuario4 with grant option
Ampliacin de Bases de Datos 10

2002/2003

AUTORIZACIONES Y VISTAS

La sentencia "revoke" (revocar) se utiliza para anular autorizaciones:


revoke <lista de privilegios> [(lista de campos autorizados)] on <nombre de relacin o vista> from <lista de usuarios>

La anulacin de un privilegio a un usuario puede causar que otros usuarios pierdan ese privilegio. Esto es debido a causa de las concesiones que el primero ha podido realizar sobre el resto al recibir la opcin "with grant option" sobre ese privilegio.
Ejemplos para revocar los privilegios que concedimos anteriormente:

revoke select on proveedores from usuario1, usuario2 revoke update (telefono) on proveedores from usuario3 revoke insert on proveedores from usuario4

2002/2003

Ampliacin de Bases de Datos

11

SISTEMAS MULTINIVEL

Proporciona un nivel superior de seguridad con respecto a las vistas.


Establece una seguridad multinivel que a menudo se combina con una seguridad a nivel de vistas. Este tipo de seguridad suele ser utilizado por aplicaciones gubernamentales, militares, de espionaje, de algunas grandes industrias y corporaciones...

2002/2003

Ampliacin de Bases de Datos

12

SISTEMAS MULTINIVEL

Consiste en clasificar a los datos y usuarios en distintos 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.

La diferencia con respecto a la seguridad con vistas radica en que los datos tienen un nivel de seguridad por s mismos, con independencia de los que se atribuyan a los usuarios.
Ampliacin de Bases de Datos 13

2002/2003

BASES DE DATOS ESTADSTICAS

A veces, las empresas conceden acceso a la base de datos a personas ajenas bajo la condicin de que slo pueden llevar a cabo estudios estadsticos (promedios, medianos, modas, etc.) con los datos sin divulgar informacin referente a individuos.
En estos casos se deber garantizar la privacidad de los individuos al mismo tiempo que se permite el uso de los datos para clculos estadsticos. Por ejemplo, con un par de consultas se podra conocer dinero que tiene un cliente en un banco si este fuese el nico con una cierta caracterstica, el nico que vive en cierta localidad. La solucin sera programar el sistema para que se rechace cualquier consulta que no comprenda al menos un cierto nmero de individuos.
Ampliacin de Bases de Datos 14

2002/2003

BASES DE DATOS ESTADSTICAS

An as, un usuario malintencionado que tambin tuviese cuenta en el banco podra todava averiguar el saldo de un individuo con un par de consultas:

x, el saldo de su propia cuenta y las de los n clientes mnimos para realizar la consulta. y, el saldo de la cuenta de Z y las de los n clientes.

El saldo total de Z sera: y - x + el saldo del usuario malintencionado.

El ejemplo anterior se aprovech de un punto dbil importante, que radica en que las dos consultas se refirieron prcticamente a los mismos datos. El nmero de datos en comn que tienen las dos consultas se denomina interseccin.

2002/2003

Ampliacin de Bases de Datos

15

BASES DE DATOS ESTADSTICAS

Para resolver esto, adems de exigir que una consulta haga referencia a por lo menos n individuos, podra requerirse que toda pareja de consultas tenga una interseccin de al menos m individuos.
Sin embargo, se puede demostrar que si un usuario malintencionado conoce el valor del dato para l mismo le llevar un nmero de '1 + (n - 2) / m' consultas obtener la informacin acerca de un individuo.

2002/2003

Ampliacin de Bases de Datos

16

BASES DE DATOS ESTADSTICAS

Existe otra tcnica que evitara esto, la contaminacin de los datos.


Se basa en la falsificacin al azar de los datos que se proporcionan en respuesta a una consulta.

Dicha falsificacin debe hacerse de tal manera que no destruya el significado estadstico de la respuesta.
Otra tcnica similar se basa en la modificacin aleatoria de la consulta misma. En estas dos tcnicas debe lograrse un equilibrio entre la exactitud y la seguridad.

2002/2003

Ampliacin de Bases de Datos

17

CIFRADO DE DATOS

Es posible que todas las precauciones que tomemos para evitar el acceso sin autorizacin no sean suficientes para proteger los datos muy importantes. En estos casos, la informacin puede cifrarse.
No es posible leer datos cifrados a menos que el lector sepa cmo descifrar la informacin. Existen un gran nmero de tcnicas a elegir para cifrar la informacin (cifrado estndar de datos, cifrado de clave pblica, ...).
Ampliacin de Bases de Datos 18

2002/2003

BIBLIOGRAFA

"Fundamentos de Bases de Datos

2 edicin, Korth y Silberschatz

"Fundamentos y modelos de Bases de Datos

2 edicin, de Miguel y Piattini


Ampliacin de Bases de Datos 19

2002/2003