• No se han encontrado resultados

Session: Seguridad en los datos con LBAC (Label Based Access Control) Name: Ana Isabel Rivera Company: IBM. 22/Noviembre/2011 Platform:DB2 LUW

N/A
N/A
Protected

Academic year: 2021

Share "Session: Seguridad en los datos con LBAC (Label Based Access Control) Name: Ana Isabel Rivera Company: IBM. 22/Noviembre/2011 Platform:DB2 LUW"

Copied!
57
0
0

Texto completo

(1)

Name: Ana Isabel Rivera Company: IBM

Session:

Seguridad en los datos con LBAC

(Label Based Access Control)

(2)

Agenda

• Introducción: La seguridad de la información.

• Amenazas posibles/ Acciones para evitarlas.

• Buenas prácticas en la seguridad del acceso a las tablas.

• Funcionalidades de DB2 en seguridad.

• Database Roles.

• LBAC:

• Introducción

• Conceptos

• Ejemplos.

(3)

Introducción:

La seguridad de la información.

• La seguridad de los datos es un área crítica debido a:

• Aumento de las violaciones de seguridad en las empresas.

• Aumento de requerimientos de ley sobre la seguridad de los datos.

• Afecta a múltiples niveles:

• Seguridad física.

• Seguridad de red.

• Seguridad del servidor.

• Seguridad de los datos almacenados.

• Controles de negocio y gestión de identidades.

(4)

Introducción:

La seguridad de la información no es trivial

1. Clasificación de los datos: Entender y clasificar la información que nuestros sistemas almacenan.

2. Clasificación de usuarios: Quién debe acceder a qué.

3. Identificación de amenazas posibles: Conocer a qué nos enfrentamos

4. Acciones a implementar:

Conocer la manera de evitar que las amenazas sean

ataques reales a nuestra seguridad e implementar las

(5)

Introducción:

La seguridad de la información no es trivial

5. Pruebas: Validar las acciones y mecanismos de seguridad implementados.

6. Auditoría: Detección de los accesos no autorizados.

7. Mantenimiento.

(6)

La seguridad de la información.

Amenazas posibles.

Información de diagnóstico

Logs de transacciones (activos y archivados) Backups

Datos en tránsito

Acceso a los datos por administrador del SO Acceso a los datos por parte del DBA

ID Común de usuario

Conexiones no autorizadas

Amenaza

(7)

La seguridad de la información.

Amenazas posibles / Acciones

Información de diagnóstico Extracciones de datos

Logs de transacciones (activos y archivados) Backups

Datos en tránsito

Acceso a los datos por administrador del SO Acceso a los datos por parte del DBA

ID Común de usuario

Conexiones no autorizadas

Amenaza

Control de acceso SO.

IBM DEE Encriptación.

Control de acceso SO.

IBM DEE

Encriptación de backup: IBM DEE Encriptación SSL

IBM Database Encryption Expert (IBM DEE) Separación de roles en DB2: SECADM

Trusted Context

Proceso de autenticación + autorización de DB2

Acción

(8)

La seguridad de la información.

Amenazas posibles.

Acceso a las tablas

Amenaza

Buenas prácticas en el acceso a las tablas

Acción

(9)

Buenas prácticas en el acceso a tablas

• Clasificación de los datos de las tablas:

• Datos sensibles

• Datos no-sensibles.

• Validación de los privilegios de acceso:

• Revocar (REVOKE) todos los privilegios no estrictamente necesarios.

• Asignar los privilegios a roles, no directamente a usuarios.

• Auditar los accesos a las tablas con información sensible

• Implementar LBAC

(10)

La seguridad de la información.

Separación de Roles en el acceso a la BD

(11)

Medidas para mejorar la seguridad en DB2.

• Autenticación

• Autorización

• Database Roles

• Trusted Contexts

• Label-Based Access Control

• Auditoría

• Encriptación.

• Static SQL / pureQuery

(12)

Database Roles

• ¿Qué son?

Objeto de base de datos que agrupa uno o más privilegios o

autorizaciones de base de datos y se asigna a través de GRANT a:

Usuarios

Grupos

PUBLIC

Otros Roles

• ¿Qué puede asociarse a un Role?

• Etiquetas de seguridad LBAC

• Todos los privilegios de Base de Datos

• Todas las autorizaciones de Base de Datos

(13)

Database Roles

• Ventajas.

• Simplificar (y mejorar) la administración y gestión de los privilegios y autorizaciones en la base de datos.

• ¿Quién gestiona el acceso a un Role?

• La administración se realiza a través de SECADM

• Puede delegarse en otros WITH ADMIN en la sentencia GRANT

(14)

Database Roles. Ejemplos

• Usuario SECDAM :

CREATE ROLE CALIDAD

GRANT SELECT ON TABLE CLIENTES TO ROLE CALIDAD

GRANT SELECT ON TABLE PRODUCTOS TO ROLE CALIDAD

GRANT SELECT, INSERT ON TABLE ESTADOS TO ROLE CALIDAD

GRANT SELECT, INSERT ON TABLE INCIDENCIAS TO ROLE CALIDAD

GRANT ROLE CALIDAD TO USER PERS001

GRANT ROLE CALIDAD TO USER PERS002

REVOKE ROLE CALIDAD FROM USER PERS001

(15)

LBAC.

LBAC complementa el control de seguridad tradicional de DB2 : DAC (Discretionary Access Control). Con DAC, el acceso a los datos

restringidos se basa en la autorización sobre el objeto.

LBAC es la implementación de MAC (Mandatory Access Control),

permitiendo el acceso a la información en función de la sensibilidad de los datos y la autorización del usuario.

Los datos protegidos se asignan a una etiqueta de seguridad: security label.

SECADM crea y mantiene las etiquetas de seguridad.

Los usuarios tendrán acceso a los datos protegidos a través de las etiquetas de seguridad a las que tengan acceso.

LBAC permite controlar el acceso a nivel de fila columna o una combinación de ambos.

• Con LBAC + DAC cuando se produce un intento de acceso a datos protegidos se activan dos niveles de control de acceso:

DAC: A nivel de objeto: ¿Tiene el usuario privilegios para realizar la operación solicitada?

LBAC: Fila/Columna/Ambas.

(16)

LBAC.

¿Qué debo saber de mi base de datos?

• La implementación de LBAC debe realizarse por SECADM.

• ¿Qué debemos saber antes de comenzar a implementar LBAC?

Clasificación de los datos:

Ejemplo: Top Secret/Secret/Clasificados/No Clasificados

Modelo de datos. Tablas donde reside la información sensible.

Usuarios que pueden acceder a la información sensible y tipo de acceso.

(17)

LBAC.

Conceptos

• Security label components.

• Security Policy.

• Security Label.

• Tablas protegidas

(18)

LBAC. Conceptos.

Security Label Component

• Criterios bajo los que se va a realizar el control de acceso. Tres tipos.

SET

Conjunto no ordenado.

ARRAY

Conjunto ordenado jerárquicamente

TREE

Modelo más complejo de niveles y jerarquías

(19)

LBAC. Conceptos.

Security Label Component

• SENTENCIAS DE CREACIÓN:

(20)

LBAC. Conceptos.

Security Policy

Security policy : Determinan exactamente cómo va a protegerse una tabla a través de LBAC.

• Queda definida a través de:

• Security Label components que se van a utilizar.

• Reglas de acceso. Reglas predefinidas en DB2: DB2LBACRULES

• Excepciones.

• Una tabla solo puede tener una security policy; pero una security policy puede asignarse a varias tablas.

• Definida por SECADM

(21)

LBAC. Conceptos.

Security Policy

• Sentencia:

(22)

LBAC. Conceptos.

Security Label

Security label : Describe un conjunto de criterios de seguridad que se utilizan para proteger el acceso y/o modificación de datos sensibles.

Security label consiste en:

• Nombre del security label

Security policy de la que forma parte.

• Valores de uno o más de los security label components incluidos en la security policy.

• Un security label solo puede formar parte de una security

policy.

(23)

LBAC. Conceptos.

Security Label

Sentencia.

• Definida por SECADM

(24)

LBAC. Conceptos.

Security Label

• Asignación de security label a los usuarios autorizados:

• Es necesario proporcionar acceso a los security label a través de la sentencia GRANT a los usuarios autorizados a acceder a los datos protegidos, indicando cuando se permite acceso de lectura, acceso de escritura o acceso completo.

(25)

LBAC. Proteger tablas.

• Los elementos de LBAC:

• Security Label Components,

• Security Policies y

• Security Labels

se utilizan para proteger las tablas que almacenan datos sensibles.

• La protección de tablas se puede realizar:

• Protección a nivel de fila

• Protección a nivel de columna

• Ambos.

(26)

LBAC. Proteger tablas.

PROCESO

1. Un usuario trata de acceder a datos protegidos.

2. Credenciales LBAC del usuario (security label a los que tiene acceso) son comparadas con los security label asignados a la security policy que posee la tabla.

1. Protección a nivel de fila: Solo se mostrarán las filas para las que el usuario tiene credenciales adecuadas, y en caso de no tener ninguna no se recuperará ninguna fila.

2. Protección a nivel de columna: Si no se poseen credenciales para las columnas a las que se intenta acceder se muestra un error:

(27)

LBAC. Ejemplos.

Protección a nivel de fila

Conocimiento de los requerimientos (Tabla SALES)

Datos organizativos (usuarios). Requerimientos de seguridad

• Ejecutivos : Pueden ver, pero no actualizar todos los

registros de la tabla.

• Directores regionales: Pueden ver y actualizar los registros de los vendedores de su área.

• Vendedores: Pueden ver y actualizar los registros

relativos a sus ventas.

(28)

LBAC. Ejemplos.

Protección a nivel de fila

• Security label components.

• Security Policy.

• Security Label.

• Tablas protegidas

(29)

LBAC. Ejemplos.

Protección a nivel de fila

CREATE SECURITY LABEL COMPONENT sec_comp TREE (‘EXECS’ROOT,

‘N_MGR’UNDER ‘EXECS’,

‘E_MGR’UNDER ‘EXECS’,

‘S_MGR’UNDER ‘EXECS’,

‘W_MGR’UNDER ‘EXECS’,

‘N_SREP’UNDER ‘N_MGR’,

‘E_SREP’UNDER ‘E_MGR’,

‘S_SREP’UNDER ‘S_MGR’,

‘W_SREP’UNDER ‘W_MGR’)

Comando realizado por SECADM

(30)

LBAC. Ejemplos.

Protección a nivel de fila

• Security label components.

• Security Policy.

• Security Label.

• Tablas protegidas

(31)

LBAC. Ejemplos.

Protección a nivel de fila

CREATE SECURITY POLICY sec_policy COMPONENTS sec_comp

WITH DB2LBACRULES

Comando realizado por SECADM

(32)

LBAC. Ejemplos.

Protección a nivel de fila

• Security label components.

• Security Policy.

• Security Label.

• Tablas protegidas

(33)

LBAC. Ejemplos.

Protección a nivel de fila

CREATE SECURITY LABEL sec_policy.execs COMPONENT sec_comp 'EXECS‘;

CREATE SECURITY LABEL sec_policy.n_mgr COMPONENT sec_comp 'N_MGR‘;

CREATE SECURITY LABEL sec_policy.e_mgr COMPONENT sec_comp 'E_MGR‘;

CREATE SECURITY LABEL sec_policy.s_mgr COMPONENT sec_comp 'S_MGR‘;

CREATE SECURITY LABEL sec_policy.w_mgr COMPONENT sec_comp 'W_MGR‘;

CREATE SECURITY LABEL sec_policy.n_srep COMPONENT sec_comp ‘N_SREP‘;

CREATE SECURITY LABEL sec_policy.e_srep COMPONENT sec_comp ‘E_SREP‘;

CREATE SECURITY LABEL sec_policy.s_srep COMPONENT sec_comp ‘S_SREP‘;

CREATE SECURITY LABEL sec_policy.w_srep COMPONENT sec_comp ‘W_SREP‘;

(34)

LBAC. Ejemplos.

Protección a nivel de fila

CREATE SECURITY LABEL sec_policy.execs COMPONENT sec_comp 'EXECS‘;

CREATE SECURITY LABEL sec_policy.n_mgr COMPONENT sec_comp 'N_MGR‘;

CREATE SECURITY LABEL sec_policy.e_mgr COMPONENT sec_comp 'E_MGR‘;

CREATE SECURITY LABEL sec_policy.s_mgr COMPONENT sec_comp 'S_MGR‘;

CREATE SECURITY LABEL sec_policy.w_mgr COMPONENT sec_comp 'W_MGR‘;

CREATE SECURITY LABEL sec_policy.n_srep COMPONENT sec_comp ‘N_SREP‘;

CREATE SECURITY LABEL sec_policy.e_srep COMPONENT sec_comp ‘E_SREP‘;

CREATE SECURITY LABEL sec_policy.s_srep

GRANT SECURITY LABEL sec_policy.execs TO USER president

FOR READ ACCESS;

GRANT SECURITY LABEL sec_policy.n_mgr TO USER n_salesmgr

FOR ALL ACCESS;

(East, South, and West Sales Manager)

GRANT SECURITY LABEL sec_policy.n_srep TO USER n_salesrep

FOR ALL ACCESS;

(35)

LBAC. Ejemplos.

Protección a nivel de fila

• Security label components.

• Security Policy.

• Security Label.

• Tablas protegidas.

(36)

LBAC. Ejemplos.

Protección a nivel de fila

CREATE TABLE corp.sales (

sales_rec_id INTEGER NOT NULL, sales_date DATE WITH DEFAULT, sales_rep INTEGER,

region VARCHAR(15),

sales_amt DECIMAL(12,2), sec_label DB2SECURITYLABEL) SECURITY POLICY sec_policy

ALTER TABLE corp.sales

ADD COLUMN sec_label DB2SECURITYLABEL ADD SECURITY POLICY sec_policy

(37)

LBAC. Ejemplos.

Protección a nivel de fila

(38)

LBAC. Ejemplos.

Protección a nivel de columna

Conocimiento de los requerimientos (Tabla EMPLOYEES)

Datos organizativos (usuarios). Requerimientos de seguridad

Nombre, género, departamento y teléfono: Información accesible a todos los empleados.

Salario, información de bonus (además de los valores

anteriores): Información accesible solo por directores y Recursos Humanos.

Número de la seguridad social:

Información accesible solo para

RECURSOS HUMANOS

DIRECTORES

RESTO DE EMPLEADOS

(39)

LBAC. Ejemplos.

Protección a nivel de columna

• Security label components.

• Security Policy.

• Security Label.

• Tablas protegidas

(40)

LBAC. Ejemplos.

Protección a nivel de columna

CREATE SECURITY LABEL COMPONENT sec_comp ARRAY [‘CONFIDENTIAL’, ‘CLASSIFIED’,

‘UNCLASSIFIED’]

Comando realizado por SECADM

(41)

LBAC. Ejemplos.

Protección a nivel de columna

• Security label components.

• Security Policy.

• Security Label.

• Tablas protegidas

(42)

LBAC. Ejemplos.

Protección a nivel de columna

CREATE SECURITY POLICY sec_policy COMPONENTS sec_comp

WITH DB2LBACRULES

Comando realizado por SECADM

(43)

LBAC. Ejemplos.

Protección a nivel de columna

• Security label components.

• Security Policy.

• Security Label.

• Tablas protegidas

(44)

LBAC. Ejemplos.

Protección a nivel de columna

CREATE SECURITY LABEL sec_policy.confidential

COMPONENT sec_comp 'CONFIDENTIAL‘

CREATE SECURITY LABEL sec_policy.classified

COMPONENT sec_comp 'CLASSIFIED‘

CREATE SECURITY LABEL sec_policy.unclassified

COMPONENT sec_comp 'UNCLASSIFIED'

(45)

LBAC. Ejemplos.

Protección a nivel de columna

CREATE SECURITY LABEL sec_policy.confidential

COMPONENT sec_comp 'CONFIDENTIAL‘

CREATE SECURITY LABEL sec_policy.classified

COMPONENT sec_comp 'CLASSIFIED‘

CREATE SECURITY LABEL sec_policy.unclassified

COMPONENT sec_comp 'UNCLASSIFIED'

GRANT SECURITY LABEL

sec_policy.confidential TO ROLE hrstaff

FOR ALL ACCESS;

GRANT SECURITY LABEL

sec_policy.classified TO ROLE manager

FOR READ ACCESS;

GRANT SECURITY LABEL

sec_policy.unclassified TO ROLE worker

FOR READ ACCESS;

(46)

LBAC. Ejemplos.

Protección a nivel de columna

• Security label components.

• Security Policy.

• Security Label.

• Tablas protegidas.

(47)

LBAC. Ejemplos.

Protección a nivel de columna

CREATE TABLE hr.employees (

name VARCHAR(40) SECURED WITH unclassified, gender CHAR(1) SECURED WITH unclassified, dept_id CHAR(5) SECURED WITH unclassified, phone CHAR(14) SECURED WITH unclassified, ssn CHAR(12) SECURED WITH confidential,

salary DECIMAL(12,2) SECURED WITH classified, bonus DECIMAL(12,2) SECURED WITH classified) SECURITY POLICY sec_policy

ALTER TABLE hr.employees

ALTER COLUMN name SECURED WITH unclassified ...

ALTER COLUMN ssn SECURED WITH confidential ALTER COLUMN salary SECURED WITH classified ALTER COLUMN bonus SECURED WITH classified;

(48)

LBAC. Ejemplos.

Protección a nivel de columna

(49)

LBAC. Ejemplos.

Protección a nivel de fila y columna

Conocimiento de los requerimientos (Tabla MEDICAL_RECORD) Datos organizativos (usuarios). Requerimientos de seguridad

La columna MEDICAL_HISTORY de la tabla MEDICAL_RECORD contiene información confidencial. El resto de las columnas contiene información no

confidencial.

Los analistas médicos tienen acceso de lectura/escritura a todas las columnas.

Los directores tienen acceso de lectura a las columnas no confidenciales.

Los analistas médicos tienen acceso de lectura/escritura a todas las filas.

Los directores tienen acceso de lectura a las filas de su departamento.

ANALISTA MEDICO

DIRECTOR K01 DIRECTOR S01 DIRECTOR K02 DIRECTOR S02

Clasificación de los datos

CONFIDENCIALES

NO CONFIDENCIALES

(50)

LBAC. Ejemplos.

Protección a nivel de fila y columna

CREATE SECURITY LABEL COMPONENT SLC_LEVEL SET {'CONFIDENTIAL'}

CREATE SECURITY LABEL COMPONENT SLC_LIFEINS_ORG TREE {'LIFE_INS_DEPT' ROOT, 'K01' UNDER 'LIFE_INS_DEPT', 'K02' UNDER 'LIFE_INS_DEPT',

'S01' UNDER 'LIFE_INS_DEPT', 'S02' UNDER 'LIFE_INS_DEPT' }

CREATE SECURITY POLICY MEDICAL_RECORD_POLICY COMPONENTS SLC_LEVEL, SLC_LIFEINS_ORG WITH DB2LBACRULES RESTRICT NOT AUTHORIZED WRITE SECURITY LABEL

CREATE SECURITY LABEL MEDICAL_RECORD_POLICY.MED_RECORD COMPONENT SLC_LEVEL 'CONFIDENTIAL' CREATE SECURITY LABEL MEDICAL_RECORD_POLICY.DEPT_K01 COMPONENT SLC_LIFEINS_ORG 'K01'

CREATE SECURITY LABEL MEDICAL_RECORD_POLICY.DEPT_K02 COMPONENT SLC_LIFEINS_ORG 'K02' CREATE SECURITY LABEL MEDICAL_RECORD_POLICY.DEPT_S01 COMPONENT SLC_LIFEINS_ORG 'S01' CREATE SECURITY LABEL MEDICAL_RECORD_POLICY.DEPT_S02 COMPONENT SLC_LIFEINS_ORG 'S02‘

CREATE SECURITY LABEL MEDICAL_RECORD_POLICY.MEDICAL_ANALYST COMPONENT SLC_LEVEL 'CONFIDENTIAL', COMPONENT SLC_LIFEINS_ORG 'K01', 'K02', 'S01', 'S02'

GRANT SECURITY LABEL MEDICAL_RECORD_POLICY. MEDICAL_ANALYST TO USER PETER FOR ALL ACCESS GRANT SECURITY LABEL MEDICAL_RECORD_POLICY.DEPT_K01 TO USER Andrea FOR ALL ACCESS

(51)

LBAC. Ejemplos.

Protección a nivel de fila y columna

ALTER TABLE MEDICAL_RECORD

ALTER COLUMN MEDICAL_HISTORY SECURED WITH MED_RECORD ADD COLUMN DEPARTMENT_TAG DB2SECURITYLABEL

ADD SECURITY POLICY MEDICAL_RECORD_POLICY

(52)

LBAC. Ejemplos.

Protección a nivel de fila y columna

Andrea

Joseph

(53)

RESUMEN

• DB2 proporciona una serie de medidas eficaces para neutralizar las amenazas sobre la seguridad de los datos:

Autenticación, Autorización, Roles, Trusted Context, auditoría, encriptación, LBAC.

• SECADM permite separar los roles de administración y seguridad en el acceso a los datos.

• LBAC complementa la seguridad tradicional basada en autorización, introduciendo un nuevo nivel de seguridad que proporciona:

Seguridad a nivel de fila

Seguridad a nivel de columna

Combinación de ambas

• La implementación de LBAC requiere conocimiento de la tipología de los datos y de los usuarios que acceden a datos sensibles.

(54)

RECURSOS

• Tutorial de LBAC en developer works:

http://www.ibm.com/developerworks/data/tutorials/dm0605wong/index.html

• Chat with the Lab. Modelo de seguridad de DB2

http://www.channeldb2.com/events/chat-db2-security-primer http://www.channeldb2.com/events/ibm-data-security-blueprint

• Redbook : DB2 Security and compliance Solutions for LUW (db2 9.5)

http://www.redbooks.ibm.com/abstracts/sg247555.html?Open

• Centro de Información db2 9.7

(55)

DB2LBACRULES

(56)

DB2LBACRULES

(57)

Ana Isabel Rivera

IBM

[email protected] Session

Title : Seguridad en los datos con LBAC

(Label Based Access Control)

Referencias

Documento similar

En México, la falta de “alineación entre grados, materias y dominios” en el currículo oficial para la educación básica con respecto a las competencias para el siglo XXI, aumenta

Reglamento (CE) nº 1069/2009 del parlamento Europeo y del Consejo de 21 de octubre de 2009 por el que se establecen las normas sanitarias apli- cables a los subproductos animales y

La Sala, a quo, toma en consideración los alegatos del ayuntamiento, «sobre que no hubo una denegación a las solicitudes de información sino una puesta de manifiesto a la recurrente

La noción de derecho implícito tiene muchas formulaciones (Ernst 1994, Postema 1994), unas más aceptables que otras, pero todas ellas parten de la mis- ma idea: que al lado de

El Espíritu también liberó a los esclavos de los poderes del mal, lo que fue una prueba contundente de la superioridad del poder de Dios sobre las fuerzas del mal y reveló que

2. Reglamentariamente se establecerán las condiciones para la realización de la consulta de los documentos a que se refiere este artículo, así como para

Se llega así a una doctrina de la autonomía en el ejercicio de los derechos que es, en mi opinión, cuanto menos paradójica: el paternalismo sería siempre una discriminación cuando

Para comprobar tanto el middleware como el controlador de acceso a datos de un nivel de red y un cliente de base de datos dados, utilice la función connectivity.. Figura 2-7: