Bases de Datos II Seguridad Universidad Argentina J. F. Kennedy - Año 2008 Bases de Datos II Seguridad Maletin Yahoo => briefcase.yahoo.com Usuario => bd2_jfk Psw => kennedy
Seguridad Definición Control de Acceso DISCRECIONAL Control de Acceso Obligatorio Cifrado de Datos Propiedades del SQL
Seguridad - Definición Seguridad => Proteger los datos ante usuarios no autorizados Integridad => Proteger los datos de usuarios autorizados
Seguridad - Definición ¿A que nos referimos con seguridad? Seguridad es garantizar que los usuarios tengan permiso de hacer las cosas que están tratando de hacer.
Seguridad - Definición ¿A que nos referimos con integridad? La integridad involucra asegurar que las cosas que están tratando de hacer sean correctas.
Seguridad - Definición Hay que contemplar: Aspectos legales, sociales y éticos Controles físicos Cuestiones de política Problemas operacionales Controles de Hardware Soporte de Sistema Operativo Seguridad de las Bases de Datos
Seguridad - Definición Hay que contemplar: Aspectos legales, sociales y éticos Controles físicos Cuestiones de política Problemas operacionales Controles de Hardware Soporte de Sistema Operativo Seguridad de las Bases de Datos Ejemplo: ¿Tiene derecho legal para ver la información (prestamos, sueldos, etc)?
Seguridad - Definición Hay que contemplar: Aspectos legales, sociales y éticos Controles físicos Cuestiones de política Problemas operacionales Controles de Hardware Soporte de Sistema Operativo Seguridad de las Bases de Datos Ejemplo: ¿El lugar en donde se encuentra la computadora o terminal está bajo llave o con alguna otra protección?
Seguridad - Definición Hay que contemplar: Aspectos legales, sociales y éticos Controles físicos Cuestiones de política Problemas operacionales Controles de Hardware Soporte de Sistema Operativo Seguridad de las Bases de Datos Ejemplo: ¿Cómo decide la empresa propietaria del sistema a quién y a qué se le permite tener acceso?
Seguridad - Definición Hay que contemplar: Ejemplo: Si se utiliza un esquema de contraseñas, ¿cómo se les mantiene en secreto? ¿con cuánta frecuencia son cambiadas? Aspectos legales, sociales y éticos Controles físicos Cuestiones de política Problemas operacionales Controles de Hardware Soporte de Sistema Operativo Seguridad de las Bases de Datos
Seguridad - Definición Ejemplo: ¿La CPU proporciona alguna característica de seguridad, como claves de protección de almacenamiento o un modo de operación protegido? Hay que contemplar: Aspectos legales, sociales y éticos Controles físicos Cuestiones de política Problemas operacionales Controles de Hardware Soporte de Sistema Operativo Seguridad de las Bases de Datos
Seguridad - Definición Hay que contemplar: Aspectos legales, sociales y éticos Controles físicos Cuestiones de política Problemas operacionales Controles de Hardware Soporte de Sistema Operativo Seguridad de las Bases de Datos Ejemplo: ¿El sistema operativo borra el contenido de la memoria principal y los archivos de disco cuando ha terminado de utilizarlos?
Seguridad - Definición Hay que contemplar: Aspectos legales, sociales y éticos Controles físicos Cuestiones de política Problemas operacionales Controles de Hardware Soporte de Sistema Operativo Seguridad de las Bases de Datos Ejemplo: ¿tiene el sistema de base de datos un concepto de propiedad de los datos?
Seguridad – Base de Datos Existen enfoques diferentes: Control de Acceso DISCRECIONAL Control de Acceso OBLIGATORIO
Seguridad CONTROL DE ACCESO DISCRECIONAL Se requiere un lenguaje que soporte la definición de las restricciones de seguridad (discrecionales). Sin embargo es más fácil decir lo que está permitido en vez de lo que no lo está; por lo tanto, los lenguajes por lo general soportan la definición de las autoridades
Seguridad Lenguaje hipotético: AUTHORITY <nombre de autoridad> GRANT <lista de privilegios separados con comas> ON <nombre de varrel> TO <lista IDs de usuario separados con comas>;
Seguridad Características: <privilegios> : RETRIVE (SELECT) UPDATE DELETE INSERT ALL
Seguridad Características: Para eliminar autoridades: DROP AUTHORITY <nombre de autoridad>;
Seguridad Características adicionales: Autoridades dependientes del contexto : Today => fecha actual user () => el ID del usuario actual Termínal=> el ID de la terminal donde se origina la petición actual
Seguridad Cuando los datos son muy críticos puede ser necesario contar con un registro de AUDITORIA.
Seguridad Datos de AUDITORIA: Registro del tipo de petición del usuario (Select, Insert, ect) Terminal de la operación Usuario de la operación Fecha y hora de la operación Tablas, tuplas y atributos afectados Valores antiguos Valores nuevos
Seguridad CONTROL DE ACCESO OBLIGATORIO Cada objeto de datos tiene un nivel de Clasificación Cada usuario tiene un nivel de Acreditación
Seguridad Se imponen las siguientes reglas: El usuario i puede recuperar el objeto j sólo si el nivel de acreditación de i es mayor o igual al nivel de clasificación de j El usuario i puede actualizar el objeto j sólo si el nivel de acreditación de í es igual al nivel de clasificación de j
Seguridad En los noventa el Departamento de Defensa de los Estados Unidos comenzó a requerir que cualquier sistema que adquiriera tuviera soporte para tales controles.
Seguridad Los controles están documentados en: Libro Naranja Libro Lavanda
Seguridad Libro naranja: Define un conjunto de requerimientos de seguridad para cualquier "base de computación confiable" (TCB) Objetivo: Garantizar la protección de información clasificada de EEUU Ha servido como base para elaborar diversos criterios para la evaluación de la seguridad nacional en diferentes paises
Seguridad Libro Lavanda: Define específicamente una "interpretación" de los requerimientos TCB para los sistemas de base de datos
Seguridad Los controles obligatorios forman parte de un esquema más general de clasificación de seguridad total
Seguridad Esquema general definido por el libro Naranja: clase D proporciona protección mínima clase C protección discrecional clase B protección obligatoria clase A protección verificada
Seguridad Clase C - Protección discrecional : Soporta controles discrecionales, lo que significa que el acceso está sujeto a la discreción del propietario de los datos (como se vio anteriormente)
Seguridad Clase B - Protección obligatoria: La clase B1 requiere "protección de seguridad etiquetada" (requiere que cada objeto tenga un nivel de clasificación: secreto, confidencial, etc)
Seguridad Clase B - Protección obligatoria: La clase B2 tienen la posibilidad de inferir la respuesta a una consulta no válida a partir de la respuesta de una válida y/o la posibilidad de deducir información sensible a partir del tiempo que requiere la realización de algún cálculo válido
Seguridad Clase B - Protección obligatoria: La clase B3 requiere específicamente el soporte de auditoria y recuperación, así como la designación de un administrador de seguridad.
Seguridad Clase A - Protección verificada: La clase A (la más segura) requiere una prueba matemática que verifique que: el mecanismo de seguridad es consistente es adecuado para soportar la política de seguridad especificada
Seguridad BASES DE DATOS ESTADÍSTICAS Es aquella que permite consultas que proporcionen información general (por ejemplo sumas, promedios) pero no consultas que proporcionen información individual.
Seguridad BASES DE DATOS ESTADÍSTICAS Permitido: "¿cuál es el salario promedio de los programadores?" Prohibido: "¿cuál es el salario de la programadora Mary?"
Seguridad Problema de los Rastreador Deducción de información confidencial por inferencia SELECT SUM(SUELDO) FROM PERS WHERE SEXO = ‘M’ AND SECTOR = 38 AND SKILL = ‘PROGRAMADOR’ AND …
Seguridad Solución parcial al Rastreador Controlar la cardinalidad de las filas revisadas.
Seguridad Problema: Operar con Rastreadores sucesivos SELECT SUM(SUELDO) FROM PERS WHERE SEXO = ‘M’; WHERE SECTOR = 38; WHERE SKILL = ‘PROGRAMADOR’;
Seguridad CIFRADO DE DATOS – Algunas Definiciones A los datos originales (sin cifrado) se les llama texto plano El texto plano es cifrado sometiéndolo a un algoritmo de cifrado A la salida de este algoritmo se le llama texto cifrado
Seguridad CIFRADO DE DATOS Los detalles del algoritmo de cifrado son públicos La clave de cifrado se mantiene en secreto
Seguridad Ejemplo – Texto Plano AS KINGFISHERS CATCH FIRE Dada una frase y una clave (ELIOT) primero se cambia a numero. 00 para blanco y 01 A… etc.
Seguridad Ejemplo – Clave de Cifrado AS KINGFISHERS CATCH FIRE ELIOT Dada una frase y una clave (ELIOT) primero se cambia a numero. 00 para blanco y 01 A… etc.
Seguridad Ejemplo – Agrupar según tamaño Clave AS KINGFISHERS CATCH FIRE ELIOT AS+KI NGFIS HERS+ CATCH +FIRE Dada una frase y una clave (ELIOT) primero se cambia a numero. 00 para blanco y 01 A… etc.
Seguridad Ejemplo – Cada letra con su valor (Ej: A=01) AS KINGFISHERS CATCH FIRE ELIOT AS+KI NGFIS HERS+ CATCH +FIRE 0119001109 1407060919 0805181900 0301200308 0006091805 Dada una frase y una clave (ELIOT) primero se cambia a numero. 00 para blanco y 01 A… etc.
Seguridad Ejemplo – Remplazar clave (ELIOT) y sumar AS KINGFISHERS CATCH FIRE ELIOT AS+KI NGFIS HERS+ CATCH +FIRE se suma módulo 27 (09+20 = 29 -> 02): 0119001109 1407060919 0805181900 0301200308 0006091805 + 0512091520 0512091520 0512091520 0512091520 0512091520 ========== ========== ========== ========== ========== 0604092602 1919152412 1317000720 0813021801 0518180625 Dada una frase y una clave (ELIOT) primero se cambia a numero. 00 para blanco y 01 A… etc.
Seguridad Ejemplo – Se obtiene Texto Cifrado AS KINGFISHERS CATCH FIRE ELIOT AS+KI NGFIS HERS+ CATCH +FIRE por la suma módulo 27 (09+20 = 29 -> 02): 0119001109 1407060919 0805181900 0301200308 0006091805 + 0512091520 0512091520 0512091520 0512091520 0512091520 ========== ========== ========== ========== ========== 0604092602 1919152412 1317000720 0813021801 0518180625 FDIZB SS0XL MQ+GT HMBRA ERRFY Dada una frase y una clave (ELIOT) primero se cambia a numero. 00 para blanco y 01 A… etc.
Seguridad Distintos esquemas: Sustitución: Con la clave de cifrado se determina cada carácter de texto cifrado que va a sustituir al carácter sin cifrar (como se vio en el ejemplo) Permutación: Los caracteres del texto plano son simplemente reorganizados en una secuencia diferente Sustitución + Permutación: combinar los dos puede proporcionar un alto grado de seguridad.
Seguridad CIFRADO DE DATOS Uno de estos algoritmos es el Data Encryption Standard (DES), desarrollado por IBM y adoptado como estándar federal de los Estados Unidos en 1977 usando Sustitución + Permutación
Seguridad Cifrado de clave pública El algoritmo de cifrado y la clave de cifrado están disponibles. Cualquier persona puede convertir texto plano en uno cifrado. La clave de descifrado se mantiene en secreto (los esquemas de clave pública involucran dos claves, una para el cifrado y otra para el descifrado)
Seguridad PROPIEDADES DE SQL El estándar actual de SQL soporta únicamente el control de acceso discrecional.
Seguridad CARACTERISTICAS: Mecanismo de vistas: Puede ser usado para ocultar datos sensibles ante usuarios no autorizados Subsistema de autorización: Permite a los usuarios con privilegios específicos otorgar privilegios a otros usuarios y posteriormente (de ser necesario) revocar esos privilegios
Seguridad CARACTERISTICAS: CREATE VIEW VL AS SELECT V.V#, V.PROVEEDOR, V.STATUS, V.CIUDAD FROM V WHERE V.CIUDAD = 'Londres' ; GRANT <lista de privilegios separados con comas> ON <objeto> TO <lista de IDs de usuario separados con comas> [WITH GRANT OPTION]; REVOKE <lista de privilegios separados con comas> ON <objeto> FROM <lista de IDs de usuario separados con comas> [RESTRICT/CASCADE];
Seguridad F I N