Download Seguridad en Base de Datos

Document related concepts

Microsoft SQL Server wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

SAP HANA wikipedia , lookup

Base de datos wikipedia , lookup

Base de datos relacional wikipedia , lookup

Transcript
Seguridad en Base de Datos
Facultad Politécnica – UNA
Maestría en TICs – 2015
Énfasis Auditoría y Seguridad de la Información
Seguridad en aplicaciones y base de datos
Cristian Cappo ([email protected])
NIDTEC - Núcleo de Investigación y Desarrollo Tecnológico - FPUNA
Contenido
 Conceptos básicos sobre BD
 Vulnerabilidades en base de datos
2
Conceptos básicos
 Base de datos (BD) : colección estructurada de datos
utilizada por una o mas aplicaciones
 Contiene relaciones entre los datos y los grupos de
datos
 A veces es importante asegurar datos sensibles
 Sistema de Administración de Base de datos
(DBMS)
 Conjunto de programas para construir y mantener una base de
datos
 Ofrece facilidades de consulta para múltiples usuarios y
aplicaciones
 Lenguaje de consulta
 Provee una interface uniforme a la base de datos
3
Niveles de abstracción de una base de
datos
4
Arquitectura de un DBMS
5
DBMS relacionales (RDBMS)
 Propuesto por E.F. Codd en 1970.
 Datos estructurados como tablas de filas y
columnas (bidimensional)
 Cada columna posee un tipo particular
 Cada fila contiene un valor específico de cada
columna.
 Idealmente una columna donde todos los valores son
únicos, forma un identificador/clave de la fila
 Permite crear múltiples tablas enlazadas por un
identificador presente en otras tablas
 Usa un lenguaje de consulta relacional para
acceder a la base de datos
6
Ejemplo
7
Elementos de un RDBMS
 Relación/tabla
Clave primaria
 Tupla/registro/fila
• Identifica en forma única a una fila
 Atributo/columna/campo • Puede ser uno o más nombres de
columnas
Clave foránea
• Enlaza una tabla a atributos de
otra
Vista / Tabla virtual
• Resulta de una consulta que
retorna filas y columnas
seleccionadas de una o más tablas
8
Ejemplo de elementos de un RDBMS
9
SQL (Structured Query Language)
 Desarrollado originalmente por IBM en los
mediados de los 70s.
 Lenguaje estandarizado que define, manipula y
consulta datos en un RDBMS
 Estandar ANSI/ISO (ISO/IEC 9075-14:2005)
USADO PARA
• Crear tablas
• Insertar y borrar datos
• Crear vistas
• Consultar datos
• Accesos
10
Database security
 Grado en que los datos son protegidos de
falsificaciones o manipulaciones no autorizadas
 Comprende conceptos asociados a sistemas de
información y seguridad de la información
11
Control de acceso
 La recomendación ITU-T X.800 define el acceso
de control como sigue:
 La prevención de uso no autorizado de un recurso,
incluyendo la prevención del uso de recurso de una
forma no autorizada.
 RFC 2828 define la seguridad computacional
como
 Medidas que implementan y aseguran los servicios de
seguridad en un sistema de cómputo,
particularmente aquellos que aseguran el servicio de
control de acceso
12
Control de acceso en contexto
13
Políticas de control de acceso
14
Políticas de control de acceso(1)
 Discrecional
 Cada entidad puede dar acceso a otra entidad
 Proveído a veces usando una matriz de acceso
 Una dimensión consiste en los sujetos identificados
 La otra dimensión son los objetos a los que pueden acceder
 Cada entrada de la matriz indica un derecho de
acceso de un sujeto particular a un objeto particular.
 Ejemplos: Unix, ACLs, Base de datos, etc.
15
Políticas de control de acceso(2)
 Mandatorio
 Control basado en comparación de etiquetas de
seguridad (que indican la sensibilidad o criticidad de
un recurso del sistema) con la acreditación de
seguridad.
 El término de mandatorio se refiere a que una
entidad con acreditación de seguridad sobre un
recurso no puede dar acreditación de acceso a otra
entidad sobre ese recurso.
 Ejemplo de etiquetas
16
Control de acceso
 Basado en nombre
 Modelo Discrecional (es el modelo utilizado
usualmente por todas la DBMS)
 No impone ningún control acerca de cómo la información es
propagada y utilizada una vez que ésta ha sido accedida por
los sujetos autorizados
 Basado en contenido
 Modelo Mandatorio
 Basado en la clasificación de la información (iniciada por los
militares)
17
Control de acceso a base de datos
El sistema de control de
acceso determina
Si el usuario ha accedido a toda la base de
datos o solo a una porción de ella
Que derechos tiene el usuario (crear,
insertar, borrar, modificar, leer, escribir,
etc)
Soporta un rango de
políticas administrativas
Administración centralizada
Un número de usuarios privilegiados pueden dar
y revocar derechos de acceso
Administración del dueño
El creador de una tabla puede dar y revocar
derechos
Administración descentralizada
El dueño de una tabla puede otorgar derechos
de autorización a otros usuarios, permitiendo a
éstos dar o revocar derechos sobre la misma 18
Control de acceso con SQL
 GRANT
grant privilege_list on resource
to user_list
 REVOQUE
revoke privilege_list on resource
from user_list
19
Grant - ejemplo
 Suponga que Luis necesita acceso a toda la
tabla (pero no puede hacer cambios)
grant select on empleado
to luis;
 Suponga que Carol es otra empleada, pero solo
puede ver la información pública
grant select(nombre,mail) on empleado
to carol;
 No implementado en PostgreSQL
 No implementado para select en Oracle
 Implementado en MySQL
20
Autorización/Revocación en cascada
21
Reglas de revocación
 No estándar
 Muchas implementaciones siguen la convención
“Cuando un usuario revoca un derecho,
cualquier derecho posterior también es
revocado”
22
RBAC (Control de acceso basado en roles)
 Originalmente del modelo de System R (1974)
 Facilita la administración de permisos a través
de roles.
 Una base de datos con RBAC debe proveer:
 Crear y borrar roles
 Definir permisos para un rol
 Asignar/cancelar usuarios a un rol
• Dueño de la aplicación: Usuario que es dueño de objetos de la DB como parte de una
aplicación
• Usuario final : Opera la base de datos via una aplicación particular y no es dueño de ningún
objeto de la DB.
• Administrador: Usuario que tiene la responsabilidad de administrar toda o parte de una DB
23
Roles – esquema básico
24
Ejemplo de roles (MS SQL Server)
25
Roles - Modelos
Sandhu, R, et al. “Role-Based Access Control Models”. Computer. Vol 29. Num 2. 1996
26
RBAC0
 Usuarios: individuos que acceden al sistema
 Rol: función dentro de la organización
 Permiso: aprobación de un modo de acceso particular a un
objeto
 Sesión: un mapeo entre un usuario y un subconjunto de
roles
27
RBAC1 - Jerarquía de roles
 Refleja la estructura jerárquica de la
organización
28
RBAC2 - Restricciones
 Se puede determinar políticas de alto nivel
 Ejemplos
 Exclusividad de roles
 Usuario solo a un rol, permisos solo a un rol
 Usuarios con diferentes roles no comparten permisos
 Cardinalidad
 Numero máximo de usuarios por rol, roles a usuario,
permisos a roles
 Prerrequisitos
 Roles prerrequisitos
 Atender que RBAC2 no implica jerarquía
29
RBAC3 - Consolidado
30
Ejemplo del modelo MAC para una base de
datos (multinivel)
Clasificado por tabla
Clasificado por tupla
Clasificado por columna
Clasificado por elemento
31
Vulnerabilidades en base de datos
 De acuerdo al reporte de Verizon sobre
violación/descubrimiento de datos del año 2014
el 66% corresponde a base de datos y el resto a
datos en tránsito
http://www.verizonenterprise.com/DBIR/2014/reports/rp_Verizon-DBIR2014_en_xg.pdf
 En el 2012 la OSF (Open Security Foundation)
reveló que 242,6 millones de registros fueron
potencialmente comprometidos.
32
Top 10 amenazas de seguridad en DB
(Verizon)
33
Estrategias de Defensas (1)
34
Estrategias de Defensas (2)
35
Estrategias de Defensas (3)
36
Brechas de seguridad en BD
 Observación de datos no autorizados
 Modificación de datos incorrecto
 Disponibilidad de datos
37
Requerimientos en la seguridad de una
BD
 Confidencialidad
 Para evitar descubierta no autorizada de datos
 Mecanismo: control de acceso, encriptación
 Integridad
 Prevención de modificación impropia o no autorizada de datos
 Mecanismo: control de acceso y restricciones de integridad semántica
 Disponibilidad
 Prevención y recuperación desde errores de hardware o sw y
desde la denegación maliciosa de acceso a los datos.
 Mecanismo: recovery y control de concurrencia
 Privacidad:
 Se implementa en parte con confidencialidad aunque debe
proveerse mecanismos adicionales como el de obtener y
registrar el consentimiento de usuarios
38
Seguridad de la BD – estadística
 BD estadística: información recuperada usando
queries estadísticos sobre atributos de una tabla
 Funciones de agregación: count, max, min, avg,
sum
 La BD contiene datos que son individualmente
sensibles, el acceso directo no es permitido
 Las queries estadísticas son permitidas, pero
pueden acceder a datos individuales
 Por tanto es posible inferir información, así el
acceso individual no es permitido
39
Tipos de descubierta de información
 Datos exactos
 Mostrar los estudiantes con becas
 Resultado negativo
 Observar el conteo por la cantidad de becas que
existe y si no es cero alguien esta becado
 Resultados de rangos
 Conocer los valores altos y bajos
 Valores probables
 Conocer que 100 personas son de ingeniería, viven
en San Lorenzo y 40 reciben ayuda financiera.
40
Inferencia
 Usar datos no sensibles para deducir datos
sensibles. Es el proceso de realizar consultas y
deducir datos desde respuestas legítimas
recibidas.
 A través de :
 Consultas oscuras
 Combinación de resultados estadísticos
 Uso de conocimiento externo
 Por ejemplo base de datos de información de auditoría
 Canal de inferencia
 Es el camino de transferencia por el cual la
información no autorizada es obtenida
41
Inferencia
42
Ejemplo de inferencia
43
Ejemplo de inferencia(2)
 Un usuario quiere conocer el salario de Goldberg y sabe
que es de sexo femenino con 11 dependientes. El no
puede ver directamente los datos.
select avg(salary) as avg_salary
from employees
where gender = ‘F’ and dependents = 11;
44
Contramedidas
 Detectar en el diseño de la base de datos
 Alterar la estructura o cambiar el control de acceso
 En tiempo de consulta
 Monitorear y alterar/rechazar la consulta
 El algoritmo de detección de inferencia
 No es sencillo
 Es un problema aun de investigación
45
Puntos de aseguramiento de un sistema
de base de datos
46
Consideraciones finales para protección
de base de datos (1)
 Control de acceso
 Encriptación de datos
 En el transporte sobre todo). En la base de datos
requiere especial atención pero es recomendable a
datos sensibles
47
Esquema de encriptación posible en una
base de datos
48
Consideraciones finales para protección
de base de datos (2)
 Auditoría sobre datos y cambios sin afectar el
performance
 WAF
 Asegurar que solo los usuarios autorizados
realicen actividades en tiempos autorizados
 Auditoría sobre configuraciones
 Monitoreo de acceso a datos sensibles
49
Conclusión
 Asegurar un sistema de base de datos es más
que asegurar la base de datos, necesitamos
 Base de datos segura
 DBMS seguro
 Aplicaciones seguras / Desarrollo de aplicaciones
seguras
 S.O. seguro en relación al sistema de base de datos
 Web server seguro en relación al sistema de base de
datos
 Red segura en relación al sistema de base de datos
50
Desafíos en seguridad de BD
 Calidad de datos y completitud
 Se necesitan técnicas para evaluar y validar la calidad
de los datos
 Derechos de propiedad intelectual
 Control de acceso y privacidad para usuarios
móviles
 Supervivencia de base de datos
 Se refiere a la habilidad que tiene un sistema de base
de datos a continuar su funcionamiento, aunque sea
reducido, luego de eventos de interrupción (sistemas
tolerantes a intrusiones)
51
Bibliografía/Referencias
 Bertino E. y Sandhu R. Database security – concepts,
approaches, and challenges. IEEE Transactions on
dependable and secure computing. Vol. 2. Nro 1. 2005.
 Al-Sayd and D. Aldlaeen. Database Security Threats: a
survey study. CSIT 2013. IEEE.
 W. Stalling & L. Brown. Computer Security. Principles
and Practices. 2nd Edition. Pearson Educ. Inc. 2012
(Chapters 4,5,13).
 Top ten Database security threats. The most significant
risks and how to mitigate them. Imperva. 2013.
 M. Coffin. Database Security: What Students Need to
Know. Journal of Information Technology Education:
innovations in Practice. Vol 9. 2010.
52
¡Gracias!
¿Preguntas?
53