viernes, 29 de junio de 2018

Ataques Web - Ausencia de control de acceso a funciones

La mayoría de aplicaciones web verifican los derechos de acceso a nivel de función antes de hacer visible en la misma interfaz de usuario. A pesar de esto, las aplicaciones necesitan verificar el control de acceso en el servidor cuando se accede a cada función. Si las solicitudes de acceso no se verifican, los atacantes podrán realizar peticiones sin la autorización apropiada.

Como detectarlo


La mejor manera de determinar si una aplicación falla en restringir adecuadamente el acceso a nivel de funcionalidades es verificar cada funcionalidad de la aplicación. Usando un proxy, navegue su aplicación con un rol privilegiado. Luego visite reiteradamente páginas restringidas usando un rol con menos privilegios. Si el servidor responde a ambos por igual, probablemente es vulnerable. Algunas pruebas de proxies apoyan directamente este tipo de análisis.

También puede revisar la implementación del control de acceso en el código. Intente seguir una solicitud unitaria y con privilegios a través del código y verifique el patrón de autorización. Luego busque en el código para detectar donde no se está siguiendo ese patrón.

Las herramientas automatizadas no suelen encontrar estos problemas.


Como prevenirlo


La aplicación debería tener un módulo de autorización consistente y fácil de analizar, invocado desde todas las funciones de negocio.
Frecuentemente, esa protección es provista por uno o más componentes externos al código de la aplicación.


  1. El proceso para gestión de accesos y permisos debería ser actualizable y auditable fácilmente. No lo implemente directamente en el código sin utilizar parametrizaciones. 
  2. La implementación del mecanismo debería negar todo acceso por defecto, requiriendo el establecimiento explícito de permisos a roles específicos para acceder a cada funcionalidad. 
  3. Si la funcionalidad forma parte de un workflow, verifique y asegúrese que las condiciones del flujo se encuentren en el estado apropiado para permitir el acceso.
NOTA: La mayoría de las aplicaciones web no despliegan links o botones para funciones no autorizadas, pero en la práctica el “control de acceso de la capa de presentación” no provee protección. Debería implementar chequeos en los controladores y/o lógicas de negocios.

No hay comentarios:

Publicar un comentario