control de concurrencia y seguridad multinivel (1)

18
Control de Concurrencia y Seguridad Multinivel MAESTRIA EN SEGURIDAD INFORMATICA - SEGURIDAD EN BASE DE DATOS

Upload: martin-hp

Post on 12-Jul-2016

220 views

Category:

Documents


3 download

DESCRIPTION

Este tema es para el curso de Base de Datos.

TRANSCRIPT

Page 1: Control de Concurrencia y Seguridad Multinivel (1)

Control de Concurrencia y

Seguridad Multinivel

MAESTRIA EN SEGURIDAD INFORMATICA - SEGURIDAD EN BASE DE DATOS

Page 2: Control de Concurrencia y Seguridad Multinivel (1)

CONTROL DE CONCURRENCIA

Page 3: Control de Concurrencia y Seguridad Multinivel (1)

Se requieren planificaciones secuenciales en cuanto a conflictos y sin cascada para garantizar el aislamiento.• Esquemas de control de concurrencia - Mecanismos para conseguir aislamiento– Basados en bloqueo– Basados en marcas temporales– Basados en validación

La concurrencia en las bases de datos :Se refiere al hecho de que los Sistemas Administradores de Base de Datos permiten que muchas transacciones accedan a una misma Base de Datos a la vez.Cuando existen varios usuarios intentando modificar los datos al mismo tiempo, se necesita establecer algún tipo de control para que dichas modificaciones de un usuario no interfieran en las de los otros, a este sistema se le denomina control de concurrencia

Page 4: Control de Concurrencia y Seguridad Multinivel (1)

TRANSACCIONES• El control de concurrencia permite que sus usuarios asuman que cada

una de sus aplicaciones se ejecuta atómicamente, como si no existieran otras aplicaciones ejecutándose concurrentemente. Esta abstracción de una ejecución atómica y confiable de una aplicación se conoce como una transacción

• Informalmente, una transacción es la ejecución de ciertas instrucciones que acceden a una base de datos compartida.

• Cada transacción accede a información compartida sin interferir con otras, si una transacción termina normalmente, todos sus efectos son permanentes, en caso contrario no tiene afecto alguno.

• Durante una transacción la base de datos pierde su consistencia, la que debe restituirse al momento de finalizar la transacción.

Page 5: Control de Concurrencia y Seguridad Multinivel (1)
Page 6: Control de Concurrencia y Seguridad Multinivel (1)

PROPIEDADES FUNDAMENTALES DE UNA TRANSACCIÓN• Atomicidad: Se refiere al hecho de que una transacción se trata como una unidad de

operación. Consistencia: La consistencia de una transacción es simplemente su correctitud. las transacciones no violan las restricciones de integridad de una base de datos.

• Aislamiento: Una transacción en ejecución no puede revelar sus resultados a otras transacciones concurrentes antes de finalizar.

• Permanencia: Es la propiedad de las transacciones que asegura que una vez que una transacción finaliza exitosamente, sus resultados son permanentes y no pueden ser borrados de la base de datos por alguna falla posterior.  

• Confiabilidad: Puesto que los sistemas de base de datos en línea no pueden fallar.• Disponibilidad: Debido a que los sistemas de base de datos en línea deben estar

actualizados correctamente todo el tiempo.• Tiempos de Respuesta: el tiempo de respuesta de las transacciones no debe ser mayor

a doce segundos  • Throughput: Los sistemas de base de datos en línea requieren procesar miles de

transacciones por segundo. 

Page 7: Control de Concurrencia y Seguridad Multinivel (1)

Existen tres formas en las que una transacción, aunque sea correcta por sí misma, puede producir una respuesta incorrecta si alguna otra transacción interfiere con ella en alguna forma.

El problema de la Actualización PerdidaEl problema de la Dependencia No Confirmada El problema del Análisis Inconsistente

PROBLEMAS DE CONCURRENCIA

Page 8: Control de Concurrencia y Seguridad Multinivel (1)

Algunos casos Problemas de concurrencia• Lectura sucia (dirty read): T1 puede leer una actualización de T2 aún no confirmada y si T2 falla y se aborta, T1 leyó un valor que no existe.• Lectura no repetible (nonrepeatable read): T1 puede leer un valor D que posteriormente actualiza T2. Si T1 vuelve a leer el valor de D lo encuentra cambiado.• Fantasmas (phantoms) - T1 puede leer una tabla en la que posteriormente T2 inserta una fila. Si T1 vuelve a leer la tabla aparece una fila nueva: un fantasma.

Page 9: Control de Concurrencia y Seguridad Multinivel (1)

SEGURIDAD MULTINIVEL

Page 10: Control de Concurrencia y Seguridad Multinivel (1)

Las técnicas de control de acceso discrecional para conceder y revocar privilegios en relaciones han sido, desde siempre, el principal mecanismo de seguridad en los sistemas de base de datos relacionales. Este es un método de todo o nada: usuario tiene un cierto privilegio o bien no lo tiene. En muchas aplicaciones se necesita una política de seguridad adicional que clasifique los datos y los usuarios de acuerdo con ciertas clases de seguridad. Esta estrategia, llamada control de acceso obligatorio, se suele combinar con los mecanismos de control de acceso discrecional.Es importante señalar que la mayor parte de los SGBD comerciales ofrecen actualmente solo mecanismos para el control de acceso discrecional. Sin embargo la necesidad de una seguridad multinivel existe en aplicaciones gubernamentales, militares y de espionaje, así como en muchas aplicaciones industriales y corporativas

Page 11: Control de Concurrencia y Seguridad Multinivel (1)

Las clases de seguridad usuales son:• Maximo secreto (TS: top secret)• Secreto (S: secret)• Confidencial (C: confidential)• No confidencial (U: unclassified)

Page 12: Control de Concurrencia y Seguridad Multinivel (1)

El modelo Bell-LaPadula: .La regla fundamental de este modelo es la que ninguna entidad debe tener acceso de lectura a un objeto clasificado por encima de su propio nivel de seguridad. Es decir, el nivel de seguridad de una entidad debe ser igual o superior al del objeto al que se va a acceder.Nos referiremos a la acreditación (clasificación) de un sujeto S como clase (S) y a la clasificación de un objeto O como clase (O). Se asegura el cumplimiento de dos restricciones de acceso a los datos según las clasificaciones sujeto/objeto:1. Un sujeto S no puede tener acceso de lectura a un objeto O a

menos que la clase (S) >= clase (O). Esto se conoce como propiedad de seguridad simple.

2. Un sujeto S no puede tener acceso de escritura a un objeto O a menos que la clase (S) <= clase (O). Esto se conoce como propiedad * (o propiedad estrella)

Page 13: Control de Concurrencia y Seguridad Multinivel (1)

El modelo Lattice: Es el que utilizan el gobierno y el ejército de los Estados Unidos. Se basa en una política de control de acceso imperativa. Este método utiliza una jerarquía de niveles de seguridad (llamados compartimentos) asociada a una clasificación de seguridad para los objetos . Cada objeto tiene asignada una clasificación de seguridad que está en uno o más compartimentos, y ambos son comprobados por el control de acceso del sistema imperativo. Para acceder a un objeto, una entidad debe pertenecer a todas los compartimentos a los que pertenece ese objeto, y debe tener asignado un nivel de seguridad igual o superior al del objeto.

Page 14: Control de Concurrencia y Seguridad Multinivel (1)

En el ejemplo solo una entidad clasificada como secreta o muy secreta, y que pertenezca al menos a los compartimentos F, G y H podrá acceder al objeto 2.

Page 15: Control de Concurrencia y Seguridad Multinivel (1)

CASO PRACTICO

Page 16: Control de Concurrencia y Seguridad Multinivel (1)

EN MYSQLEn el motor de almacenamiento: InnoDBInnoDB implementa un bloqueo a nivel de fila estándar, donde hay dos tipos de bloqueos:Compartido (Shared) (S) le permite a una transacción leer una fila.Exclusivo (Exclusive) (X) le permite a una transacción actualizar o eliminar una fila.

SELECT ... FROM ... LOCK IN SHARE MODE

establece bloqueos compartidos de próxima clave en todos los registros de

índice hallados por la lectura

SELECT ... FROM ... FOR UPDATE

establece bloqueos exclusivos de próxima clave en todos los registros de

índice hallados por la lectura

Isolation Level Dirty Read Nonrepeatable Read Phantom ReadRead uncommitted Possible Possible PossibleRead committed Not possible Possible PossibleRepeatable read Not possible Not possible PossibleSerializable Not possible Not possible Not possible

Page 17: Control de Concurrencia y Seguridad Multinivel (1)

EN ORACLE Oracle utiliza la información existente en el segmento de anulación (datos

antiguos). Cuando una consulta comienza se le asigna un número (SCN=System Change

Number). Datos leídos por una consulta tienen un SCN más pequeño. Bloques con SCN más alto (más reciente) son reconstruidos con la información

contenida en el segmento de anulación.

Oracle proporciona consistencia de lectura a dos niveles:• Nivel de sentencia• Nivel de transacciónORACLE utiliza el nivel menos restrictivo guiándose por las siguientes reglas: Operaciones de lectura no esperan a las de escritura sobre los mismos datos. Operaciones de escritura no esperan a las de lectura sobre los mismos datos. Operaciones de escritura solamente esperan a otras operaciones de escritura que intentan

modificar la misma tupla.

Interbloqueos: ocurren cuando dos o más usuarios están esperando datos bloqueados por los

otros. Oracle automáticamente detecta situaciones de interbloqueo y los resuelve abortando una

de las transacciones. Se detectan mediante grafos de esperas.

Page 18: Control de Concurrencia y Seguridad Multinivel (1)

EN SQL SERVERMVCC (Multi version concurrency

control) es una técnica de concurrencia

optimista en donde ninguna tarea o hilo

es bloqueado mientras se realiza una

operación en la tabla, porque el otro hilo

usa su propia copia (versión) del objeto

dentro de una transacción.Todas las bases de datos modernas implementan

actualmente este algoritmo de concurrencia

optimista. En SQL Server se llama SNAPSHOT

ISOLATION, en MySql se llama InnoDB Multi

Version, en Firebird MGA y en Oracle y

PostgreSQL, simplemente MVCC.