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

BASES DE DATOS I

Seguridad
Seguridad en las bases de datos Æ Æ protección
contra:
• Revelación no autorizada (confidencialidad)
• Alteración no autorizada (integridad)
• Destrucción intencional o involuntaria

Protección dirigida a dos tipos de usuarios Æ


•Los que no tienen derechos de acceso
•Los que tienen derechos limitados a ciertas
acciones

Seguridad ≡ ¿Que datos? + ¿Que operaciones? +


¿Cuales usuarios?

BASES DE DATOS I

Seguridad en Bases de Datos


{ Datos Æ activo más valioso de una
organización Æ necesidad de controlarlo y
administrarlo cuidadosamente.

{ Parte o la totalidad de los datos corporativos


Æ importancia estratégica Æ necesidad de
manejarlos en forma segura y confidencial.

{ Consideraciones sobre seguridad Æ no se


aplican sólo a los datos Æ brechas en la
seguridad pueden afectar otras partes del
sistema, que a su vez pueden afectar la BD.

1
BASES DE DATOS I

Seguridad en Bases de Datos

• Cuán valiosos son los datos?


• Cuáles datos deben asegurarse?
• Cuánto costarán los accesos ilegales a los datos?
• Cuáles son las implicaciones de los cambios o
destrucciones de datos?
• Que medidas de seguridad afectan el
funcionamiento de la base de datos?
• Cómo pueden ocurrir los accesos no autorizados?

BASES DE DATOS I

Sistema de Seguridad del DBMS


{ Objetivos
z Integridad:
Sólo los usuarios autorizados deberían tener
acceso para modificar datos.

z Disponibilidad:
Los datos deben estar disponibles para usuarios
y programas de actualización autorizados.

z Confidencialidad:
Protección de los datos de su revelación no
autorizada.

2
BASES DE DATOS I

Aspectos Relativos a Seguridad

• Legales
• Sociales y Éticos
• Controles Físicos
• Cuestiones Estratégicas
• Problemas Operativos
• Controles de Hardware
• Sistema de Seguridad del SO
• Sistema de Seguridad de la Base de Datos

BASES DE DATOS I

Aspectos Relativos a Seguridad


• Morales/Éticos Æ puede haber razones morales
que regulen quienes tienen acceso a determinada
información, por ejemplo registros médicos, de
antecedentes penales, etc.

• Requisitos Legales Æ se requiere que las


organizaciones usen con discreción los datos
personales de los individuos. Esta información
debería poder ser verificada por los individuos
mismos.

3
BASES DE DATOS I

Aspectos Relativos a Seguridad


{ Seguridad Comercial Æ Información
perteneciente a una empresa es un recurso
valioso que podría ser útil para la competencia.

{ Fraude/Sabotaje Æ La información podría ser


mal utilizada, por ej. por un novato o por
alguien que tiene la intención de confundir.

{ Errores Æ cambios accidentales en los datos, no


maliciosos.

BASES DE DATOS I

Elementos que pueden ser protegidos


Granularidad
• Un atributo de una tupla.
• Un conjunto de columnas.
• Una tupla individual.
• Un conjunto de tuplas de una relación.
• Una relación en particular.
• Un conjunto de relaciones.
• La base de datos completa

4
BASES DE DATOS I

Mecanismos de Seguridad de la BD

{ Control de accesos
{ Control de flujo
{ Control de inferencia
{ Encriptado

BASES DE DATOS I

Métodos para el Control de Accesos


{ Control de Acceso Discrecional
garantiza privilegios a usuarios, incluyendo la
capacidad para acceder archivos de datos
específicos, registros o campos para operar de una
manera determinada (read, insert, delete, o
update).

{ Control de Acceso Mandatorio


clasifica usuarios y datos en múltiples niveles de
seguridad, y luego fuerza determinadas reglas
acordes a cada nivel.

5
BASES DE DATOS I

Seguridad a cargo del DBMS

Encriptado de Datos
Æ los datos son ilegibles a menos que se
tenga conocimiento del código.

Seguimiento del ‘rastro’ (Audit Trail)


Æ si alguien entra en la BD
Æ a que datos accedió y que hizo con ellos

BASES DE DATOS I

Seguridad a Nivel de Usuario en SQL


Cada usuario tiene ciertos derechos sobre ciertos
objetos.
Distintos usuarios Æ los mismos o distintos derechos
sobre los mismos objetos.
Para controlar la granularidad de los derechos de
acceso los usuarios pueden tener derechos
(autorización / privilegios) sobre
• Tabla
• Vista Æ controla particiones horizontales
(selecciones) y verticales (proyecciones) de una
tabla y datos generados dinámicamente desde otras
tablas.

6
BASES DE DATOS I

Control de Acceso Discrecional


GRANT SCHEMA NombreEsqBD AUTHORIZATION usuario;

GRANT privilegios ON objeto TO usuarios [WITH GRANT OPTION]

REVOKE [GRANT OPTION FOR] privilegio ON objeto FROM usuarios


{CASCADE | RESTRICT}

Privilegios a asignar:
{ SELECT – para leer todas las columnas (incluyendo las que se
añadan con ALTER TABLE)
{ DELETE – para remover datos
{ INSERT (columna/s) – para incorporar nuevas tuplas con
valores no nulos (o no default) en esa/s columna/s.
{ INSERT ídem para todas las columnas.
{ UPDATE – análogo a INSERT para modificar datos existentes
{ REFERENCES (columna) - para definir : foreign keys (en otras
tablas) que referencien a esta columna.
{ Sólo el propietario puede ejecutar CREATE, ALTER, y DROP.

BASES DE DATOS I

With Grant Option

WITH GRANT OPTION permite que el poseedor de


ciertos privilegios pueda transmitirlos a otros
usuarios.

Usuario Æ puede ser un ‘username’ o PUBLIC

PUBLIC Æ los privilegios se asignan a todos (ej.


GRANT SELECT ON ListaAlumnos TO PUBLIC;)

7
BASES DE DATOS I

Control de Acceso Discrecional: Ejemplo


• GRANT INSERT, SELECT ON Atletas TO Homero
Homero puede insertar y seleccionar tuplas de Atletas

• GRANT DELETE ON Atletas TO Entrenador WITH GRANT


OPTION
• Entrenador puede borrar tuplas de Atletas y autorizar borrados a
otros usuarios.

• GRANT UPDATE (categoría) ON Atletas TO Organizador


• Organizador puede actualizar solamente la categoría en las tuplas
de Atletas.

• GRANT SELECT ON VistaAtletasVeteranos TO Juan, Ivan, Ines


• Juan, Ivan e Ines NO pueden consultar directamente la tabla
Atletas!
•REVOKE: cuando un privilegio le es revocado al usuarioX, también
le es revocado a los que lo obtuvieron solamente de usuarioX.

BASES DE DATOS I

Control de Acceso Discrecional


GRANT/REVOKE en Vistas

•El creador de una vista tiene privilegios sobre la


vista si los tiene sobre todas las tablas subyacentes.

• Si el creador de una vista pierde el privilegio


SELECT sobre alguna de las tablas subyacentes, la
vista es removida!

• Si el creador de una vista pierde un privilegio


obtenido con With Grant Option, sobre una tabla
subyacente, también pierde el privilegio sobre la
vista; lo mismo ocurre con los demás usuarios que
obtuvieron el privilegio sobre la vista!

8
BASES DE DATOS I

REVOKE
José: GRANT SELECT ON Atletas TO Martin WITH GRANT OPTION

Martín: GRANT SELECT ON Atletas TO Juan WITH GRANT OPTION

José: REVOKE SELECT ON Atletas FROM Martin CASCADE

CASCADE vs RESTRICT:

• CASCADE: Todos los privilegios ‘colgados’ también son


revocados

• RESTRICT: El comando REVOKE es rechazado si produce


privilegios ‘colgados’.

BASES DE DATOS I

REVOKE

José: GRANT SELECT ON Atletas TO Martin WITH GRANT OPTION

José: GRANT SELECT ON Atletas TO Juan WITH GRANT OPTION

Martín: GRANT SELECT ON Atletas TO Juan WITH GRANT OPTION

José: REVOKE SELECT ON Atletas FROM Martin CASCADE

Juan retiene sus privilegios.

9
BASES DE DATOS I

REVOKE

José: GRANT SELECT ON Atletas TO Martin WITH GRANT OPTION

José: GRANT SELECT ON Atletas TO Martin WITH GRANT OPTION

José: REVOKE SELECT ON Atletas FROM Martin CASCADE

Los privilegios de Martin son revocados.

Nota: se podría haber revocado GRANT OPTION:

• REVOKE GRANT OPTION ON Atletas FROM Martin CASCADE

BASES DE DATOS I

Autorización Basada en Roles


• En SQL-92, los privilegios son asignados realmente a
identificadores que pueden representar a un usuario aislado o a
un grupo de ellos.
• En SQL:1999 (y en muchos sistemas actuales) los privilegios
son asignados a roles.
CREATE ROLE <nombre rol> [ WITH ADMIN <quien> ]

GRANT <rol concedido> [ { <coma> <rol concedido> }... ]


TO <a-quien> [ { <coma> <a-quien> }... ]
[ WITH ADMIN OPTION ] [ GRANTED BY <quien> ]
• Roles pueden ser asignados a usuarios o a otros roles
<a-quien>.
• Es una disposición más cercana a la forma en que trabajan las
organizaciones.

10
BASES DE DATOS I

Debilidades del Sistema Discrecional


Sistema

(Sistema, usuario1, SELECT ON


EMPLOYEE WITH GRANT OPTION)
Privilegio
otorgado
usuario1 usuario2

Privilegio
revocado

Usuario3 usuario4

Grafo de Autorizaciones Æ usuario 2 conserva los privilegios

BASES DE DATOS I

Control de Acceso Mandatorio


• Basado en estrategias de la organización, no pueden ser
modificados por los usuarios individualmente.

• Cada objeto de la BD tiene asignada una clase de seguridad.

• Cada sujeto (usuario o programa) tiene asignado un permiso


para una clase de seguridad.

• Existen reglas que habilitan/prohíben lecturas/escrituras en la


BD, de acuerdo a combinaciones específicas de clases de
seguridad y permisos.

• La mayoría de los DBMSs actuales no soportan control


mandatorio. Algunas versiones lo hacen para aplicaciones
específicas, p. ej. Defensa.

11
BASES DE DATOS I

Control de Acceso Mandatorio


Modelo Bell-LaPadula:
Objetos (tablas, vistas, tuplas)
Sujetos (usuarios, programas de usuario)

Clases de Seguridad:
Top secret (TS), secret (S), confidential (C), unclassified (U)
TS > S> C > U
Cada objeto y sujeto tiene asignada una clase.

El Sujeto S puede leer el objeto O sólo si


clase(S) >= clase(O) (Propiedad de Seguridad Simple)

El Sujeto S puede escribir el objeto O sólo si


clase(S) <= clase(O) (Propiedad *)

"no read up, no write down"

BASES DE DATOS I

Control de Acceso Mandatorio


Relaciones Multinivel

Id_Objeto color NombreObj Clase


102 Marrón Pintura C
101 Rojo Mesa S

• Usuarios con permisos S y TS pueden ver ambas filas; si tiene


permiso C sólo ve la primera y si tiene permiso U no ve ninguna.
• Si un usuario con permiso C trata de insertar <101, Azul, Silla, C>:
• Si se permite, viola la restricción de clave
• Si no se permite, el usuario entiende que hay otro objeto con
clave 101 que tiene clase > C!

• Problema resuelto si la clase se ve como parte de la clave.

12
BASES DE DATOS I

Control de Acceso basado en Roles


{ El acceso mandatorio es rígido porque hay que
asignar permisos de una determinada clase a
cada objeto y sujeto.

{ En el mundo real, los privilegios de acceso están


asociados con el rol de una persona en la
organización.

{ Cada rol debe ser creado con determinados


privilegios.

{ Cada usuario es asociado a un rol.

BASES DE DATOS I

Seguridad en BD Estadísticas
• Contiene información acerca de individuos, pero permite
sólo accesos ‘masivos’ (por ej. Sueldo promedio, no un
sueldo en particular).
• Problema !! Puede inferirse información secreta !!
• Ejemplo Æ Si se sabe que Juan es el atleta de mayor
edad, se puede hacer la consulta: “cuántos atletas hay
mayores que X años?” para distintos valores de X hasta
que la respuesta sea 1 Æ esto me permite inferir la edad
de Juan.
• Solucion ? Æ cada consulta debe incluir al menos N
filas… pero esto no resuelve otros problemas !!
• Ejemplo: pueden obtenerse los promedios de sueldos
de dos conjuntos de empleados que difieren en un
empleado. De esta manera, por simples operaciones se
puede calcular el sueldo del empleado.

13
BASES DE DATOS I

Soluciones para el Control de Inferencia


{ No se permiten consultas cuyos resultados incluyan
menos de un cierto número N de tuplas.

{ Se prohíbe una secuencia de consultas que se


refieran repetidamente a la misma población.

{ Puede particionarse la base en grupos con un


tamaño mayor que un cierto mínimo. Las consultas
pueden referirse a gualquier grupo completo o
conjunto de grupos, pero nunca a subconjuntos de
grupos.

BASES DE DATOS I

DBMSs y Seguridad en la Web


{ Las comunicaciones en Internet se basan en el
protocolo TCP/IP.

{ Ni TCP/IP ni HTTP fueron diseñadas pensando


en la seguridad. Sin software especial, todo el
tráfico de Internet viaja de manera que quien
monitorea el tráfico puede leerlo.

14
BASES DE DATOS I

DBMSs y Seguridad en la Web


{ Se debe asegurar que la información transmitida:
z sea inaccesible salvo para el emisor y el receptor
(privacidad).
z No cambie durante la transmisión (integridad);
z El receptor esté seguro de que proviene del emisor
(autenticidad);
z El emisor sepa que receptor es genuino (no-
fabricación);
z El emisor no pueda negar que ha hecho el envío
(no-repudio).

{ Debe proteger la información una vez que ha


alcanzado el servidor de WEB.

15

Вам также может понравиться