Actualizado el 21 de Marzo del 2018 (Publicado el 29 de Diciembre del 2017)
547 visualizaciones desde el 29 de Diciembre del 2017
59,9 KB
15 paginas
Creado hace 17a (23/10/2006)
Seguridad
BASES DE DATOS I
Seguridad en las bases de datos (cid:198) (cid:198) 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 (cid:198)
•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
(cid:123) Datos (cid:198) activo más valioso de una
organización (cid:198) necesidad de controlarlo y
administrarlo cuidadosamente.
(cid:123) Parte o la totalidad de los datos corporativos
(cid:198) importancia estratégica (cid:198) necesidad de
manejarlos en forma segura y confidencial.
(cid:123) Consideraciones sobre seguridad (cid:198) no se
aplican sólo a los datos (cid:198) brechas en la
seguridad pueden afectar otras partes del
sistema, que a su vez pueden afectar la BD.
1
Seguridad en Bases de Datos
BASES DE DATOS I
• 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
(cid:123) Objetivos
(cid:122) Integridad:
Sólo los usuarios autorizados deberían tener
acceso para modificar datos.
(cid:122) Disponibilidad:
Los datos deben estar disponibles para usuarios
y programas de actualización autorizados.
(cid:122) Confidencialidad:
Protección de los datos de su revelación no
autorizada.
2
Aspectos Relativos a Seguridad
BASES DE DATOS I
• 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 (cid:198) puede haber razones morales
que regulen quienes tienen acceso a determinada
información, por ejemplo registros médicos, de
antecedentes penales, etc.
• Requisitos Legales (cid:198) 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
(cid:123) Seguridad Comercial (cid:198) Información
perteneciente a una empresa es un recurso
valioso que podría ser útil para la competencia.
(cid:123) Fraude/Sabotaje (cid:198) La información podría ser
mal utilizada, por ej. por un novato o por
alguien que tiene la intención de confundir.
(cid:123) Errores (cid:198) 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
(cid:123) Control de accesos
(cid:123) Control de flujo
(cid:123) Control de inferencia
(cid:123) Encriptado
BASES DE DATOS I
Métodos para el Control de Accesos
(cid:123) 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).
(cid:123) Control de Acceso Mandatorio
clasifica usuarios y datos en múltiples niveles de
seguridad, y luego fuerza determinadas reglas
acordes a cada nivel.
5
Seguridad a cargo del DBMS
BASES DE DATOS I
Encriptado de Datos
(cid:198) los datos son ilegibles a menos que se
tenga conocimiento del código.
Seguimiento del ‘rastro’ (Audit Trail)
(cid:198) si alguien entra en la BD
(cid:198) 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 (cid:198) 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 (cid:198) 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:
(cid:123) SELECT – para leer todas las columnas (incluyendo las que se
añadan con ALTER TABLE)
(cid:123) DELETE – para remover datos
(cid:123) INSERT (columna/s) – para incorporar nuevas tuplas con
valores no nulos (o no default) en esa/s columna/s.
(cid:123) INSERT ídem para todas las columnas.
(cid:123) UPDATE – análogo a INSERT para modificar datos existentes
(cid:123) REFERENCES (columna) - para definir : foreign keys (en otras
tablas) que referencien a esta columna.
(cid:123) Sólo el propietario puede ejecutar CREATE, ALTER, y DROP.
With Grant Option
BASES DE DATOS I
WITH GRANT OPTION permite que el poseedor de
ciertos privilegios pueda transmitirlos a otros
usuarios.
Usuario (cid:198) puede ser un ‘username’ o PUBLIC
PUBLIC (cid:198) 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’.
REVOKE
BASES DE DATOS I
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
REVOKE
BASES DE DATOS I
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
Autorización Basada en Roles
BASES DE DATOS I
• 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
Debilidades del Sistema Discrecional
BASES DE DATOS I
Sistema
(Sistema, usuario1, SELECT ON
EMPLOYEE WITH GRANT OPTION)
usuario1
usuario2
Privilegio
otorgado
Privilegio
revocado
Usuario3
usuario4
Grafo de Autorizaciones (cid:198) 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
102
1
Comentarios de: BASES DE DATOS I (0)
No hay comentarios