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:
- 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.
- Si la referencia es una referencia indirecta, la correspondencia con la referencia directa debe ser limitada a valores autorizados para el usuario en concreto.
Como prevenirlos
Requiere seleccionar una forma de proteger los objetos accesibles para cada usuario (identificadores de objeto, nombres de fichero):
- 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.
- 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