presentación de powerpoint · cristian h. lafuente. unidad 7: seguridad en bases de datos, tipos....
TRANSCRIPT
Cátedra de Bases de
DatosFacultad de Ciencias Exactas y Tecnología
Universidad Nacional de Tucumán
Ciclo Lectivo 2019
Ing. Cristian H. Lafuente
Unidad 7: Seguridad en bases de datos, Tipos. Amenazas. Supervivencias de
las Bases de datos. El rol del DBA. Protección de Accesos, Cuentas de usuarios
y auditorías de bases de datos, Mecanismos de seguridad y medidas para el
control: Control de accesos: Acceso Discrecional, obligatorio, basado en roles y
basado en roles multinivel. Control de flujo: Canales Ocultos. Cifrado de datos:
Clave Pública, Firmas Digitales.
Programa Analítico de la Materia
Ing. Cristian H. Lafuente
Seguridad en las Bases de Datos
Ing. Cristian H. Lafuente
Gene Spafford, profesor de ciencias informáticas en la Universidad Purdue
(Indiana, EEUU) y experto en seguridad de datos, dijo que:
“El único sistema seguro es aquel que está apagado y desconectado,
enterrado en un refugio de cemento, rodeado por gas venenoso y
custodiado por guardianes bien pagados y muy bien armados. Aún así, yo
no apostaría mi vida por él”
Seguridad:
Ing. Cristian H. Lafuente
Las bases de datos contienen información que pueden ser vitales
para una organización y las consecuencias de vulnerarlas ya sea
que el objetivo del ataque, obtener información o bien dejar
interrumpido el sistema de información pueden ser perjudiciales
económicamente o en forma drástica si la información a la que se
está accediendo es de confidencialidad relacionada a la
seguridad.
Seguridad: Introducción
Ing. Cristian H. Lafuente
La seguridad en las bases de datos es un tema muy amplio que comprende muchos
conceptos, entre los cuales se incluyen los siguientes:
• Aspectos legales y éticos en relación con el derecho de acceso a determinada
información.
• Temas de políticas a nivel gubernamental, institucional o de empresa en relación
con los tipos de información que no debería estar disponible públicamente.
• Temas relativos al sistema, como los niveles del sistema en los que se deberían
reforzar las distintas funciones de seguridad.
• La necesidad dentro de algunas organizaciones de identificar diferentes niveles de
seguridad y de clasificar según éstos a los datos y a los usuarios: por ejemplo, alto
secreto, secreto, confidencial y no clasificado.
Seguridad: Introducción
Ing. Cristian H. Lafuente
Seguridad: Amenazas
Ing. Cristian H. Lafuente
Seguridad: Amenazas a las bases de datos
• Pérdida de integridad: Está referida a la protección contra
las Modificaciones de la información por el atacante.
• Pérdida de disponibilidad: Tanto para un usuario como un
Programa se debe garantizar el acceso cuando se requiera.
• Pérdida de confidencialidad: Relacionada con la protección
al Acceso no autorizado a los datos.
Un DBMS además de estar preparado contra un ataque y de poder detectarlo
en caso de que suceda, debería ser capaz de realizar lo siguiente:
• Aislamiento: Eliminar el acceso del atacante y aislarlo o contener el
problema evitando que se extienda.
• Evaluación de los daños: Determinar el alcance del problema.
• Reconfiguración: Permitir que continúe el funcionamiento aún estando
dañado mientras se lleva a cabo la recuperación.
Seguridad: Supervivencia de las bases de datos
Ing. Cristian H. Lafuente
• Reparación: Tanto de los datos perdidos o corrompidos como de las
funciones dañadas del sistema.
• Tratamiento de los fallos: Identificar las debilidades que han sido
aprovechadas por el ataque.
Seguridad: Supervivencia de las bases de datos
Ing. Cristian H. Lafuente
El administrador de la base de datos es el responsable principal de la gestión de un
sistema de bases de datos por lo tanto es el encargado de:
Creación de cuentas: crea una nueva cuenta y contraseña para posibilitar el acceso al
DBMS a un usuario o grupo de usuarios
Concesión de privilegios: conceder determinados permisos a determinadas cuentas
Retirada de privilegios: permite al DBA retirar (cancelar) determinados permisos
concedidos previamente a determinadas cuentas
Asignación del nivel de seguridad: asignar cuentas de usuario al nivel de
clasificación de seguridad adecuado
Para esto dispone de una cuenta DBA, Cuenta de sistema o de superusuario.
Seguridad: El rol del DBA
Ing. Cristian H. Lafuente
• El DBA crea una cuenta de usuario con la contraseña respectiva para
los privilegios que corresponden a ese usuario.-
• El DBMS se encargará de validar al usuario que quiera tener acceso
de acuerdo a los permisos que le sean concedidos.
• El DBMS puede seguir el rastro de cada cuenta y almacenar en un
archivo denominado registro de sucesos del sistema, almacenando
todas las transacciones que ha tenido un determinado usuario.
Seguridad: Protección de Accesos, Cuentas de Usuarios y Auditorías de bases de datos
Ing. Cristian H. Lafuente
Usuario: Entidad que puede solicitar un recurso del servidor de BD.
En SQL Server los usuarios se organizan en una jerarquía:
• Windows
• SQL
• BD
Seguridad: SQL Server y MySQL
Ing. Cristian H. Lafuente
Existen 4 medidas principales que se utilizan para proporcionar
seguridad a los datos:
1) Control de Accesos
2) Control de inferencias
3) Control de Flujo
4) Cifrado de datos
Seguridad: Medidas de control
Ing. Cristian H. Lafuente
Discrecional: Basado en concesión, revocación de privilegios y propagación
de privilegios. El DBMS debe proporcionar acceso selectivo a cada relación de
la base de datos basándose en cuentas determinadas. La posesión de una
cuenta no significa necesariamente que el propietario de la cuenta esté
autorizado a toda la funcionalidad que permita el sistema.
• Nivel de cuenta: El DBA especifica los privilegios en particular que
posee cada cuenta, independientemente de las relaciones existentes en
la base de datos. (CREATE SCHEMA o CREATE TABLE, CREATE
VIEW; el privilegio sobre ALTER, DROP, MODIFY, SELECT)
• Nivel de relación (o tabla): El DBA puede controlar el privilegio de
Acceso a cada relación o vista individual en la base de datos.
Existe la concesión de privilegios. (Grant Option)
Seguridad: Control de accesos
Ing. Cristian H. Lafuente
Seguridad: Control de accesos –Discrecional (1)
Ing. Cristian H. Lafuente
Existen tres tipos de privilegios que se pueden conceder:
Privilegio de Selección: Sólo podrá obtener información.
(SELECT)
Privilegio de Modificación: Podrá modificar tuplas dentro de la
relación. (UPDATE, DELETE, e INSERT)
Privilegio de Referencia: Permite especificar restricciones de
integridad.
Seguridad: Control de accesos –Discrecional (2)
Ing. Cristian H. Lafuente
Comandos para concesión de privilegios:
CREATE SCHEMA EJEMPLO AUTHORIZATION A1;
Concede privilegios al usuario A1 para crear tablas en el esquema de nombre EJEMPLO
y permitiéndole además, conceder privilegios;
GRANT INSERT, DELETE ON EMPLEADO, DEPARTAMENTO TO A2;
Concede privilegios al usuario A2, desde la cuenta A1, para insertar o eliminar tuplas en
las relaciones empleado y Departamento pero no puede conceder privilegios.
Seguridad: Control de accesos - Discrecional (3)
Ing. Cristian H. Lafuente
Comandos para concesión de privilegios:
A1 desea permitir a la cuenta A3 obtener información de cualquiera de las dos tablas y también
poder propagar el privilegio SELECT a otras cuentas
GRANT SELECT ON EMPLEADO, DEPARTAMENTO TO A3 WITH GRANT OPTION;
Concede privilegios al usuario A3 ver datos de las tablas y a su vez este usuario puede
conceder privilegios a otras cuentas con la cláusula GRANT OPTION.
• GRANT SELECT ON EMPLEADO TO A4;
Observar que A4 no puede propagar el privilegio SELECT a otras cuentas ya que no se
le concedió la opción GRANT OPTION
Seguridad: Control de accesos - Discrecional (4)
Ing. Cristian H. Lafuente
Supongamos ahora que A1 decide revocar a A3 el privilegio SELECT sobre la relación
EMPLEADO. A1 podría ejecutar este comando:
REVOKE SELECT ON EMPLEADO FROM A3;
Elimina el privilegio tanto para A3 como para los Usuarios a los que les fueron
concedidos privilegios por A3, en este caso A4.
Seguridad: Control de accesos - Discrecional (5)
Ing. Cristian H. Lafuente
A continuación, supongamos que A1 desea devolver a A3 unos permisos limitados de
SELECT sobre la relación EMPLEADO y desea permitir a A3 que pueda propagar el
privilegio. La limitación consiste en poder obtener sólo los atributos Nombre, FechaNac
y Dirección y sólo para las tuplas con el atributo Dno igual a 5.
A1 podría entonces crear la siguiente vista:
CREATE VIEW A3EMPLEADO AS
SELECT Nombre, FechaNac, Dirección
FROM EMPLEADO
WHERE Dno = 5;
Seguridad: Control de accesos - Discrecional (6)
Ing. Cristian H. Lafuente
Una vez creada la vista, A1 podrá conceder a A3 el permiso para ejecutar SELECT
sobre la vista A3EMPLEADO según se muestra a continuación:
• GRANT SELECT ON A3EMPLEADO TO A3 WITH GRANT OPTION;
Por último, supongamos que A1 desea permitir a A4 que actualice sólo el atributo
Sueldo de EMPLEADO. A1 ejecutar el siguiente comando:
• GRANT UPDATE ON EMPLEADO (Sueldo) TO A4;
Seguridad: Control de acceso Obligatorio
Ing. Cristian H. Lafuente
El control de acceso obligatorio apunta a clasificar la información contenida
dentro de la base de datos en distintos niveles, por ejemplo:
Ultra Secreto (TS) – Secreto (S) – Confidencial (C)– No clasificado (U)
Siendo TS el nivel mas alto y U el mas bajo.
Supone una mayor seguridad con respecto a la discrecional
No lo implementa el DBMS
Sin embargo, existe una necesidad de seguridad a varios niveles en las
aplicaciones gubernamentales, militares y en las de los servicios de inteligencia,
así como en muchas aplicaciones industriales y corporativas.
Seguridad: Control de flujo
Ing. Cristian H. Lafuente
El control de flujo regula distribución o flujo de información entre objetos
accesibles. Cuando un programa lee valores en X y escribe valores en Y.
Una política de flujo especifica los canales a través de los cuales se
permite que se mueva la información.
Una política de flujo sencilla especifica dos clases de información
Confidencial (C ) y No confidencial (N) permitiendo todos los flujos
excepto aquellos que fluyen de C a N.
Canales Ocultos permiten el flujo de la información entre objetos de
mayor privilegio a otro de menor privilegio.
Seguridad: Cifrado de Datos (1)
Ing. Cristian H. Lafuente
• El cifrado se utiliza para el caso en que el atacante tenga acceso a la
lectura de los datos, estos vayan desvirtuados de tal forma que el
atacante no pueda descifrarlo.
• El cifrado consiste en aplicar un algoritmo a los datos utilizando una
clave de cifrado predefinida. Los datos resultantes tienen que ser
descifrados mediante una clave de descifrado para recuperar los datos
originales.
Seguridad: Cifrado de Datos (2) –Estándares de cifrado
Ing. Cristian H. Lafuente
Estándar de cifrado de datos (DES)
• Sistema desarrollado por el gobierno de Estados Unidos para su uso por el público en
general.
• Ampliamente aceptado como estándar dentro y fuera de EE.UU.
• Proporciona cifrado extremo a extremo en el canal existente entre el emisor A y el
receptor B.
• Es una cuidadosa y compleja combinación de dos de los bloques fundamentales
usados en la construcción del cifrado: la sustitución y la permutación (transposición).
• La fuerza del algoritmo deriva de la aplicación repetida de estas dos técnicas durante
un total de 16 ciclos.
• El texto plano (la forma original del mensaje) se cifra en bloques de 64 bits. Aunque
la clave tiene una longitud de 64 bits, en realidad puede ser cualquier número de 56
bits.
Seguridad: Cifrado de Datos (3) –Estándares de cifrado
Ing. Cristian H. Lafuente
Estándar de cifrado de datos (AES)
• Tras cuestionar la validez de DES, el Instituto Nacional de Estándares (NIST,
National Institute of Standards) introdujo el algoritmo AES (Advanced Encryption
Standards). También conocido como Algoritmo de Rijndael.
• Este algoritmo tiene un tamaño de bloque de 128 bits, a diferencia de los 56 bits del
bloque de DES, y puede utilizar claves de 128, 192 o 256 bits, a diferencia de los 56
bits de la clave de DES.
• AES introduce más claves posibles, a diferencia de DES y, por tanto, el tiempo
necesario para romperlo es mayor.
Seguridad: Cifrado de Datos (4)
Ing. Cristian H. Lafuente
Cifrado con clave pública: se basan en funciones matemáticas en lugar de
patrones de bits
• Cada Usuario genera un par de claves a utilizar en el cifrado y descifrado del
mensaje
• Cada Usuario coloca una clave en algún lugar público, la otra se mantendrá
en privado
• El emisor cifra el mensaje con la clave pública del receptor
• El receptor descifra el mensaje con su clave privada
Seguridad: Cifrado de Datos (5)
Ing. Cristian H. Lafuente
• Ana redacta un mensaje• Ana cifra el mensaje con la clave pública de David• Ana envía el mensaje cifrado a David a través de internet, ya sea por correo
electrónico, mensajería instantánea o cualquier otro medio• David recibe el mensaje cifrado y lo descifra con su clave privada• David ya puede leer el mensaje original que le mandó Ana
Seguridad: Cifrado de Datos (6)
Ing. Cristian H. Lafuente
Firmas Digitales: Sirve para autenticar el usuario que generó el
mensaje, utilizados por ejemplo en el comercio electrónico, deben ser:
• Únicas: Las firmas deben poder ser generadas solamente por el
firmante y por lo tanto infalsificable. Por tanto la firma debe
depender del firmante.
• Infalsificables: Para falsificar una firma digital el atacante tiene que
resolver problemas matemáticos de una complejidad muy elevada, es
decir, las firmas han de ser computacionalmente seguras.
Seguridad: Cifrado de Datos (7)
Ing. Cristian H. Lafuente
• Verificables: Las firmas deben ser fácilmente verificables por los
receptores de las mismas y, si ello es necesario, también por los
jueces o autoridades competentes.
• Innegables: El firmante no debe ser capaz de negar su propia firma.
• Viables: Las firmas han de ser fáciles de generar por parte del
firmante.
Las firmas deben ser diferentes en cada uso. Esto se puede conseguir
haciendo que cada firma digital se genere en función del mensaje que se
está firmando, junto con una marca de tiempo.
Seguridad: Cifrado de Datos (8)
Ing. Cristian H. Lafuente
• David redacta un mensaje• David firma digitalmente el mensaje con su clave privada• David envía el mensaje firmado digitalmente a Ana a través de internet, ya sea por
correo electrónico, mensajería instantánea o cualquier otro medio• Ana recibe el mensaje firmado digitalmente y comprueba su autenticidad usando
la clave pública de David• Ana ya puede leer el mensaje con total seguridad de que ha sido David el
remitente
Seguridad: Conclusiones
Ing. Cristian H. Lafuente
“Las organizaciones gastan millones de dólares en firewalls y
dispositivos de seguridad, pero tiran el dinero porque ninguna de
estas medidas cubre el eslabón más débil de la cadena de seguridad:
la gente que usa y administra los ordenadores”
Kevin Mitnick
"Las contraseñas son como la ropa interior. No puedes dejar que
nadie la vea, debes cambiarla regularmente y no debes compartirla
con extraños“
Chris Pirillo
BIBLIOGRAFIA
Tecnología y Diseño de Bases de Datos / Mario Piattini , Esperanza Calero, Belen Vela / Edit Alfaomega/ 2010 Ed.
Fundamentos de bases de datos / Abraham Silberschatz, Henry F. Korth/y/ S. Sudarshan.—(Tra. FernándoSáenz Pérez, Antonio García Cordero /y/ Jesús Correas Fernández.-- Rev. Tca. Luis Grau Fernández). McGraw Hill. Madrid /c.2008/5a. Edic.
Fundamentos de sistemas de bases de datos / Ramez Elmasri/y/ Shamkant B. Navathe.—(Tra. Verónica Canivell Castillo, Beatriz Galán Espiga /y/ Gloria ZaballaPérez.--Rev. Tca. Alfredo GoñiSarriguren , Arturo Jaime Elizondo /y/ Tomás A. Pérez Fernández) Pearson Educación. Madrid /c.2002/3a. ed.
Introducción al SQL para Usuarios y Programadores / Cornelio et al / THOMSON / 2003 / 2da. Edic
Ing. Cristian H. Lafuente
https://catedras.facet.unt.edu.ar/bd/