22 mayo 2012

DoRodri - Falla de Restricción de Acceso a URL

Como proyecto de final de master de seguridad, se planteó analizar una de las vulnerabilidades top 10 de OWASP, en concreto la vulnerabilidad es conocida como, Falla de Restricción de Acceso a URL. Cómo resultado de este análisis se ha desarrollado una herramienta con el objetivo servir de ayuda en auditorias de caja blanca para detectar esta vulnerabilidad. 

Debido a la dificultad de poder detectar de manera automática cuando esta previsto restringir el acceso y cómo saber si este ha sido restringido correctamente, unas veces se verá un mensaje de error, otras un mensajito más amigable dentro del interfaz de la propia aplicación web y otras veces, las que menos, una pantalla en blanco. Se ha optado por otra solución a nuestro entender más lógica. La herramienta muestra para cada url los datos estadísticos más básicos al emplear cada perfil: número de letras, con y sin blancos, y número de líneas. Y permite para cada url acceder a una ventana comparativa en la que contrastar las diferencias a mayor profundidad entre parejas de perfiles.



La herramienta, DoRodri, ha sido desarrollada en .Net y se encuentra bastante estable aunque seguramente sujeta a algunos bugs. 

Para su funcionamiento es preciso obtener previamente: 
  • Un fichero con las urls a analizar: se puede obtener de programas como el OWASP ZAP con la opción “exportar todas las urls a aun fichero”. 
  • Un listado de cookies de identificadores de sesión validos para los distintos perfiles a analizar. Una vez obtenido lo anterior es hora de pasárselo al programa para que analice la web. 

El programa de manera automática, tras cargar el fichero de urls, genera un árbol con la estructura de la web a analizar, obtiene las capturas de pantalla de cada perfil y muestra la opción de descargar los códigos fuente para estimar diferencias a nivel de código html. 


Una vez obtenida la información por parte del programa empieza el trabajo humano, hay que comparar para cada url, o las que el analista estime oportuno, si el control se realiza de manera correcta. 

Al pulsar sobre cada miniatura se muestra una ventana comparativa en la que muestra la respuesta visual que arroja la aplicación web para cada perfil. Adicionalmente en la parte inferior se aprecian las estadísticas sobre el número de líneas y caracteres, y en la superior se realiza una comparación a nivel de código indicando el grado de diferencia que hay entre los dos códigos html mediante el cálculo del factor de distancia de Damerau–Levenshtein. Entendiendose como tal al número mínimo de operaciones requeridas para transformar una cadena de caracteres en otra. Se entiende por operación, bien una inserción, eliminación, sustitución o transposición de dos caracteres.



Esta información estadística permite para perfiles con privilegios cercanos, en los cuales la interfaz es muy similar, obtener datos bajando al nivel de código, sobre el grado de similitud real que hay entre ambos. Para obtener la herramienta y más información se puede acceder a la página del proyecto: 

Dirección de la herramienta: http://failuretorestrictaccess.wordpress.com/ 

Todo comentario, sugerencia o crítica será bienvenida. 

¡Gracias!

Autores:
Fernando Andina.
José Miguel Soriano.

2 comments :

LeGNa dijo...

Gracias a vosotros por la herramienta y por publicar el código.

Felicidades por el proyecto!

Saludos

carlos fouz dijo...

Muy interesante, yo tb estoy haciendo este master pero en catalunya y me has dado buenas ideas para el proyecto... aunk yo voy un poco más lento que tu por lo k veo y lo estoy cursando en 2 años :)

gracias,
Carlos Fouz