Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1...

21
1 Módulo IV.- Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda Parte Módulo IV.- Seguridad Aplicativa Agenda • Objetivo. Seguridad en la aplicación – Componentes de la aplicación. – Utilizando mecanismos de la Base de Datos. – Mecanismo de seguridad propietaria. – Autenticación.

Transcript of Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1...

Page 1: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

1

Módulo IV.- Seguridad Aplicativa

Seguridad en las aplicaciones

informáticas

Segunda Parte

Módulo IV.- Seguridad Aplicativa

Agenda

• Objetivo.

• Seguridad en la aplicación

– Componentes de la aplicación.

– Utilizando mecanismos de la Base de Datos.

– Mecanismo de seguridad propietaria.

– Autenticación.

Page 2: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

2

Módulo IV.- Seguridad Aplicativa

Objetivo

• Que el participante conozca los diferentes

mecanismos que puede utilizar para

asegurar el acceso a las tareas de la

aplicación y los datos de la misma.

• Mostrar las formas disponibles para

autenticar a un usuario.

Módulo IV.- Seguridad Aplicativa

Componentes de la aplicación

Page 3: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

3

Módulo IV.- Seguridad Aplicativa

Componentes de la aplicación.

• Backend.– Se refiere a la parte de la aplicación que se lleva a cabo del lado del servidor de bases de datos.

• Frontend.– Se refiere a la parte de la aplicación que se lleva a cabo en cualquier otro componente de la arquitectura que no es el servidor de bases de datos.

• Los componentes de la aplicación que se llevan a cabo en el backend se implementan a través de:– Reglas.

– Disparadores.

– Procedimientos almacenados.

– Funciones.

Módulo IV.- Seguridad Aplicativa

Componentes de la aplicación.

• Para asegurar el acceso a los objetos con los que se implementa la aplicación se utiliza el esquema de seguridad en la base de datos.

• Las reglas y los disparadores se asocian directamente a las tablas de un sistema.

• Al asegurar el acceso a las tablas a las que están asociados estos objetos, se está colocando seguridad a estos últimos.

• Los DBMS modernos permiten la creación de objetos:– XML.

– Java.

– Otros.

• La seguridad se puede llevar a cabo desde la base de datos.

Page 4: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

4

Módulo IV.- Seguridad Aplicativa

Componentes de la aplicación

• Desde la aplicación se tienen:

– Formas de captura.

– Formas maestro detalle.

– Interfaces que permiten la ejecución de programas

internos o externos.

• Permiten soportar:

– Procesos de negocio.

– Mantenimiento a los objetos de validación.

– Mantenimiento a los objetos que soportan la aplicación.

Módulo IV.- Seguridad Aplicativa

Componentes de la aplicación

• Ejemplos:– La pantalla que permite mandar a ejecutar el proceso de cálculo de la nómina, el programa de la nómina esta hecho en lenguaje C.

• Interfaz que permite la ejecución de un programa externo.

• El cálculo de la nómina es un proceso de negocio.

• Necesita ejecutar un programa externo.

– La pantalla que permite mantener la información de las empresas con las que la compañía tiene algún tipo de relación.

• Forma de captura.

• Mantenimiento a los objetos que soportan la aplicación.

• Necesita todos los privilegios sobre la tabla de empresas.

Page 5: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

5

Módulo IV.- Seguridad Aplicativa

Componentes de la aplicación

• Ejemplos:

– La pantalla que permite mantener la información de los tipos de contrato que maneja la empresa.• Forma de captura.

• Mantenimiento a los objetos de validación.

• Necesita todos los permisos sobre la tabla tipo_contrato.

– La pantalla que permite capturar una orden y los componentes de la misma.• Forma maestro detalle.

• Proceso de negocio.

• Necesita todos los permisos sobre orden y detalle_orden.

Módulo IV.- Seguridad Aplicativa

Seguridad en la aplicación utilizando los mecanismos de la

Base de Datos.

Page 6: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

6

Módulo IV.- Seguridad Aplicativa

Aplicación y Base de Datos• Como ya vimos en el tema pasado se pueden asegurar los datos, los objetos y el acceso a ambos en una base de datos a través de los mecanismos que ofrece el manejador de la base de datos.

• También vimos que para su implementación se hace a través de roles.

• Consideraciones generales del rol y el usuario en la aplicación.

– El usuario no tiene ningún privilegio por omisión.

– El rol es “activado” como primer tarea de la aplicación.

– La aplicación puede intentar “activar” más de un rol en forma escalonada, si es que se puede utilizar más de uno.

– El usuario debe tener asignado el rol.

– Si esto es cierto, tendrá activo el rol mientras esta dentro de la aplicación.

– El rol debe estar protegido por contraseña.

– Se recomienda que el usuario no tenga acceso a la base de datos a través de clientes de acceso directos, interfaces SQL.

Módulo IV.- Seguridad Aplicativa

Aplicación y Base de Datos

• Consideraciones generales desde la aplicación.

– La programación de las formas se puede hacer de manera normal, pero se recomienda un manejo especial de errores de acceso y uso de los objetos y datos de la base a utilizar.• No recomienda que los errores indiquen de manera exacta el objeto sobre el que se tiene el problema.

• Se deben manejar errores genéricos pero que indiquen al equipo de soporte la categoría del error para poder ofrecer un buen servicio.

– Se recomienda el manejo de dos roles, uno de lectura y otro de lectura y escritura.

Page 7: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

7

Módulo IV.- Seguridad Aplicativa

Aplicación y Base de Datos

• Usuario con rol de lectura y escritura.– El usuario puede utilizar el total de la funcionalidad de la aplicación.• En las formas de captura y maestro detalle.

– Realiza búsquedas.

– Inserta datos.

– Actualiza datos.

– Borra datos.

– Obtiene reportes.

• El usuario con rol de sólo lectura.– El usuario sólo puede consultar información.

• En las formas de captura y maestro detalle.– Realiza búsquedas.

– Obtiene reportes.

Módulo IV.- Seguridad Aplicativa

Aplicación y Base de Datos

• El manejo de errores es fundamental.

– Si un usuario intenta utilizar alguna de las operaciones que no están permitidas.

• El sistema debe indicar un error al intentar realizar la operación.

• Debe permitir al usuario continuar operando el sistema.

• ¿Qué sucede con las formas de interfaz y por lo tanto con la ejecución de programas internos y externos?

Page 8: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

8

Módulo IV.- Seguridad Aplicativa

Aplicación y Base de Datos

• En las formas de interfaz.– Ejecuta funciones y procedimientos almacenados.

– Ejecuta objetos XML, Java o de otra clase en la base de datos.

– Ejecuta programas externos.

– Ejecuta reportes de resultados.

• Se deben clasificar:– Los que modifican datos.

• Se dan permisos de ejecución en el rol de lectura y escritura.

– Los que obtienen datos.• Se dan permisos de ejecución en el rol de sólo lectura y en el de lectura y escritura.

• El problema principal viene con los programas externos.

Módulo IV.- Seguridad Aplicativa

Aplicación y Bases de Datos

• Algunos DBMS permiten ejecutar desde el software a los programas externos.– Se puede crear un procedimiento almacenado o una función para mandar a ejecutar el programa.

– Se otorgan permisos de ejecución sobre el PA o la función al rol o roles necesarios.

• Si se va a mandar a ejecutar el programa desde la aplicación.– Se puede preguntar cual es el rol con el que el usuario entro y con base a esta información saber si se puede mandar a ejecutar el programa.

• Si se utiliza esta clase de seguridad:– Los usuarios con rol de lectura y escritura y los de sólo lectura pueden acceder a todas las formas de una aplicación.

Page 9: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

9

Módulo IV.- Seguridad Aplicativa

Construyendo un esquema de

seguridad propietario

Módulo IV.- Seguridad Aplicativa

Acceso a los Datos y Objetos de la

Base de Datos

• Hasta ahora hemos visto que para acceder a los datos o a los objetos de la base de datos se requieren privilegios.

• Su implementación es a través de roles.

• Cuando se construye un esquema de seguridad propietario.– Se pueden generar dos roles generales, sobre todas las bases de datos de todos los sistemas.

• Lectura y escritura.

• Sólo lectura.

– Se pueden generar dos roles por aplicación, únicamente sobre los objetos que utiliza la aplicación.

• Lectura y escritura.

• Sólo lectura.

Page 10: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

10

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de

seguridad

• Las aplicaciones realizan tareas que son

implementadas a través de formas de la

aplicación.

• Los tipos de formas las vimos al principio

del tema.

• En la aplicación es posible agrupar las

formas y se generan menús y submenús.

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de seguridad• Ejemplo.

– Se construyo el Sistema Integral de Recursos Humanos y se esta construyendo la interfaz general de acceso.

– El primer paso es la construcción de los menús.• Mantenimiento a catálogos.

– Información General.

» País.

» Estado.

» Delegación-Municipio.

» Tipo-Teléfono.

– Control de Asistencia.

» Eventos de control de asistencia.

» Justificantes.

– Nómina.

» Percepciones.

» Deducciones.

– Generales de Recursos Humanos.

» Puestos.

» Plazas.

• Control de asistencia.

• Control de Nómina.

• Mantenimiento general de los datos de empleado.

Page 11: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

11

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de seguridad

• Los sistemas modernos se construyen utilizando:– Lenguajes 4GL.

– Lenguajes basados en objetos.

• Estas características de los lenguajes facilitan la implementación de un esquema de seguridad propietario.

• El esquema general de la composición de una aplicación:– Aplicación.

• Menús.– Submenús.

» Submenú o tarea.

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de seguridad

Aplicación

Menú

Submenú

Tarea

Page 12: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

12

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de seguridad

• Al usuario lo que le interesa es poder utilizar una forma, que le ofrece el medio para poder llevar a cabo su trabajo.

• De la misma forma que en la base de datos no es recomendable asignar privilegios al usuario por lo que se recomienda la creación de un objeto parecido al rol, en nuestro caso le llamaremos clase.

• Las clases juegan el mismo papel del rol, un objeto en el que se representa de manera general a un usuario que comparte características con un grupo de usuarios.

• Los permisos de acceso a las formas se le otorgan a esta clase.

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de seguridad

Clase

Clase_Objeto

Aplicación

Menú

Submenú

Tarea

Page 13: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

13

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de seguridad

• Los objetos de la aplicación se pueden modelar a partir de una sola entidad.

• Generamos la entidad objeto, está contendrá la información que describe a un objeto de la aplicación.

• Se genera una entidad del tipo catálogo que contiene los tipos de objetos contenidos en la aplicación.

• Parte de los atributos que describen al objeto es el nombre del objeto, su fecha de actualización.

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de

seguridad

Objeto

Tipo_ObjetoClase

Clase_Objeto

Page 14: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

14

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de seguridad• En los objetos a los que se hace referencia en la aplicación se pueden realizar operaciones.

• En las formas de captura o en las maestro – detalle.– Crear un nuevo registro.

– Actualizar un registro.

– Borra un registro.

– Buscar datos.

– Adicionalmente se pueden manejar reportes de información.

• Para cada operación se tienen objetos de la forma (normalmente botones) que permiten ejecutarla.

• En nuestro esquema de seguridad es necesario indicar que operaciones puede llevar a cabo la clase dentro de la forma.

• Por lo que se necesita un catálogo que nos permita definir las operaciones posibles en la aplicación.

• Aquí se puede optar por un mayor detalle en donde indicamos que operaciones son posibles en una forma.

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de seguridad

Objeto

Tipo_ObjetoClase

Clase_Objeto

OperacionObjeto-Operacion

Asignando las operaciones posibles en una forma

Page 15: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

15

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de seguridad

Objeto

Tipo_ObjetoClase

Clase_Objeto

Operacion

Asignando las operaciones posibles en la clase

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de

seguridad

• Ahora las clases generadas son asignadas a

los usuarios de las diferentes aplicaciones.

Page 16: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

16

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de seguridad

Objeto

Tipo_ObjetoClase

Clase_Objeto Operacion

Objeto-OperacionUsuario

Usuario-Clase

Módulo IV.- Seguridad Aplicativa

Construyendo el esquema de seguridad

• ¿Cómo funciona?– Una vez que el usuario es autenticado.

• La aplicación valida la clase del usuario.

• Con la clase configura los menús.– Deshabilita las opciones a las que el usuario no tiene derecho de acceder.

• Una vez que selecciona una forma, las operaciones que se pueden llevar a cabo se configuran de acuerdo a los privilegios del esquema de seguridad.– Se deshabilitan los botones de las operaciones que no puede llevar a cabo el usuario.

• Se tiene un usuario que es el responsable del esquema de seguridad y es el único con privilegios de modificación.

• Todos los usuarios cuentan con permisos de sólo lectura sobre el esquema.

Page 17: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

17

Módulo IV.- Seguridad Aplicativa

Autenticación

Módulo IV.- Seguridad Aplicativa

El proceso

• El proceso de autenticación consiste en los pasos necesarios para validar a un usuario como válido dentro de la aplicación.

• Hasta este punto el proceso de autenticación lo ha realizado el software de administración de la Base de Datos.

• Es posible establecer mecanismos alternos de autenticación.– La Base de datos.

– Autenticación propietaria.

– Autenticación de un tercero.

Page 18: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

18

Módulo IV.- Seguridad Aplicativa

El Proceso

Proceso de

AutenticaciónCorrecto Aplicación

Si

No

Módulo IV.- Seguridad Aplicativa

Base de Datos

• En el Tema 2 vimos que la base de datos ha aumentado sus estándares de seguridad en la autenticación de los usuarios.

• Cada usuario de cada aplicación requiere su usuario correspondiente en la Base de Datos.

• Esta se encarga de mantener seguro el almacenamiento de la contraseña.– Su vigencia.

– Se encarga de asegurarse de que sean contraseñas seguras.

– De validar las violaciones al sistema.

– De que no se pueda acceder a la contraseña de un usuario.

Page 19: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

19

Módulo IV.- Seguridad Aplicativa

Base de Datos

Valida contraseña

Valida vigencia

Valida permisos

Valida estado

Módulo IV.- Seguridad Aplicativa

Propietaria• Para poder trabajar con los objetos y datos de la base de datos se necesita forzosamente un usuario de Base de Datos.

• Sin embargo en los sistemas multicapa por la misma arquitectura del sistema no es posible tener un usuario de base de datos por usuario de la aplicación.

• En estos casos se utiliza la autenticación propietaria.

• El desarrollador genera su tabla de usuarios, en donde al menos necesita como atributos el nombre del usuario y su contraseña.

• Está se recomienda que se almacene encriptada.

• El desarrollador es el responsable de:– Validar el estado de la contraseña.

– Generar los mecanismos apropiados de codificación y decodificación o puede utilizar los que se entregan con el software que administra las bases de datos.

– Validar la vigencia de la contraseña.

– Validar los permisos del usuario.

Page 20: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

20

Módulo IV.- Seguridad Aplicativa

Propietaria

• Este tipo de autenticación utiliza un usuario genérico para conectarse a la base de datos.

• Todos los usuarios una vez que están conectados utilizarán a este usuario para trabajar con la base de datos.

• Una de las desventajas más fuertes que se tiene en este esquema es que desde las herramientas de administración del DBMS, no se sabe con exactitud quien es el usuario que esta utilizando la aplicación.

Módulo IV.- Seguridad Aplicativa

Autenticación por un tercero

• Este tipo de autenticación nace en un principio por la necesidad de colocar mecanismos más seguros en el proceso de autenticación.

• En la actualidad se maneja principalmente por:

– Necesidad de integrar las aplicaciones de las organizaciones y mejorar la experiencia del usuario al utilizarlas.

– La utilización de los directorios permiten integrar el manejo de usuarios y conocer entre otras cosas que usuario se encuentra activo en determinado momento.

• Es necesario relacionar a los usuarios.

– Desde la base de datos, cada usuario de la base de datos corresponde con un usuario del directorio.

– Desde la aplicación cada usuario aplicativo corresponde con un usuario del directorio.

• Es necesario que la base de datos o la aplicación tomen al directorio como la entidad encargada de llevar a cabo la validación.

Page 21: Seguridad en aplicaciones 2cursos.itam.mx/seguridad/modulo4/Seguridad en... · 2007-10-08 · 1 Módulo IV.-Seguridad Aplicativa Seguridad en las aplicaciones informáticas Segunda

21

Módulo IV.- Seguridad Aplicativa

Autenticación por un tercero

Relación

de

usuarios

DBMS

Directorio

Valida contraseña

Valida vigencia

Valida estado