Control de Acceso y Autenticación

Área SEG_Acceso

Se analizan la vulnerabilidades que pueden darse en las aplicaciones a la hora de identificar sus usuarios y los permisos que estos poseen. Recogiendo una serie de recomendaciones para el desarrollo de aplicaciones, que tenidas en cuenta, ayuden a mitigar los riesgos de producirse situaciones como el escalado de privilegios o la suplantación de identidad.

Hay dos procesos distintos que intervienen cuando se trata de permitir a un usuario acceder a páginas específicas de un sitio web:

La autenticación es el proceso de identificación de un individuo sobre la base de sus credenciales (normalmente nombre de usuario y contraseña)

El objetivo de la autenticación es decidir si "alguien es quien dice ser". Hay tres formas de reconocer a un usuario, que se conocen como factores:
  • Algo que saben, como una contraseña o PIN

  • Algo que tienen, tal como una licencia de conducir o tarjeta de crédito

  • Algo que son, como las huellas digitales o la inserción de los patrones

El control de acceso es el proceso de decidir si el usuario tiene permiso para ejecutar algo o no.

También llamado autorización, se refiere a la gestión del acceso a los recursos protegidos y al proceso de determinar si un usuario está autorizado a acceder a un recurso particular. Por ejemplo, muchas aplicaciones web cuentan con recursos que sólo están disponibles para los usuarios autenticados, recursos que sólo están disponibles para los administradores, y los recursos que están disponibles para todos.Así, al establecer privilegios de acceso a los usuarios podemos asegurar la confidencialidad y disponibilidad de la información; pero, además, podemos:
  • Que sólo las personas autorizadas podrán acceder a ciertos recursos (sistemas, equipos, programas, aplicaciones, bases de datos, redes, etc…) por sus funciones laborales.
  • Nos permiten identificar y auditar los accesos realizados, estableciendo controles de seguridad internos.
  • Documentar los procedimientos de acceso a las diferentes aplicaciones que tratan datos personales.
  • En definitiva, controlar los accesos desde diferentes vertientes: red, sistemas y aplicaciones.
Hoy en día es muy común la escalada de privilegios, que no es más que la obtención de los privilegios del administrador. Por ello, debe existir una política o normativa específica que establezca el uso de mecanismos para impedir intentos de escalado de privilegios en nuestras aplicaciones web.Se considera que un sistema aplica políticas para evitar el escalado de privilegios cuando: No es posible acceder a información del sistema que pueda ser utilizada para la escalada de privilegios, no es posible ejecutar acciones haciéndose pasar por otro usuario, etc.

Objetivos

  • Asegurar la identidad de los usuarios que acceden a las aplicaciones
  • Garantizar el acceso a recursos protegidos

Contenido del área

Recursos
Código Título Tipo Carácter
RECU-0563 Ataques de reflexión sobre la autenticación en Java Ejemplo Obligatorio
RECU-0559 Autenticación Referencia Obligatorio
RECU-0564 Cacheo del resultado de una operación privilegiada en Java Ejemplo Obligatorio
RECU-0562 Canal accesible por un punto no final en Java Ejemplo Obligatorio
RECU-0667 Comprobación de la perdida de autenticación sobre funciones significativas en Java Ejemplo Obligatorio
RECU-0555 Comprobar los permisos de un nodo específico utilizando node_access en Drupal Ejemplo Obligatorio
RECU-0566 Comprobar los permisos mediante la función user_access en Drupal Ejemplo Obligatorio
RECU-0210 Conceptos de seguridad en la capa de negocio mediante Spring Referencia Recomendado
RECU-0213 Configuración de Spring Security Referencia Recomendado
RECU-0556 Consultas para el acceso a nodos restringidos en Drupal Ejemplo Recomendado
RECU-0622 Controlador Java del DNI electrónico Referencia Recomendado
RECU-0675 Envío de credenciales por correo electrónico en Drupal Ejemplo No recomendado
RECU-0664 Limitación del número de autenticaciones en Java Ejemplo Recomendado
RECU-0565 Manejar los permisos mediante la función hook_perm() en Drupal Ejemplo Obligatorio
RECU-0582 Manejo de las contraseñas perdidas en PHP Ejemplo Obligatorio
RECU-0544 Manejo de permisos en métodos de EJB Ejemplo Obligatorio
RECU-0621 Portal CERES Referencia Recomendado
RECU-0666 Retardo tras autenticación fallida en PHP Ejemplo Recomendado
RECU-0650 Sistemas anti-bots Referencia Recomendado
RECU-0603 Uso de getPermissions() Ejemplo Obligatorio
RECU-0601 Uso de java.security.AllPermission Ejemplo Obligatorio
RECU-0674 Uso del modulo Login Security en Drupal Ejemplo Obligatorio
RECU-0602 Variables externas en bloques doPrivileged Ejemplo Obligatorio