Story Transcript
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
z
z
Integridad: Sólo los usuarios autorizados deberían tener acceso para modificar datos. Disponibilidad: Los datos deben estar disponibles para usuarios y programas de actualización autorizados. 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 [ WITH ADMIN ] GRANT [ { }... ] TO [ { }... ] [ WITH ADMIN OPTION ] [ GRANTED BY ]
• Roles pueden ser asignados a usuarios o a otros roles . • 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) 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 (nofabricación); z El emisor no pueda negar que ha hecho el envío (no-repudio). Debe proteger la información alcanzado el servidor de WEB.
una
vez
que
ha
15