Mapeo de Ejecución de Rutas (Map Execution Paths Through Application)

Mapeo de Ejecución de Rutas (Map Execution Paths Through Application)

Introducción

Cuando se ejecutan pruebas de seguridad en una aplicación Web, una de las fases iniciales es entender el contexto de la aplicación, considerando al menos: los tipos datos que se almacenan/procesan/transmiten, uso de la aplicación, procesos de negocio que soporta, usuarios que utilizan la aplicación, transacciones que se ejecutan desde la aplicación.

Dentro de este análisis inicial se debe identificar los recursos que se acceden para la ejecución de cada flujo que sigue cada proceso soportado por la aplicación, esto nos ayudará a entender el funcionamiento de la aplicación, definir un alcance y posteriormente ejecutar pruebas más específicas.

Desarrollo

En la guía de pruebas de seguridad de OWASP para aplicaciones Web (WSTG-INFO-07 Map Execution Paths Through Application) se recomienda que antes de realizar pruebas de seguridad, se realice un levantamiento de información para entender la estructura de la aplicación, esto es importante ya que sin este entendimiento resulta complicado definir un alcance para la ejecución de pruebas, así como asegurar que se están incluyendo los recursos críticos del sistema en el alcance de la revisión.

Para analizar este caso supongamos que estamos validando una aplicación de venta de artículos online.

La aplicación tiene al menos los siguientes procesos:

Registro de usuario Consulta de artículos Compra de artículos

Análisis del flujo

Inicialmente desde la perspectiva de proceso, estos flujos pueden ser documentados, con la siguiente descripción o diagrama de flujo.

enter image description here

Figura 1. Diagrama de Flujo del Registro de Usuarios en la aplicación Web

Análisis HTTP con Proxy

La idea en este punto es ejecutar el proceso identificado dentro del sistema para que el proxy HTTP registre las URLs/módulos utilizados.

En este ejemplo el proceso (Registro de Usuarios) conlleva el acceso a distintos módulos y recursos de la aplicación, los cuales se pueden identificar/documentar a través de un proxy HTTP, con esta herramienta podemos mapear el flujo que sigue el proceso de registro de usuarios en la aplicación.

enter image description here

Figura 2. Resultados del Análisis proxy HTTP

Considerando el diagrama de flujo y con los resultados de la ejecución del proxy HTTP, podemos identificar los recursos (URLs, módulos) que utiliza la aplicación para la ejecución del proceso de registro de usuarios.

En este ejemplo vemos que al menos involucra el acceso a 3 recursos de la aplicación, 2 son accesados por medio del método HTTP GET y 1 por medio del método POST HTTP.

De esta manera podemos diseñar pruebas de seguridad definiendo un alcance de acuerdo a los módulos de la aplicación utilizados, partiendo de los procesos que le interesan al negocio.

En este enlace podrá encontrar un HTTP proxy desarrollado en python/web2py y mitmproxy, registra los resultados (URLs/módulos) utilizados en la ejecución de un proceso en el sistema, los resultados son enviados a una base de datos para su análisis, adicionalmente descarga el código público de los recursos/módulos registrados, lo que permite hacer una análisis de código estático para validar que no se exponga información sensible.


Author: admin

GRCbit