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