Procedimientos de escaneo dinámico

ZAP

Herramienta de escaneo Web Mobile Local API Extension Serverless Instrucciones
OWASP® Zed Attack Proxy (ZAP)

Usa el OWASP ZAP ; el contenedor de Docker de ZAP para realizar análisis dinámicos automatizados (DAST) en tu aplicación.  Los archivos de configuración predefinidos ya incluyen todos los CWE necesarios. Solo debes agregarlo a tu entorno y al comando de ejecución de Docker.

Para obtener la definición de cada tipo, haz clic aquí. Tipos de apps

Para realizar un análisis completo de aplicaciones web, para dispositivos móviles o internas, sigue estos pasos:

  1. Los análisis de DAST y de API se ejecutarán con la imagen de Docker de ZAP. Para aplicaciones web, para dispositivos móviles o internas, el análisis completo de ZAP se debe ejecutar en un entorno de producción-1 o de pruebas. 

  2. Descarga el archivo de configuración zap-casa-config.conf y navega a su directorio. 

  1. Genera un archivo de contexto para que se ejecute el análisis. Consulta las instrucciones de “Autenticación” que aparecen a continuación para obtener más detalles.

  1. Ejecuta el siguiente comando: 

docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-full-scan.py 
-t https://example.com -P 8080 
-c zap-casa-config.conf 
-x results-full.xml -n example.context -U username
  1. El resultado se guardará en un archivo en formato XML (ejemplo adjunto aquí: zap-results-full.xml)

Se puede realizar un análisis de API mediante los pasos que se indican a continuación:

  1. Para los análisis de API, usa el archivo de configuración zap-casa-api-config.conf

  1. Navega a su directorio y ejecuta el siguiente comando:

docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw 
-t owasp/zap2docker-stable zap-api-scan.py 
-t https://example.com -f openapi-P 8080 
-c zap-casa-api-config.conf 
-x results-full.xml
  1. El resultado se guardará en un archivo XML (ejemplo adjunto aquí: zap-results-api.xml )

Autenticación

Los análisis de ZAP deben realizarse con autenticación para comprender dónde se almacenan los datos del usuario y a qué se accede. Esto requiere configuración antes de ejecutar los análisis. La imagen de Docker de ZAP permite dos argumentos relacionados con la autenticación:

-n context_file

Es el archivo de contexto que se cargará antes de analizar el objetivo.

-U

Es el nombre de usuario que se usa en los análisis autenticados. El usuario se debe definir en el archivo de contexto determinado. 

Para establecer estos parámetros, se debe crear un archivo de contexto. Esto se puede hacer fácilmente a través de la IU de ZAP para computadoras.

contexto de Zap
  1. Establece el mecanismo de autenticación. Actualmente, ZAP admite cinco enfoques de autenticación:

    • Autenticación manual

    • Autenticación basada en formularios

    • Autenticación HTTP/NTLM

    • Autenticación basada en secuencias de comandos

    • Autenticación basada en JSON

Autenticación de zap
  1. Define tus parámetros de autenticación. Por lo general, se incluye la URL de acceso y el formato de carga útil (nombre de usuario y contraseña). Los parámetros obligatorios son específicos de los métodos de autenticación que se usan.
Zap Configurar autenticación
  1. Agrega un usuario y una contraseña válidos. Crea varios usuarios si la aplicación expone diferentes funciones según los roles.
Configura usuarios de Zap

Una vez que hayas configurado estos parámetros, podrás exportar el contexto como un archivo para que lo use como referencia el análisis.

Contexto de exportación de zap

Asegúrate de guardar el contexto en un lugar al que puedas acceder fácilmente, ya que deberás incluir la ruta de acceso al archivo como argumento para tu comando de análisis. Ahora, podrás ejecutar un análisis autenticado con el acceso del usuario especificado dentro del contexto. Ejemplo:

zap Create User
  docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw 
  -t owasp/zap2docker-stable zap-full-scan.py 
  -t https://example.com -P 8080 
  -c zap-casa-config.conf -x results-full.xml 
  -n /Users/DemoUser/Documents/Context.context -U test@example.com