viernes, 22 de junio de 2018

Ataques Web - Referencia directa insegura a objetos

Una referencia directa a objetos ocurre cuando un desarrollador expone una referencia a un objeto de implementación interno, tal como un fichero, directorio, o base de datos. Sin un chequeo de control de acceso u otra protección, los atacantes pueden manipular estas referencias para acceder a datos no autorizados. 


Como detectarlo


La mejor manera de poder comprobar si una aplicación es vulnerable a referencias inseguras a objetos es verificar que todas las referencias a objetos tienen las protecciones apropiadas. Para conseguir esto, considerar:
  1. Para referencias directas a recursos restringidos, la aplicación necesitaría verificar si el usuarios está autorizado a acceder al recurso en concreto que solicita. 
  2. Si la referencia es una referencia indirecta, la correspondencia con la referencia directa debe ser limitada a valores autorizados para el usuario en concreto.
Un análisis del código de la aplicación servirá para verificar rápidamente si dichas propuestas se implementan con seguridad. También es efectivo realizar comprobaciones para identificar referencias a objetos directos y si estos son seguros. Normalmente las herramientas automáticas no detectan este tipo de vulnerabilidades porque no son capaces de reconocer cuales necesitan protección o cuales son seguros e inseguros.

Como prevenirlos


Requiere seleccionar una forma de proteger los objetos accesibles para cada usuario (identificadores de objeto, nombres de fichero):

  1. Utilizar referencias indirectas por usuario o sesión. Esto evitaría que los atacantes accedieron directamente a recursos no autorizados. Por ejemplo, en vez de utilizar la clave del recurso de base de datos, se podría utilizar una lista de 6 recursos que utilizase los números del 1 al 6 para indicar cual es el valor elegido por el usuario. La aplicación tendría que realizar la correlación entre la referencia indirecta con la clave de la base de datos correspondiente en el servidor. 
  2. Comprobar el acceso. Cada uso de una referencia directa a un objeto de una fuente que no es de confianza debe incluir una comprobación de control de acceso para asegurar que el usuario está autorizado a acceder al objeto solicitado.

No hay comentarios:

Publicar un comentario