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