Seguridad SEGURIDAD Seguridad. Definición • Los datos constituyen un recurso valioso que debe ser estrictamente controlado y gestionado, al igual que cualquier otro recurso corporativo. • Definición y temas abarcados • Amenazas y contramedidas • Control de acceso: – Gestión de usuarios • El termino seguridad hace referencia a la protección de la BD frente a accesos no autorizados, ya sean intencionados o accidentales. • Autorización: – Gestión de perfiles – Gestión de privilegios – Gestión de roles 1 Seguridad. Temas que abarca (I) 2 Seguridad. Temas que abarca (II) LEGALES • Cuestiones éticas y legales relativas al derecho a tener acceso a cierta información. ORGANIZATIVOS FISICO • Cuestiones de política en el nivel gubernamental, institucional o corporativo relacionadas con la información que no debe estar disponible para el público. COMUNICACIONES SGBD SO HW • Cuestiones relacionadas con el sistema. • Necesidad en algunas organizaciones de identificar múltiples niveles de seguridad y de clasificar los datos 3 y los usuarios según estos niveles. ¿Por qué Seguridad? “amenazas” • Perdida de Integridad de los Datos. Datos no correctos 4 SEGURIDAD • Aspectos generales • Amenazas y contramedidas Decisiones No correctas. • Control de acceso: • Carencias en la disponibilidad de los datos para personas o programas con autorización. – Gestión de usuarios • Autorización: – Gestión de perfiles • Violación de la confidencialidad de los datos. Protección frente a revelaciones No autorizadas. 5 ABD 2007 – Gestión de privilegios – Gestión de roles 6 1 Seguridad Amenazas Amenaza. Definición Cualquier situación o suceso, intencionado o accidental, que pueda afectar adversamente a un sistema y, consecuentemente a la organización Fig. 19.1. Connolly & Begg 7 Ej. Amenazas Perdidas/ Amenaza Robo o Fraude Acceder con otra cuenta Copia/modific. de datos X Escuchas / Hacker / Chantaje X Confiden cialidad X Priva cidad Contramedidas (C) Integri dad Disponi bilidad X X • Autorización • Control de acceso X X 8 • Controlar el acceso a BD Estadísticas • Vistas X • Copias de seguridad y recuperación Acceso superior por fallo X X X Mala formación del personal Robo, fuego X X X X X X • Integridad • Cifrado • Tecnología RAID • Control de flujo 9 C: Autorización 10 C: Control de acceso • Autorización: concesión de un derecho o privilegio que permite a un sujeto acceder legítimamente a un sistema o a un objeto del sistema. • Concesión y revocación de privilegios. • Control de acceso Discrecional (DAC). • Control de acceso Obligatorio (MAC). • Autenticación: mecanismo que determina si un usuario es quién dice ser. 11 ABD 2007 12 2 Seguridad Control de Acceso Obligatorio Control de Acceso Obligatorio • No lo ofrecen la mayoría de los SGBD comerciales. • Clases de seguridad: • A cada objeto de la BD se le asigna una clase de seguridad y a cada usuario se le asigna un nivel de autorización, imponiéndose una serie de reglas a la lectura y escritura de objetos de la base de datos por parte de los usuarios. – TS (Top Secret) nivel más alto – S (Secret) – C (Confidential ) – U (Unclassified ) nivel más bajo Se asigna a cada usuario y a cada objeto una de las clases de seguridad. TS > S > C > U, donde A > B implica que los datos de la clase A tienen un nivel de seguridad más alto que los datos de la clase B. 13 14 Control de Acceso Obligatorio Modelo Bell-LaPadula Control de Acceso Obligatorio La diferencia con respecto a la seguridad discrecional radica en que los datos tienen un nivel de seguridad por si mismos, con independencia de los que se atribuyan a los usuarios. • El modelo impone dos restricciones a todas las lecturas y escrituras de objetos de la BD: – Propiedad de Seguridad simple: el sujeto S puede leer el objeto O sólo si la classe(S) >= classe(O). (ej. Un usuario con nivel de seguridad TS puede leer una relación con nivel de seguridad C) – *-Property: el sujeto S puede escribir el objeto O sólo si classe(S) < = classe(O) 15 Control de Acceso Obligatorio • SELECT * FROM EMPLOYEE (ej. Un usuario con nivel de seguridad S sólo puede escribir objetos cuya clase de seguridad sea S o TS) 16 Acceso Discrecional v.s. Acceso Obligatorio • Discrecional Usuario con nivel S • Obligatorio Flexibilidad Elevado grado de protección Vulnerabilidad Demasiado rígido (cada atributo tiene asociado un atributo de clasificación de seg uridad) Usuario con nivel C 17 ABD 2007 18 3 Seguridad C: Bases de Datos Estadísticas C: Vistas Una vista es el resultado dinámico de una o más operaciones relacionales que operan sobre las relaciones base con el fin de producir otra relación. Una vista es una relación virtual que no existe en realidad en la base de datos, sino que se genera en el momento en que el usuario la solicita • Sus mecanismos de seguridad deben prohibir la obtención de datos sobre individuos concretos. 19 C: Copia de seguridad y recuperación • Copia de seguridad: Es el proceso de realizar copias de la BD. 20 C: Integridad • Mantiene a la BD segura ya que impide la incorporación de datos erróneos o inválidos. • Registro o diario: Aquí se registran todos los cambios continuos realizados en la BD. 21 22 C: Cifrado C: RAID • Codificación de los datos mediante un algoritmo especial que hace que los datos no sean legibles por parte de ningún programa que no disponga de la clave de descifrado Es matriz formada por discos independientes que se organiza para mejorar la fiabilidad e incrementar las prestaciones • En Oracle : DESEncrypt y DESDecrypt 23 ABD 2007 24 4 Seguridad SEGURIDAD C: Control de Flujo • Los controles de flujo comprueban que información contenida en algunos objetos no fluya explícitamente o implícitamente a objetos nuevos protegidos. • Aspectos generales • Amenazas y contramedidas • La transferencia de información de un emisor a un receptor se permite si y sólo si el receptor tiene un nivel de seguridad asignado >= al emisor. • La política de flujo especifica los canales a través de los cuales se puede mover la información. • Control de acceso (CA): – Gestión de usuarios (GU) • Autorización: – Gestión de perfiles – Gestión de privilegios – Gestión de roles 25 CA. Gestión usuario. 26 GU. Cuenta y password • EL SGBD verificara el nombre de cuenta y contraseña. Si son correctos permite al usuario utilizar el SGBD y tener acceso a la BD • El ABD creará un nuevo nombre de cuenta y contraseña para cada persona que necesite tener acceso a la BD • Para el control de cuentas y contraseñas se crea una tabla con los campos: Nombre de cuenta y contraseña y Número de Cuenta (con algunos SGBD) (conviene cambiar periódicamente) • Cuando se especifica una contraseña para un usuario la BD almacena la versión encriptada del mismo en el diccionario de datos. La misma contraseña para diferentes usuarios genera diferentes versiones encriptadas. • La tabla la mantiene el SGBD • También se controlan las operaciones que un usuario determinado aplica a la BD durante cada sesión de trabajo (se anotan en el diario) 27 28 GU. Oracle CA. Cuentas y password • Cada base de datos ORACLE tiene una lista de nombres de usuario. • Cada nombre de usuario tiene asociada un password para prevenir el uso no autorizado. • Existe un esquema asociado con cada nombre de usuario con el mismo nombre: colección lógica de objetos (tablas, vistas, secuencias, sinónimos, índices, agrupaciones, procedimientos..). • Durante la creación de la BD son creados dos usuarios: SYS y SYSTEM. 29 ABD 2007 • Para crear otros usuarios se debe acceder a la BD como 30 SYSTEM. 5 Seguridad GU. Creación usuario (Oracle) GU. Parámetros a tener en cuenta -nombre de usuario (“name ”) -Profile -mecanismo de identificación -“tablespace”: zona de trabajo donde guardar sus objetos los límite o cuotas • La BD almacena una versión encriptada del password. Fig. 19.8. Connolly & Begg 31 32 GU. Sentencia CREATE USER (I) GU. Sentencia CREATE USER (II) CREATE USER usuario IDENTIFIED {BY clave | EXTERNALLY AS ‘nombre’} • Existen dos formas de acceder a la base de datos: • Mediante usuario y password: CREATE USER usuario IDENTIFIED BY clave; • Mediante usuario: nombre de usuario con el que se accede al sistema operativo. Se crea con el prefijo OPS$ CREATE USER OPS$usuario IDENTIFIED EXTERNALLY; 33 GU. Sentencia CREATE USER (III) 34 GU. Sentencia CREATE USER (IV) CREATE USER usario IDENTIFIED {BY clave | EXTERNALLY AS ‘nombre’} [DEFAULT TABLESAPCE tablespace] [TEMPORARY TABLESPACE tablespace] [PROFILE {nombre -profile /DEFAULT}] Si no se especifica un perfil, se aplica el perfil por defecto (tiene asignados todos los limites a UNLIMITED) 35 ABD 2007 Si no se especifica una cuota (QUOTA) el usuario no puede crear objetos. 36 6 Seguridad GU. Sentencia ALTER USER GU. Sentencia DROP USER Usos: La opción CASCADE propaga el borrado a los objetos • reponer el password cuando al usuario se le olvida del esquema de este usuario. Si a continuación se crea otro usuario • obligar a reponer el password con cada conexión con el mismo nombre no hereda los objetos del anterior usuario con ese nombre (razón: a cada cuenta se asigna un número además del nombre) • bloquear/desbloquear la cuenta • modificar los límites en el espacio 37 38 SEGURIDAD GU.Diccionario de datos • Diccionario Datos sobre usuarios • Aspectos generales • Amenazas y contramedidas • Control de acceso (CA): – Gestión de usuarios • Autorización (A): – Gestión de perfiles – Gestión de privilegios – Gestión de roles 39 Autorización de la BD. Mecanismos 40 SEGURIDAD • Gestión de perfiles • Aspectos generales – creación • Amenazas y contramedidas – modificación • Control de acceso (CA): • Gestión de privilegios – Gestión de usuarios – otorgar • Autorización (A): – revocar – Gestión de perfiles (GP) • Gestión de roles – Gestión de privilegios – creación – Gestión de roles – asignación 41 ABD 2007 42 7 Seguridad Gestión Perfiles. Definición Gestión Perfiles. Definición • Perfil: cjto. nominado de límites en los recursos. • Cada usuario tiene asignado un perfil que especifica las limitaciones sobre los distintos recursos del sistema. • Se asigna al crear el usuario (create user) o durante la vida de éstos (alter user) • Número de sesiones concurrentes • Tiempo de procesamiento de la CPU. • Se pueden activar y desactivar • Cantidad de entradas y salidas lógicas. • Pueden crearse varios perfiles y asignarse individualmente a cada usuario de la BD. Existe un perfil por defecto: DEFAULT (recursos ilimitados) • Se usan para limitar la cantidad de recursos del sistema y de la BD disponibles para un usuario. • Cantidad permitida de tiempo sin trabajar • Cantidad permitida de tiempo por conexión. • La limitación de recursos previene el consumo excesivo de recursos globales del sistema de BD. 43 GP. Sentencia CREATE PROFILE 44 GP. Sentencia CREATE PROFILE Para poder crear un perfil se utiliza CREATE PROFILE. SESSIONS_PER_USER: Limita el número de sesiones concurrentes. CREATE PROFILE perfil LIMIT [SESSION_PER_USER {entero | UNLIMITED |DEFAULT}] [CPU_PER_SESSION {entero | UNLIMITED |DEFAULT}] [CPU_PER_CALL {entero | UNLIMITED |DEFAULT}] [CONNECT_TIME {entero | UNLIMITED |DEFAULT}] [IDLE_TIME {entero |UNLIMITED | DEFAULT}] [LOGICAL_READS_PER_SESSION {entero | UNLIMITED |DEFAULT}] [LOCIGAL_READS_PER_CALL {entero | UNLIMITED |DEFAULT}] [COMPOSITE_LIMIT {entero | UNLIMITED |DEFAULT}] [PRIVATE_SGA {entero [K|M] | UNLIMITED |DEFAULT}] [FAILED_LOGIN_ATTEMPS {entero | UNLIMITED |DEFAULT}] [PASSWORD_LIFE_TIME {entero | UNLIMITED |DEFAULT}] [{PASSWORD_REUSE_TIME |PASSWORD_REUSE_MAX} {entero | UNLIMITED |DEFAULT}] [PASSWORD_LOCK_TIME {entero | UNLIMITED |DEFAULT}] [PASSWORD_GRACE_TIME {entero | UNLIMITED |DEFAULT}] CPU_PER_SESSION: Limita el tiempo de CPU por sesión (centésimas de seg.). CPU_PER_CALL: Limita el tiempo de CPU por llamada (centésimas de seg). CONNECT_TIME: Limita el tiempo de sesión en minutos. IDLE_TIME: Desconecta a los usuarios transcurrido el tiempo indicado sin realizar ninguna acción. LOGICAL_READS _PER_SESSION: Limita el número de bloques leidos , LOGICAL_READS _PER_CALL: Limita el número de bloques leídos por llamada. COMPOSITE_LIMITS: Restringe el coste total de recursos (media ponderada) 45 GP. Sentencia CREATE PROFILE 46 GP. Asignación de Perfil a un usuario PRIVATE_SGA: Limita la cantidad de espacio privado que se puede reservar en la SGA (área global del sistema). FAILED_LOGIN_ATTEMPS: Número de intentos fallidos para bloquearse el usuario. PASSWORD_LIFE_TIME: Número de días que puede usarse la misma clave. PASSWORD_REUSE_TIME: Número mínimo de días que deben pasar para poder utilizar otra vez la misma clave. PASSWORD_REUSE_MAX: Número de cambios de clave necesarios para poder volver a usar la misma clave. PASSWORD_LOCK_TIME: Número de días que debe un usuario estar bloqueado después de n intentos fallidos PASSWORD_GRACE_TIME: Número de días que se permite usar un usuario con la clave expirada. 47 ABD 2007 48 8 Seguridad GP. Sentencia ALTER PROFILE GP. Sentencia DROP PROFILE 49 50 SEGURIDAD GP. Diccionario • Diccionario. Datos sobre Perfiles • Aspectos generales • Amenazas y contramedidas • Control de acceso (CA): – Gestión de usuarios • Autorización (A): – Gestión de perfiles – Gestión de privilegios – Gestión de roles 51 52 Privilegios. Nivel Cuenta o Sistema A. Gestión de Privilegios • El método más habitual para imponer el control de acceso discrecional en un SBD se basa en conceder y revocar privilegios. • Para ejecutar acciones sobre la BD • • • CREATE- crear ALTER- aplicar cambios DROP- eliminar • Existen dos niveles de asignación de privilegios: – Nivel de cuenta (sistema): privilegios que tiene la cuenta, independientemente de las relaciones de la BD. Ej. CREATE TABLE – Nivel de relación (objeto): privilegios para tener acceso a cada relación o vista de la BD. (definidos en SQL) Ej. MODIFY para la relación R 53 ABD 2007 Para conceder los privilegios se debe tener la opción WITH ADMIN OPTION. 54 9 Seguridad Privilegios. GRANT y REVOKE Privilegios. Nivel Sistema (mysql) • Sentencias GRANT y REVOKE • mysql> GRANT ALL PRIVILEGES on bedrock.* to david@'%'; • mysql> FLUSH PRIVILEGES; • SHOW GRANTS FOR Dude2@'%'; La revocación del privilegio a “user1” NO conlleva la revocación a aquellos otros usuarios que obtuvieran su privilegio a través de “user1” 55 56 Privilegios. Nivel Objeto Privilegios. Nivel Relación u Objeto • Para acceder y manipular objetos específicos • Especifican para cada usuario, las relaciones individuales a las que se puede aplicar cada tipo de instrucción • El usuario que crea una tabla tiene TODOS los privilegios sobre esta tabla (identificador: usuario.nombreTabla) • REFERENCES: restringe la capacidad de un usuario para declarar claves externas al crear relaciones. Se concede sobre atributos concretos. Ej. GRANT REFERENCES (Nombre) ON Sucursal to U1. 57 Privilegios 58 Gestión de Privilegios • El acceso a la información esta restringida • Ejemplo. • Privilegios requeridos para ejecutar la instrucción anterior: – INSERT sobre Veteranos – SELECT sobre Estudiante – SELECT sobre Ingeniero • Los privilegios se verifican contra el “username” facilitado al conectarse al SGBD ABD 2007 59 60 10 Seguridad Privilegios. Nivel de Objeto Privilegios. Nivel de Objeto • Siempre que el propietario A de una relación R concede un privilegio de R a otra cuenta B, el privilegio puede darse a B con opción de concesión o sin ella • Sentencias GRANT y REVOKE GRANT OPTION • Si se da con esta opción significa que B también podrá conceder este privilegio de R a otras cuentas. Los privilegios se pueden propagar GRANT UPDATE y INSERT lista de atributos (SELECT, DELETE NO) Para el caso de la propagación, REVOKE puede añadir: • Existen técnicas para limitar la propagación de privilegios 61 • CASCADE: propaga la revocación a los privilegios propagados. En la mayoría de los SGBD, la retirada en Cascada es el comportamiento predeterminado. • RESTRICT: evita la revocación, si ocasiona que se revoque el privilegio también a otros usuarios. Ej. REVOKE SELECT ON Sucursal From U1, U2 RESTRICT 62 Privilegios. Sentencia GRANT (ORACLE) Privilegios. Sentencia GRANT • Para conceder privilegios se emplea la sentencia de concesión: GRANT <lista de privilegios> ON <nombre de objeto> TO <lista de usuarios> [WITH GRANT OPTION] Nota: SQL No soporta autorizaciones a nivel de tuplas Sólo puede dar un GRANT el propietario del objeto (o cuando lo ha recibido con la opción GRANT OPTION) No se pueden dar en la misma sentencia privilegios de cuenta y de relación. 63 GRANT to PUBLIC 64 Sentencia REVOKE • Para revocar los privilegios se emplea la sentencia: • Cuando una autorización se concede a PUBLIC, todos los usuarios tendrán la concesión (no permite añadir la opción WITH GRANT OPTION) REVOKE <lista de privilegios> ON <nombre de objeto> FROM<lista de usuarios> [restrict/cascade] • No hay que confundir PUBLIC con Any 65 ABD 2007 66 11 Seguridad Sentencia REVOKE (ORACLE ) REVOKE from PUBLIC • No elimina el privilegio a todos aquellos que lo hubieran conseguido con un GRANT específico 67 68 Especificación de límites para la propagación de privilegios Privilegios. Diccionario (No implementados en la mayoría de los SGBD) • Diccionario. Datos sobre privilegios • Propagación Horizontal a un número i significa que una cuenta B que posee la opción GRANT OPTION puede conceder el privilegio como máximo a otras i cuentas. • Propagación Vertical limita la profundidad de concesión de privilegios. 69 70 Gestión de Privilegios. ¿Por qué surge el ROL (papel)? Propagación Vertical Si una cuenta A concede un privilegio a una cuenta B con una propagación vertical limitada a un número entero j> 0, significa que la cuenta B tendrá GRANT OPTION para ese privilegio, pero B sólo podrá conceder el privilegio a otras cuentas con una propagación vertical menor que j. • Ej. Cada vez que se introduce un nuevo alumno hay que darle todas los privilegios. • Esquema mejor: Especificar los privilegios que deben tener los alumnos e identificar a los usuarios que son alumnos. Los Roles capturan este esquema. (Los privilegios se asignan a los roles y a los usuarios se les asocian roles) 71 ABD 2007 72 12 Seguridad SEGURIDAD Trabajando con Roles • Aspectos generales • Se crean los roles y se les conceden los privilegios. • Al crear los usuarios se les asignan los roles • Amenazas y contramedidas • Control de acceso (CA): – Gestión de usuarios • Autorización (A): Los roles requieren que los usuarios se conecten con su propio identificador. – Gestión de perfiles – Gestión de privilegios – Gestión de roles 73 Gestión de Roles. Objetivos 74 Creación y asignación de roles • Agilizar la asignación/revocación de privilegios • Estructurar la asignación de privilegios • Existen roles por defecto – CONNECT - permite a los usuarios conectarse a la BD y crear objetos. – RESOURCE – proporciona a los usuarios los privilegios para crear procedimientos y triggers – DBA –privilegios casi ilimitados 75 Jerarquías de Roles Bibliografía • Fundamentals of Database Systems (4.edición 2004). Fundamentos de Sistemas de Bases de Datos (3.edición, 2002) Elmasri, Navathe Addisson Wesley Usuarios Roles de usuario • Sistemas de Bases de Datos. Un enfoque práctico para diseño, implementación y gestión. (4. edición, 2005) T. Connolly, C. Begg Addison-Wesley Roles de aplicación 77 ABD 2007 76 78 13