seguridad de base de datos

15

Click here to load reader

Upload: angel-feijo

Post on 12-Jun-2015

107.471 views

Category:

Economy & Finance


2 download

DESCRIPTION

Se da a conocer las diferentes formas de dar seguridad a una base de datos

TRANSCRIPT

Page 1: SEGURIDAD DE BASE DE DATOS

1

Seguridad

BASES DE DATOS I

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?

Seguridad en Bases de DatosDatos 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.

BASES DE DATOS I

Page 2: SEGURIDAD DE BASE DE DATOS

2

• 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

Seguridad en Bases de Datos

Sistema de Seguridad del DBMSObjetivos

Integridad:Sólo los usuarios autorizados deberían teneracceso para modificar datos.

Disponibilidad:Los datos deben estar disponibles para usuariosy programas de actualización autorizados.

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

BASES DE DATOS I

Page 3: SEGURIDAD DE BASE DE DATOS

3

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

• 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.

BASES DE DATOS I

Aspectos Relativos a Seguridad

Page 4: SEGURIDAD DE BASE DE DATOS

4

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.

Aspectos Relativos a Seguridad

BASES DE DATOS I

Elementos que pueden ser protegidosGranularidad• 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

BASES DE DATOS I

Page 5: SEGURIDAD DE BASE DE DATOS

5

Mecanismos de Seguridad de la BD

Control de accesosControl de flujoControl de inferenciaEncriptado

BASES DE DATOS I

Métodos para el Control de Accesos

Control de Acceso Discrecionalgarantiza privilegios a usuarios, incluyendo la capacidad para acceder archivos de datosespecíficos, registros o campos para operar de unamanera determinada (read, insert, delete, o update).

Control de Acceso Mandatorioclasifica usuarios y datos en múltiples niveles de seguridad, y luego fuerza determinadas reglasacordes a cada nivel.

BASES DE DATOS I

Page 6: SEGURIDAD DE BASE DE DATOS

6

Seguridad a cargo del DBMS

Encriptado de Datoslos 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 SQLCada 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.

BASES DE DATOS I

Page 7: SEGURIDAD DE BASE DE DATOS

7

Control de Acceso DiscrecionalGRANT 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 datosINSERT (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;)

BASES DE DATOS I

Page 8: SEGURIDAD DE BASE DE DATOS

8

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

• GRANT DELETE ON Atletas TO Entrenador WITH GRANTOPTION• 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 tuplasde 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: Ejemplo

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!

BASES DE DATOS I

Control de Acceso Discrecional

Page 9: SEGURIDAD DE BASE DE DATOS

9

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

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.

BASES DE DATOS I

REVOKE

Page 10: SEGURIDAD DE BASE DE DATOS

10

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

REVOKE

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.

BASES DE DATOS I

Page 11: SEGURIDAD DE BASE DE DATOS

11

Debilidades del Sistema Discrecional

Privilegio

revocado

usuario2

Sistema

usuario1

Usuario3 usuario4

(Sistema, usuario1, SELECT ON EMPLOYEE WITH GRANT OPTION)

Privilegiootorgado

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.

BASES DE DATOS I

Page 12: SEGURIDAD DE BASE DE DATOS

12

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

• 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.

BASES DE DATOS I

SMesaRojo101

CPinturaMarrón102

ClaseNombreObjcolorId_Objeto

Control de Acceso Mandatorio

Page 13: SEGURIDAD DE BASE DE DATOS

13

Control de Acceso basado en RolesEl acceso mandatorio es rígido porque hay queasignar permisos de una determinada clase a cada objeto y sujeto.

En el mundo real, los privilegios de acceso estánasociados con el rol de una persona en la organización.

Cada rol debe ser creado con determinadosprivilegios.

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.

BASES DE DATOS I

Page 14: SEGURIDAD DE BASE DE DATOS

14

Soluciones para el Control de Inferencia

No se permiten consultas cuyos resultados incluyanmenos 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 consultaspueden 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 pensandoen la seguridad. Sin software especial, todo el tráfico de Internet viaja de manera que quienmonitorea el tráfico puede leerlo.

BASES DE DATOS I

Page 15: SEGURIDAD DE BASE DE DATOS

15

Se debe asegurar que la información transmitida:sea inaccesible salvo para el emisor y el receptor (privacidad).No cambie durante la transmisión (integridad);El receptor esté seguro de que proviene del emisor(autenticidad);El emisor sepa que receptor es genuino (no-fabricación);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.

BASES DE DATOS I

DBMSs y Seguridad en la Web