Seguridad_Base de Datos

28
Seguridad Base de Datos 1

Transcript of Seguridad_Base de Datos

Page 1: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 1/28

Seguridad

Base de Datos

1

Page 2: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 2/28

2

El ámbito de la seguridad de las bases de datos es amplio, pues abarcaaspectos 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?

5.1 El problema de la seguridad

 Aspectos del problema de la seguridad

Page 3: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 3/28

3

• 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 ensecreto? ¿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 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 laBD?

Hay que adoptar medidas de seguridad en todos estos niveles,pero nos centraremos en el último de ellos (

 

)

5.1 El problema de la seguridad

 Aspectos del problema de la seguridad (y 2)

Page 4: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 4/28

4

• 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 deproductividad, etc.) debe estar oculta para la mayoría de usuarios

• El esfuerzo por conservar la seguridad de la BD merece lapena... –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) suponeelevados costes y disminución de la capacidad de la empresapara seguir funcionando

5.1 El problema de la seguridad

Page 5: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 5/28

5

• 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 noautorizado 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 teneracceso al resto El Subsistema de Seguridad y Autorización del SGBD garantiza la

seguridad de (partes de) la BD contra accesos no autorizados

• ElSGBD

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

5.1 El problema de la seguridad

Page 6: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 6/28

6

•Como hemos visto, las decisiones sobre seguridad sonpolíticas, no técnicas: están fuera del SGBD

•Pero el SGBD puede reforzarlas: imponerlas, obligar a sucumplimiento

•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 dereglas 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

5.1 El problema de la seguridad

Page 7: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 7/287

• 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 integridad, que los usuarios no deben violar –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

5.1 El problema de la seguridad

Page 8: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 8/288

• Se debe evitar el acceso al propio sistema de BD porparte de usuarios no autorizadosControl de acceso global

• Además se debe permitir que los usuarios, una vezconectados a la BD, puedan acceder a ciertas porciones

sin tener acceso al restoControl de acceso obligatorio

Control de acceso discrecionalUn SGBD moderno suele implementar uno de estos mecanismos de

seguridad, o los dosMediante estos mecanismos se puede especificar...

• qué usuarios tienen acceso a qué datos, e incluso• qué operaciones pueden realizar sobre dichos datos

5.2 Control de acceso

Page 9: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 9/289

• El administrador de la base de datos, ABD, es laautoridad central responsable de la seguridad global delsistema de bases de datos

• Dispone de una cuenta de bases de datos privilegiada o desistema, con «capacidades extraordinarias», desde la quepuede... – Crear y eliminar cuentas de usuario

para acceso a la base de datos – Conceder y cancelar privilegios a

(cuentas de) usuarios

 –  Asignar datos a niveles de seguridad –  Asignar cuentas de usuario a niveles

de seguridad o acreditación

5.2 Control de acceso

 Control Global

 Control Discrecional

 Control Obligatorio

Page 10: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 10/2810

• Evitar que personal no autorizado acceda al sistema de BD

• Puesto en práctica mediante creación, por parte del ABD, decuentas 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 mantenidapor 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 lainformación almacenada en la BD

un programa de aplicación puede ‘ser un usuario’ (puede exigírsele contraseña)

5.2.1 Control de acceso global

Page 11: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 11/2811

•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 alpuesto (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)

5.2.1 Control de acceso global

Page 12: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 12/2812

• Para establecer una seguridad multinivel

• Existe la necesidad de este tipo de seguridad en aplicacionesgubernamentales, militares, de espionaje, de algunasgrandes 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 deseguridadCada 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 conla acreditación apropiada

5.2.2 Control de acceso obligatorio

Page 13: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 13/2813

• Niveles de seguridad

TS (top secret) secreto máximo o alto secretoS (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, 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)

5.2.2 Control de acceso obligatorio

Page 14: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 14/2814

• Soportado por la mayoría de los SGBD comerciales (Oracle)

• Basado en privilegios• Un privilegio es un derecho de acceso o autorización pararealizar 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 distintossobre un mismo objeto

 – U1 con privilegios SELECT, INSERT y DELETE sobre PELICULA,

mientras que U2 tiene sólo el privilegio SELECT

• Clases de privilegios

Privilegios de nivel de cuenta yPrivilegios de nivel de objeto de base de datos

5.2.3 Control de acceso discrecional

Page 15: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 15/2815

• 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 sonespecíficos de cada SGBD comercial particular

5.2.3 Control de acceso discrecional

Privilegios de nivel de cuenta

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

Page 16: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 16/2816

• 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é objetosciertos 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;

5.3 Seguridad en SQL-92

Page 17: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 17/2817

SELECT ver toda columna de cierta tabla, incluso si ha sidoañadida después de haber sido creada. NO ES POSIBLEINDICAR 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óloalgunas columnas

DELETE filas de cierta tabla

REFERENCES permite hacer referencia a (columnas concretas de)cierta tabla mediante Restricciones de Integridad decualquier tipo, no sólo RI Referencial

USAGE uso de ciertos dominios

ALL PRIVILEGES todos los que tiene sobre el objeto el usuario queconcede (que ejecuta GRANT)

5.3 Seguridad en SQL-92

Tipos de privilegios (de nivel de objeto)

Page 18: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 18/2818

• Modelo de Matriz de Acceso

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

5.3 Seguridad en SQL-92

M objeto_1 objeto_2 objeto_3   …

usuario_1 none SELECT ALL   …

usuario_2 SELECT UPDATESELECTDELETEUPDATE

usuario_3 none none SELECT   …

usuario_4 ALL ALL ALL   …

…   … … …

Page 19: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 19/2819

• 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 sentenciaconcedió a los sujetos indicados en el FROM

5.3 Seguridad en SQL-92

Page 20: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 20/2820

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 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 quesatisfacen cierta condición Q

CREATE VIEW W AS SELECT * FROM R WHERE Q;

GRANT SELECT ON W TO u2;

Para poder crear una vista, el usuario debe poseer elprivilegio SELECT sobre cada tabla base de la vista,además del privilegio de cuenta CREATE VIEW

5.3 Seguridad en SQL-92

Uso de vistas como mecanismo de seguridad

Page 21: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 21/2821

- Cuando u1, propietario de una tabla R, concede privilegiossobre R a otro usuario u2, también puede darle la opción deotorgar dichos privilegios a terceros

GRANT SELECT, INSERT ON R TO u2 WITH GRANT OPTION;

- A partir de ese momento, u2 podrá conceder esosprivilegios sobre R a otras cuentas de usuariopropagación de privilegios

- El SGBD mantiene la pista de la concesión y propagación deprivilegios entre los usuarios

5.3 Seguridad en SQL-92

Propagación de privilegios

Page 22: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 22/2822

- Revocar la GRANT OPTION de cierto privilegio a u2 no le canceladicho privilegio, pero evita que u2 lo propagueREVOKE GRANT OPTION FOR INSERT ON R FROM u2;

- 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 alguna de las tablas base de V

 Vista abandonada (no válida, no puede utilizarse)

5.3 Seguridad en SQL-92

Propagación de privilegios (2)

Page 23: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 23/28

23

• Cuando un usuario revoca privilegios, indica una de estasopciones...CASCADE

 – el SGBD revocará automáticamente todos los privilegiosque quedarían abandonados y

 – eliminará las vistas que quedarían abandonadasRESTRICT

 – el SGBD no revocará un privilegio si ello dejaraprivilegios o vistas abandonados

 – es la opción por omisión

REVOKE SELECT ON Fotografo FROM julia CASCADE;

REVOKE INSERT ON Reportaje FROM cristina RESTRICT;

5.3 Seguridad en SQL-92

Propagación de privilegios (3)

Page 24: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 24/28

24

• La revocación completa y correcta de privilegios sólo seconseguirá si el SGBD sigue la pista de la concesión ypropagación de privilegios

• Un usuario puede recibir un mismo privilegio desde variosusuarios. Sólo lo perderá si se lo revocan todos ellos

• Eliminar un objeto (dominio, tabla, columna o vista), revocaautomáticamente todo privilegio sobre el objeto eliminado,

en todos los usuarios

5.3 Seguridad en SQL-92

Propagación de privilegios (y 4)

Page 25: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 25/28

25

• Necesario si los datos son muy delicados, o elprocesamiento realizado con ellos es crítico

• Consiste en mantener un fichero especial donde elsistema registra de forma automática, toda interacción

de los usuarios con la información almacenada en la basede 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

5.4 Otros aspectos de seguridad

Seguimiento de auditoría

Page 26: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 26/28

26

• 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»

5.4 Otros aspectos de seguridad

Seguimiento de auditoría (y 2)

Page 27: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 27/28

27

• 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... Clave de cifrado secreta

 Algoritmo de cifrado público o secreto – El texto cifrado se transmite o almacena

y es ininteligible para quien no dispone de la clave

 – Problema...

Para un infiltrado o intruso, ¿cuál esla dificultad para encontrar la clave,

comparando textos planos y los textos

cifrados correspondientes?

5.4 Otros aspectos de seguridad

Cifrado de los datos

Texto Originaltexto plano 

Clave deCifrado

 Algoritmo deCifrado

Texto Cifrado

Page 28: Seguridad_Base de Datos

7/26/2019 Seguridad_Base de Datos

http://slidepdf.com/reader/full/seguridadbase-de-datos 28/28

 – Debe tomarse la precaución de cambiar la clave secreta deforma periódica

 – Punto débil: ¿dónde almacenar la clave? ¿y si las líneas decomunicació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 puede deducirse de la otra

 – Incluso el que cifra puede ser incapaz de recuperar el texto plano sidesconoce la clave de descifrado

• El cifrado de los datos reduce el rendimiento del sistema – El SGBD debe decodificar/codificar los datos manejados

5.4 Otros aspectos de seguridad

Cifrado de los datos (y 2)