Seguridad en las aplicaciones informáticas

26
1 Módulo IV.- Seguridad Aplicativa Seguridad en las aplicaciones informáticas Módulo IV.- Seguridad Aplicativa Agenda • Objetivos. Seguridad en la Base de Datos. – Tradicional. – Tendencias.

Transcript of Seguridad en las aplicaciones informáticas

Page 1: Seguridad en las aplicaciones informáticas

1

Módulo IV.- Seguridad Aplicativa

Seguridad en las aplicaciones

informáticas

Módulo IV.- Seguridad Aplicativa

Agenda

• Objetivos.

• Seguridad en la Base de Datos.

– Tradicional.

– Tendencias.

Page 2: Seguridad en las aplicaciones informáticas

2

Módulo IV.- Seguridad Aplicativa

Objetivos.

• Que el participante conozca la forma en que

se puede asegurar una aplicación desde el

ambiente de la Base de Datos.

• La forma en la que tradicionalmente se ha

utilizado este ambiente y como se esta

transformando para ofrecer mayores

controles.

Módulo IV.- Seguridad Aplicativa

Seguridad en aplicaciones

informáticas.

• Existen diferentes tipos de aplicaciones informáticas, que sirven a propósitos específicos.

• Estas manejan:

– Datos.

– Procesos de negocio.

• Las aplicaciones deben estar protegidas:

– Contra accesos no autorizados.

– La destrucción o alteración mal intencionada.

– Introducción accidental de inconsistencias.

Page 3: Seguridad en las aplicaciones informáticas

3

Módulo IV.- Seguridad Aplicativa

Seguridad en Aplicaciones

Informáticas

• Inconsistencias accidentales.

– Errores lógicos por la falta de integridad referencial de los datos.

– Errores provocados por la caída del sistema durante el proceso de una transacción.

– Errores provocados por el acceso concurrente a los datos.

– Errores provocados por la distribución de los datos entre varios servidores.

• Estos errores se evitan:

– Con un buen diseño de la aplicación.

– Utilizando el software de soporte adecuado.

Módulo IV.- Seguridad Aplicativa

Seguridad en Aplicaciones

Informáticas

• Un acceso mal intencionado puede provocar:

– Robo de información.

– Modificaciones a los datos no autorizadas.

– Destrucción de datos no autorizada.

• La protección total contra accesos y uso malintencionado no se puede garantizar al 100%.

• Pero el costo de intentar acceder puede elevarse lo suficiente como para disuadir a la mayoría o al total de los posibles intentos.

Page 4: Seguridad en las aplicaciones informáticas

4

Módulo IV.- Seguridad Aplicativa

Seguridad en Aplicaciones

Informáticas• Para proteger una aplicación informática se tienen que adoptar medidas

de seguridad en diferentes niveles, entre otros:– Físico.

• Servidores deben encontrarse en un lugar protegido físicamente contra la entrada de intrusos.

– Humano.• Autorización de acceso se debe realizar de manera cuidadosa, para evitar dar

privilegios equivocados a las personas equivocadas.

– Sistema Operativo.• Ya que a partir de este punto se puede tener acceso a los datos.

– Red.• Dado que prácticamente todos los sistemas actuales permiten el acceso y

trabajo remoto.

– Bases de datos.

– Aplicación.

– Otros.

Módulo IV.- Seguridad Aplicativa

Seguridad en la Base de Datos

Tradicional.

Page 5: Seguridad en las aplicaciones informáticas

5

Módulo IV.- Seguridad Aplicativa

Seguridad en la Base de Datos

• Base de datos.

– Colección de datos relacionados, para cumplir una función específica.

– Propiedades:– Representa un aspecto del mundo real

– Colección de datos lógicamente coherente con un significado inherente.

– Acceso para múltiples aplicaciones y diversos grupos de usuarios.

– Restricciones, que garantizan la integridad de la información.

Módulo IV.- Seguridad Aplicativa

Seguridad en la Base de Datos

• DBMS (Data Base Management System) : Colección de programas, que permiten crear y mantener bases de datos.– Facilita los siguientes procesos

• Definición.

• Construcción.

• Manipulación.

• La seguridad tradicional en la Base de datos se puede dividir en:– Seguridad en el manejo de objetos

– Seguridad en el acceso a datos.

Page 6: Seguridad en las aplicaciones informáticas

6

Módulo IV.- Seguridad Aplicativa

Administración de Objetos de la

Base de Datos• Autorización para modificar el esquema de la Base de Datos.

– Los principales privilegios que permiten la administración de los objetos de la Base de datos son los siguientes:• Crear, actualizar y borrar tablas.

• Crear, actualizar y borra índices.

• Crear, actualizar y borrar vistas.

• Crear, actualizar y borrar procedimientos.

• Crear, actualizar y borrar funciones.

• Crear, actualizar y borrar relaciones.

• Asignar los permisos de acceso a los datos.

• El administrador de la Base de datos puede:– Crear nuevos usuarios.

– Reestructurar la Base de Datos.

– Crear los espacios lógicos para las Bases de Datos.

– Crear, actualizar y borrar los roles de trabajo.

– Asignar los permisos de administración de los esquemas de Bases de Datos.

– Asignar permisos de acceso a los datos de diferentes Bases de Datos.

Módulo IV.- Seguridad Aplicativa

Las Bases de Datos

•Administra proveedores.•Crea, modifica y borra:

•Tablas.•Índices.•Vistas, etc.

•Asigna permisos de acceso a los datos de proveedores.

Dispositivos físicos

RecursosHumanos

ProveedoresVentasBases de Datos

Objetos de laBase de DatosProveedores

DBA

•Asigna espacio a las B.D.•Crea las B.D.•Crea usuarios.•Asigna permisos sobre las B.D.•Realiza respaldos y recuperación.

Usuario 1Usuario 2 Usuario 3

Accede aR.H.

Page 7: Seguridad en las aplicaciones informáticas

7

Módulo IV.- Seguridad Aplicativa

Acceso a los datos

• Cuando un usuario es creado este sólo tiene permisos para acceder el software que administra las Bases de Datos.

• No puede acceder a ninguna Base de Datos, a sus objetos ni a sus datos.

• Es necesario que el administrador de las Bases de Datos o el administrador de la Base de Datos específica le asigne los permisos necesarios para trabajar con los objetos y/o los datos.

• Un usuario puede tener privilegios para acceder a los datos de diferentes Bases de Datos.

Módulo IV.- Seguridad Aplicativa

Acceso a los datos

• Los principales tipos de autorización para acceder a los datos de una Base de Datos son los siguientes:– Lectura.

• Permite la lectura de los datos pero no su modificación.

– Inserción.• Permite la inserción de nuevos datos pero no su modificación.

– Actualización.• Permite la modificación de los datos pero no su borrado.

– Borrado.• Permite el borrado de los datos.

• Estos privilegios se asignan sobre tablas, y en algunos casos sobre las vistas, en el caso de objetos que realizan algún proceso como los procedimientos, funciones o triggers.– Ejecución.

• Permite la ejecución del objeto sobre el que se asigna el privilegio.

Page 8: Seguridad en las aplicaciones informáticas

8

Módulo IV.- Seguridad Aplicativa

Acceso a los Datos

RecursosHumanos

Ventas

General Persona

EmpleadoSueldo

ClienteProducto

Orden

Usuario X

Usuario Y

Lectura

Lectura

EmpleadoSueldo

Persona

ClienteProductoOrden

Lectura, InserciónActualización

Lectura

Lectura, InserciónActualización, borrado

Lectura, InserciónActualización, borrado

Lectura, InserciónActualización, borrado

Lectura, InserciónActualización, borrado

Módulo IV.- Seguridad Aplicativa

Acceso Indirecto a los Datos

• Se pueden utilizar las vistas, los procedimientos almacenados o las funciones.

• Estos proporcionan un modelo personalizado al usuario que los acceda.

• Permiten ocultar datos que un usuario no necesita con lo que se mejora la seguridad.

• Se puede realizar una combinación de seguridad utilizando la seguridad a nivel relacional y utilizando el nivel de vistas o procedimientos.

Page 9: Seguridad en las aplicaciones informáticas

9

Módulo IV.- Seguridad Aplicativa

Acceso Indirecto a los Datos

• Ejemplo utilizando una vista.

– Se desea proporcionar a los empleados la información básica de su situación en la empresa.

• El puesto que ocupa.

• Su salario.

• Las prestaciones que tiene de acuerdo a sus características.

– Sólo deben poder ver sus propios datos.

– No tienen acceso a las tablas que contienen la información de todos los empleados.

– Al empleado se le concede el privilegio de lectura sobre la vista Info-empleado.

– La vista contiene la información del empleado.

– Nota: el usuario que crea la vista debe tener privilegios sobre las tablas que la conforman.

Módulo IV.- Seguridad Aplicativa

Acceso Indirecto a los Datos

Persona

Empleado

Sueldo

Puesto

Prestación

Cve_empleado

Nombre completo

Puesto

Sueldo

prestaciones

6537898

9745378

1349576

2315648

•El nombre del usuario es la clave de empleado.•Los usuario tienen permisos de Lectura sobre la vista.•Los datos de la vista se crean cuando al leerla se extraen los datos de las tablas correspondientes a la clave del empleado.

Page 10: Seguridad en las aplicaciones informáticas

10

Módulo IV.- Seguridad Aplicativa

Acceso Indirecto a los Datos

• Ejemplo utilizando un procedimiento.– Un vendedor no debe tener acceso sobre todos los pedidos de la

organización para actualizarlos.

– Este debe poder levantar un pedido.

– Puede asignarse permisos de lectura a las tablas necesarias para consultar la información de un pedido.

– NO se le asignan otra clase permisos.

– Se crea un procedimiento que levante la información del pedido.

– Se le asignan permisos de ejecución al vendedor sobre el procedimiento levanta-pedido.

– El usuario puede insertar, actualizar o borrar la información necesaria vía el procedimiento.

– Nota: El usuario que crea el procedimiento debe tener los privilegios necesarios sobre las tablas que participan en el procedimiento.

Módulo IV.- Seguridad Aplicativa

Acceso Indirecto a los Datos

Producto

Inventario

Orden

Detalle Orden

LevantaPedido Usuario X

Ejecuta

•El Usuario X NO tiene privilegios sobre:•Producto.•Inventario•Orden•Detalle Orden

•Sin embargo:•Puede Leer de todas las tablas.•Puede Insertar, Actualizar y borrar de Orden y Detalle Orden.•Puede Actualizar Inventario.

El usuario X tiene privilegios de

ejecución en el procedimiento

Levanta Pedido.

Page 11: Seguridad en las aplicaciones informáticas

11

Módulo IV.- Seguridad Aplicativa

Concesión de privilegios

• Es posible conceder un privilegio permitiendo que el usuario al que se le concede pueda conceder a su vez el privilegio.

• Un usuario tiene autorización sólo en el caso en el que el usuario que origina el privilegio mantenga el privilegio sobre el usuario o usuarios intermedios..

• Si el privilegio es retirado en un primer nivel, entonces este desaparece para los usuario de nivel siguiente.

Módulo IV.- Seguridad Aplicativa

Concesión de Privilegios

• Ejemplo.– En la Base de Datos de Recursos Humanos se le concede privilegio

de Actualización sobre la tabla salario a los usuarios U1, U2 y U3 con permiso de extender esté privilegio a otros usuarios

– Este es concedido por el usuario rechum que es dueño de la Base de Datos.

– El privilegio de Actualizar la tabla salario es concedido al usuario U4 sin permiso de extender este privilegio por el mismo rechum.

– El usuario U1 concede el privilegio al usuario U5 y U6.

– El usuario U2 concede el privilegio al usuario U6 y U7.

– El usuario U3 concede el privilegio al usuario U8.

Page 12: Seguridad en las aplicaciones informáticas

12

Módulo IV.- Seguridad Aplicativa

Concesión de Privilegios

Salario

Privilegio de Actualización

rechum

U1

U2

U3

U4

U5

U6

U7

U8

•Ahora rechum le retira el privilegio al usuario U1

•El usuario U5 no tendráya el privilegio.

•¿Qué pasa con U6? rechum

U1

U2

U3

U4

U5

U6

U7

U8

Módulo IV.- Seguridad Aplicativa

Concesión de Privilegios

rechum

U1

U2

U3

U4

Salario

Privilegio de

Actualización

Se le otorga privilegio

De actuialización sobre

La tabla salario a U1, U2

U3 y U4.

rechum

U1

U2

U3

U4

El usuario U2 otorga

El privilegio a U3 y

U3 se lo asigna a U2

rechum

U1

U2

U3

U4

Se le retira el privilegio

A U2 ¿Qué sucede?

¿Si U2 conserva el privilegio

Y se le retira a U3?

rechum

U1

U2

U3

U4

¿Ahora que sucede?

Page 13: Seguridad en las aplicaciones informáticas

13

Módulo IV.- Seguridad Aplicativa

Privilegios vía SQL

• El lenguaje SQL incluye órdenes para conceder y retirar privilegios.

• Los principales privilegios de acceso a los datos son:– Select -> permite leer datos de una tablas.

– Insert -> permite insertar datos.

– Update -> permite actualizar datos.

– Delete -> permite borrar datos.

• Para ejecutar funciones o procedimientos almacenados.– Execute -> permite ejecutar una función o procedimientos

almacenado.

Módulo IV.- Seguridad Aplicativa

Privilegios vía SQL

• Se utiliza la instrucción grant para otorgar privilegios, su estructura básica es:– grant <privilegio o lista de privilegios> on <objeto> to <usuario,

lista de usuarios o rol>

– Ejemplo: se concede la lectura sobre salario a los usuarios u1, u2 y u3.

• grant select on salario to u1, u2, u3

– En el caso de la actualización y la inserción es posible incluso otorgar estos privilegios sobre ciertas columnas únicamente.

– Para el caso de la inserción, la instrucción insert debe incluir sólo los atributos indicados y el resto de los mismos se les asignarávalores predeterminados o nulos, es importante que si el atributo no acepta nulos, se defina un valor predeterminado.

Page 14: Seguridad en las aplicaciones informáticas

14

Módulo IV.- Seguridad Aplicativa

Privilegios vía SQL

• Ejemplo: En la siguiente instrucción se le asigna el permiso de actualización sobre salario en la columna sueldo a los usuarios u1, u2 y u3.– grant update(sueldo) on salario to u1,u2,u3

• La opción all privileges se utiliza para indicar que se asignarán todos los privilegios sobre el objeto.

• El usuario public se utiliza para indicar que el privilegio es asignado a todos los usuarios del sistema.

• Al conceder un privilegio a un usuario vía SQL de manera predeterminada este no tendrá el privilegio de concederlo o asignarlo a otro usuario.

• Para que al conceder el privilegio este lo puede volver a conceder se utiliza with grant option.

Módulo IV.- Seguridad Aplicativa

Privilegios vía SQL

• Ejemplo: Se otorga el privilegio de select sobre empleado al usuario u1 y se desea que este pueda a su vez transmitirlo a otro usuario.– grant select on empleado to u1 with grant option

• Para retirar el privilegio o privilegios asignados a un usuario se utiliza la instrucción revoke.– Revoke <privilegio o lista de privilegios> on <objeto> from <usuario, lista de

usuario o rol>

– Ejemplo: retirar los privilegios asignados anteriormente.• revoke select on salario from u1,u2,u3

• revoke update(sueldo) on salario from u1,u2,u3

• revoke select on empleado from u1

– Por omisión al retirar un permiso a un usuario que podía transmitirlo hace que los usuarios que lo tenían a partir del usuario también pierdan el privilegio.

– Si se desea que esto no suceda es necesario incluir la cláusula restrict, para que la instrucción marque un error en caso de tener asignaciones el usuario al que se le retira el privilegio.• revoke select on empleado from u1 restrict

Page 15: Seguridad en las aplicaciones informáticas

15

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos

• Este esquema de seguridad se implementa principalmente en una arquitectura Cliente/Servidor.

• En este caso cada usuario del sistema o sistemas que se van a utilizar corresponde con un usuario de Base de Datos.

• Cada sistema o módulo:– Soporta uno o varios procesos de negocio.

– Necesitan acceder a datos que se encuentran en tablas de una o de varias Bases de Datos.

– Necesitan diferentes niveles de acceso a los datos dependiendo del proceso de negocio.

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos• Ejemplo:

– Se implementa el módulo de la nómina.

– Se necesita el acceso a los datos generales de una persona, para conocer su nombre completo, su RFC, su CURP y algunos datos que pueden resultar en prestaciones por ejemplo, si el trabajador tiene hijos menores de 6 años se le genera una ayuda económica especial, Acceso de lectura a las tablas necesarias.

– Se necesita el acceso a los datos de Recursos Hunmanos, para conocer el puesto del empleado, su salario, su fecha de ingreso, las prestaciones y deducciones generales. El acceso es de lectura a las tablas necesarias.

– Se requiere acceso a los datos de control de asistencia para determinar los días a pagar y los descuentos a los que se ha hecho acreedor el trabajador. Podría requerirse acceso de lectura y escritura, principalmente de modificación.

– Se necesita acceso a los datos de prestamos para generar los pagos a los mismos de los empleados que mantienen algún préstamo con la organización, se requieren privilegios de lectura y actualización.

– Los datos del proceso de la nómina se dejan en las tablas que corresponden a esta Base de Datos, se requiere acceso total a los objetos de ésta.

Page 16: Seguridad en las aplicaciones informáticas

16

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos

Nómina Recursos HumanosGeneral

Control de Asistencia

Nómina

Prestamos a

empleados

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos

• Otros procesos necesitarán acceso a una o varias Bases de Datos y es necesario determinar los privilegios de acceso a los datos que se necesitan para que funcione correctamente el proceso.

• Un usuario requiere utilizar uno o varios procesos que ahora se han convertido en aplicaciones.

• Los privilegios de acceso a los datos definidos para que la aplicación funcione se deben asignar al usuario o usuarios que harán uso de la misma.

• Escenario.– El usuario hace uso de más de una aplicación.

– Existe un cambio de actividades y necesita dejar de utilizar unaaplicación y hará uso de otra diferente.

– ¿Qué tan fácil es hacer el cambio?

Page 17: Seguridad en las aplicaciones informáticas

17

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos

Aplicación 1

Aplicación 2 Aplicación 3

select on t1

all in t2

select, insert on t3

select, update, delete on t4

select on t5

select on t1

select in t2

select, insert on t10

select, delete on t11

Usuario X

•Al usuario se le retira el acceso a la Aplicación 1 y se le asigna la Aplicación 3.

•Es necesario retirar los privilegios de la Aplicación 1•Es necesario asignar los privilegios de la Aplicación 3•¿Qué sucede?

select on t15

all in t17

select, insert on t18

select, update, delete on t19

select on t20

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos

• Principales problemas al administrar los privilegios de esta manera.– Mantener la consistencia de los privilegios asociados a las

aplicaciones se vuelve muy complejo.

– Al perder un usuario su contraseña, aunque no se tenga acceso a la aplicación si se consigue acceso a la Base de Datos es posible acceder a los datos a los que el usuario tiene derecho.

– Realizar cambios en el uso de aplicaciones se vuelve una tarea muy difícil de llevar a cabo.

– Si se administra una gran cantidad de usuarios y aplicaciones mantener el control entre los usuarios que utilizan las aplicaciones y los privilegios que necesitan se vuelve sumamente complejo.

Page 18: Seguridad en las aplicaciones informáticas

18

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos• Una forma de solucionar esta problemática es a través de la utilización de

roles.

• Los privilegios sobre los objetos de un esquema de Bases de Datos que requiere una aplicación para funcionar se agrupan en una rol.

• Se recomienda proteger este rol con una contraseña.

• Incluso se puede generar más de un rol para una aplicación uno que permita acceso de sólo lectura y otro que permita lecturas y modificaciones.

• El rol se le asigna al usuario o usuario que van a utilizar la aplicación.– En SQL: grant <rol o roles> to <usuario o usuario>

• Un usuario puede tener asignado más de un rol.

• La primer instrucción de la aplicación es intentar asignar el rol al usuario, si este no tiene asignado el rol provocara un error y no podrá utilizarla.

• Si existe un cambio de actividades se le retira el rol que ya no necesita al usuario y se le asigna el o los nuevos roles.

• Los privilegios de acceso a los datos se encuentran asignados al rol, en el momento en el que el usuario adquiere el rol adquiere los privilegios de éste.

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos

• Ejemplo.– Para poder utilizar una aplicación es necesario tener asignados una

serie de privilegios sobre diferentes objetos de diferentes Bases de Datos.

– No todos los usuarios que utilizarán esta aplicación podrán modificar los datos que ésta afecta.

– Se genera un rol que permite hacer uso de todas las funciones de la aplicación, al cual se le denomina como rol de lectura y escritura.

– Se genera un segundo rol para que el usuario pueda utilizar las funciones de lectura de la aplicación, pero no pueda utilizar aquellas que modifican de alguna manera los datos que se utilizan.

– El rol de lectura y escritura se le asigna a los usuarios u1, u2 y u3.

– El rol de sólo lectura se le asigna a los usuarios u4 y u5.

Page 19: Seguridad en las aplicaciones informáticas

19

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos

Lista dePrivilegios

De la aplicación

Rolde lectura yescritura

Rolde lectura Aquí no se asignan

permisos de inserción,actualización ni borrado

U1

U2

U3

U4

U5

Estos usuarios acceden a la aplicación de manera completa.

Estos usuarios acceden a la aplicación sólo en modo consulta

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos• Ejemplo.

– Se tiene definidos diferentes roles para poder trabajar con diferentes aplicaciones y se tienen definidos roles de lectura y de lectura y escritura.• A los de lectura se les asigna lect como parte del nombre.

• A los de lectura y escritura se incluye la palabra todo como parte de su nombre.

– Por las funciones que desempeña el usuario X tiene asignados los roles:• Aplicacion1_todo_rol.

• Aplicacion2_lect_rol.

• Aplicacion4_todo_rol.

– Existe un cambio de funciones para el usuario X por lo que es necesario que pueda acceder a la aplicación 2 con todos los privilegios necesarios y que pueda utilizar la aplicación 3 en modo de lectura.• El primer paso es quitar el rol Aplicacion2_lect_rol.

• El segundo es asignar Aplicacion2_todo_rol.

• Por último se asigna Aplicacion3_lect_rol.

Page 20: Seguridad en las aplicaciones informáticas

20

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos

Aplicación1_todo_rol

Aplicación2_lect_rol

Aplicación4_todo_rol

Usuario X

Por sus funciones el usuario X tiene acceso en modo completo a las aplicaciones 1 y 4 y sólo de lectura para la aplicación 2

Por cambio de funciones ahora el usuario X requiere acceso de modo completo a la aplicación 2 y requiere acceso a la aplicación 3 en modo de lectura.

1. Se le retira el rol Aplicacion2_lect_rol

2. Se le asigna el rol Aplicacion2_todo_rol.

3. Se le asigna el rol Aplicacion3_lect_rol.

Aplicación2_todo_rol

Aplicación3_lect_rol

Módulo IV.- Seguridad Aplicativa

Implementando un esquema de

seguridad vía la Base de Datos

• Una recomendación es que el usuario final sólo tenga asignados los roles pero que ninguno de estos sea su rol por omisión.

• Es decir sólo se le permite conectarse al DBMS.

• Si por cualquier situación alguien no autorizado logra conectarse utilizando un usuario válido, este no podrárealizar ninguna actividad de manera directa con los datos.

• Necesita utilizar la aplicación para poder acceder a los datos.

• O necesita el rol y la contraseña del mismo para poder asignárselo al momento de conectarse.

Page 21: Seguridad en las aplicaciones informáticas

21

Módulo IV.- Seguridad Aplicativa

Seguridad en la Base de Datos

Tendencia.

Módulo IV.- Seguridad Aplicativa

Tendencias en Seguridad de Bases

de Datos

• Sobre el acceso a datos.

– Al asignar privilegios sobre las tablas estos afectan todos los datos

que se encuentran en la tabla.

– La tendencia actual de diseño de bases de datos implican la

integración de las aplicaciones de una organización en una gran

aplicación.

– A los sistemas comerciales que cumplen con esta característica se

les conoce como “Enterprise Resource Planning (ERP).

– Esto implica que se reduce al máximo posible la redundancia de

los datos.

Page 22: Seguridad en las aplicaciones informáticas

22

Módulo IV.- Seguridad Aplicativa

Tendencias en Seguridad de Bases

de Datos

• Ejemplo.– Se esta modelando un sistema que permita el control de las

inscripciones en una Universidad.

– Se tiene un primer modelo en el que se manejan tablas independientes para la información del Alumno y del Profesor.

– Sin embargo, para reducir la redundancia y tener un mejor control sobre las personas se decide que la información común se tendráen la tabla persona.

– En un mismo grupo si la clave de la persona se encuentra en la tabla inscripción se trata de un alumno.

– Si la clave de la persona se encuentra en la tabla grupo se trata de un profesor.

– Se evita entre otros problemas la duplicidad de la información de una persona y el tenerla integrada permite ofrecer mejores servicios.

Módulo IV.- Seguridad Aplicativa

Tendencias en Seguridad de Bases

de Datos

Alumno

Profesor Grupo

Materia

Inscripción

Persona Grupo

Materia

Inscripción

Diseño con redundancia de datos Diseño sin redundancia de datos

Page 23: Seguridad en las aplicaciones informáticas

23

Módulo IV.- Seguridad Aplicativa

Tendencias en Seguridad de Bases

de Datos• En más de un sistema se tendrá que una persona puede desempeñar más de un

rol dentro de la organización.

• Así para el caso de la Universidad una persona puede ser:– Alumno.

– Profesor.

– Empleado.

– Investigador.

• La información de esta persona debe estar disponible para todos los departamentos que la requieran.

• Sus datos personales y otros que la organización decida deben estar compartidos.

• Al otorgar acceso a la tabla de persona, por ejemplo, si existen datos de una persona que es Alumno pero que no es Empleado de cualquier forma el departamento de Recursos Humanos tiene acceso a los datos de esta persona, ya que se le otorgaron permisos sobre la tabla compartida.

• En un escenario complicado incluso tendrá privilegios para actualizar sus datos aun cuando ésta no sea Empleado.

Módulo IV.- Seguridad Aplicativa

Tendencias en Seguridad de Bases

de Datos

Persona

Datos de alumnos

Datos de profesores

Datos de empleados

Datos de alumnos-empleados

Escolar

RecursosHumanos

Becas

Todos pueden acceder a toda la información que se encuentra en la tabla persona.

Page 24: Seguridad en las aplicaciones informáticas

24

Módulo IV.- Seguridad Aplicativa

Tendencias en Seguridad de Bases

de Datos

• Actualmente es posible restringir el acceso por tipo de datos almacenados en una tabla.

• Es decir un grupo de usuarios con ciertas características podrá acceder a la información d en una tabla si esta cumple con las características definidas para su grupo.

• Por ejemplo, el departamento de Recursos Humanos podrátener acceso a los datos de una persona si ésta es empleado o profesor.

• Pero no podrá acceder a sus datos si es alumno solamente.

• El departamento de Becas podrá acceder a la información si la persona es alumno, pero no si esta es empleado o profesor únicamente.

Módulo IV.- Seguridad Aplicativa

Tendencias en Seguridad de Bases

de Datos

Persona

Datos de alumnos

Datos de profesores

Datos de empleados

Datos de alumnos-empleados

Escolar

RecursosHumanos

Becas

Page 25: Seguridad en las aplicaciones informáticas

25

Módulo IV.- Seguridad Aplicativa

Tendencias en Seguridad de Bases

de Datos

• Existen otras implementaciones de acceso a los datos basados en registros y no sólo en tablas, la forma en la que se implementan las reglas son lo que hacen la diferencia.– Existen implementaciones actuales que permiten colocar etiquetas a los registros de una tabla y basados en estos registros se permite el acceso a los usuarios a los datos.

– Otra implementación incluye el acceso a los datos en cierto horario del día.

– También se puede hacer basados en la dirección IP desde donde se accede a los datos.

Módulo IV.- Seguridad Aplicativa

Tendencias en Seguridad de Bases

de Datos

• Cifrado.

– Dependiendo de los procesos y la importancia de los datos es probable que se desee manejar el cifrado de los mismos.

– Siempre se ha podido cifrar la información en la Base de Datos, pero el encargado de cifrar y descifrar los datos es la aplicación, es decir el programador.

– El algoritmo de cifrado y descifrado es propietario.

– No necesariamente se cifran los datos en la Base de Datos, es posible que se quiera que estos se cifren al momento de ser enviados entre el servidor y el cliente o al revés.

Page 26: Seguridad en las aplicaciones informáticas

26

Módulo IV.- Seguridad Aplicativa

Tendencias en Seguridad de Bases

de Datos

• Actualmente el DBMS es el encargado de

mantener la información cifrada.

• Ofrecen mecanismos de cifrado y descifrado que

permiten ofrecer mayor seguridad en el acceso a

los datos.

• Si por alguna razón el acceso a los datos es

violado, se tendría que descifrar la información.

• El cifrado se tiene entonces para los datos en

reposo, en movimiento o para los respaldos.

Módulo IV.- Seguridad Aplicativa

Tendencias en Seguridad de Bases

de Datos

• Administración de usuarios.– De manera original los DBMS ofrecen mecanismos tradicionales de administración de usuarios.

– Hoy en día se han ajustado estos mecanismos para ofrecer una administración de los usuarios parecida a la que se tiene en el Sistema Operativo, incrementando la seguridad en el manejo de los mismos, haciendo más difícil el que se trate de robar la identidad.

– Algunas características que se manejan:• Caducidad de contraseña.

• Algoritmo de validación de contraseña.

• Intentos fallidos.

• Vigencia de la cuenta.