Autenticación

RECU-0559 (Recurso Referencia)

Descripción

Entendemos por autorización como una parte del sistema operativo que protege los recursos del sistema permitiendo que sólo sean usados por aquellos consumidores a los que se les ha concedido derecho para ello.

El proceso de autorización se usa para decidir si la persona, programa o dispositivo determinado tiene permiso para acceder al dato, funcionalidad o servicio determinado.

La autorización tiene como objetivos:

  • Asegurar que únicamente usuarios autorizados puedan realizar acciones permitidas con su correspondiente nivel de privilegio.
  • Controlar el acceso a recursos protegidos mediante decisiones basadas en el rol o el nivel de privilegio.
  • Prevenir ataques de escalada de privilegios, como por ejemplo utilizar funciones de administrativas siendo un usuario anónimo o incluso un usuario autenticado.

Obviamente presenta una serie de vulnerabilidades que se catalogan de la siguiente manera:

  • Violación del Principio de menor privilegio, que se basa en la otorgación de privilegios a determinados usuarios para realizar acciones dentro del sistema de forma fraudulenta. El atacante accede y otorga privilegios de manera dota de habilidades y opciones de control para las que no tiene privilegios.
  • Acceso indebido a las listas de control de acceso. Muchos controles de acceso son inseguros al implantarse. Normalmente las aplicaciones mantienen una listas que permiten controlar el acceso a determinados recursos. El atacante basa su ataque sobre estas listas y modifica la misma, permitiéndose acceder a recursos para los que no esta autorizado.
  • Ruptura de los controles de autorización personalizados. La mayoría de los entornos aplicativos tienen mecanismos bien desarrollados de autorización. Muchas aplicaciones contienen sus propios mecanismos personalizados para la gestión de la autorización. Esto añade complejidad y posibles fallos. A menos que exista una razón explicita de evitar las funcionalidades ya incluidas, el código debería dejar paso al soporte propio del entorno.
  • Crear brecha de seguridad en una comprobación de autorización replicada. En el código, un error común es la de llevar a cabo una comprobación de la autorización copiando y pegando un trozo de código, o incluso peor, reescribiéndola cada vez. El atacante si crea una brecha de seguridad en esta comprobación puede atacar el código desde varios puntos de entrada Falta de Matrices de autorización. El atacante aprovecha la circunstancia de que no existen comprobaciones asociadas a la autorización de la ejecución de una función o vista y consigue ejecutar una determinada acción o código. Con ello puede provocar grandes fallos en el sistema.
  • Uso de tokens de autorización. Muchos desarrolladores de aplicaciones Web son reacios a utilizar almacenamiento de sesiones, por lo que recurren al lado del cliente, tanto en forma de cookies, como cabeceras o campos escondidos en formularios. Estos tokens son vulnerables a los atacantes por los que resulta mas sencillo obtener información, es recomendable hacer uso de tokens de autorización de manera que el usuario debe autenticarse previamente a obtener la autorización.
  • Acceso no controlado a un recurso protegido. Muchas aplicaciones realizan una comprobación para ver si tienen el permiso para realizar una acción en particular, pero no realizan la comprobación de si se permite pedir un recurso. Un atacante aprovecha esta debilidad y solicita recursos para los que no esta autorizado pero puede introducir los datos correctos para que se ejecute la acción solicitada Por ejemplo, en una aplicación de banca online podría ser el caso de comprobar si se permite transferir dinero, pero no valida si la cuenta desde la cual se transferirá es nuestra.
  • Acceso a información privilegiada de recurso protegido. Algunas aplicaciones generan contenido estático (pongamos el ejemplo de un informe de una transacción, en formato PDF), y permiten al servidor Web servir dicho contenido. A menudo, esto implica que un informe confidencial pueda resultar disponible para usuarios no autorizados.

Contenidos relacionados

Pautas
Área: Desarrollo » Seguridad » Control de Acceso y Autenticación
Código Título Tipo Carácter
LIBP-0253 Autenticación Libro de pautas Directriz Obligatoria