SEGURIDAD Seguridad. Definición ¿Por qué Seguridad

Anuncio
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
Descargar