Ir al contenido

ZAP (Zed Attack Proxy) - Hoja de Referencia del Escáner de Seguridad Web

ZAP (Zed Attack Proxy) - Hoja de Referencia del Escáner de Seguridad Web

ZAP (Zed Attack Proxy, mantenido por Checkmarx, anteriormente un proyecto insignia de OWASP) es una herramienta gratuita y de código abierto de pruebas dinámicas de seguridad de aplicaciones (DAST). Se sitúa entre tu navegador y un objetivo como un proxy de interceptación, y luego escanea de forma pasiva y activa aplicaciones web y APIs en busca de vulnerabilidades. Combina un spider/crawler, un fuzzer, un escáner activo, soporte de WebSocket y escaneo de APIs REST/GraphQL/SOAP — utilizable de forma interactiva vía una GUI o sin cabeza vía CLI y API para CI/CD.

Instalación

PlataformaComando
Docker (recomendado para CI)docker pull zaproxy/zap-stable
Debian/Ubuntudescarga el instalador desde el sitio de ZAP
macOS (Homebrew)brew install --cask zap
Multiplataformadescarga el paquete multiplataforma (requiere Java)
Verificarzap.sh -version (o zap.bat en Windows)

Modos de Ejecución

ComandoDescripción
zap.shIniciar la GUI de escritorio
zap.sh -daemon -host 0.0.0.0 -port 8080Demonio sin cabeza con la API
zap.sh -cmd -quickurl https://target -quickout report.htmlEscaneo rápido de una sola vez a un informe
docker run -t zaproxy/zap-stable zap-baseline.py -t https://targetEscaneo de línea base (pasivo) en Docker

Framework de Automatización (Escaneos con Script)

Los scripts de escaneo empaquetados de ZAP son la vía más rápida para la integración con CI.

ScriptPropósito
zap-baseline.py -t URLEscaneo pasivo + spider (rápido, apto para CI)
zap-full-scan.py -t URLLínea base + escaneo de ataque activo
zap-api-scan.py -t openapi.json -f openapiEscanear una API desde una definición OpenAPI/SOAP/GraphQL
-r report.htmlEscribir un informe HTML
-J report.jsonEscribir un informe JSON
-c config.confConfiguración de filtros de alertas / reglas
# Escaneo de línea base apto para CI, falla la compilación ante hallazgos
docker run -t zaproxy/zap-stable zap-baseline.py \
  -t https://staging.example.com -r zap-report.html

Componentes Principales

ComponenteRol
ProxyInterceptar/inspeccionar/modificar el tráfico HTTP(S)
SpiderRastrear la aplicación para descubrir URLs
Ajax SpiderRastrear apps con mucho JS mediante un navegador real
Escaneo pasivoSeñala problemas a partir del tráfico observado (sin ataques)
Escaneo activoEnvía cargas de ataque para encontrar vulnerabilidades
FuzzerInyectar listas de cargas en las solicitudes

Configuración del Proxy

PasoCómo
Configurar el proxy del navegadorApuntar el navegador a localhost:8080
Instalar el certificado CA de ZAPImportar el certificado raíz de ZAP para interceptar HTTPS
Exploración manualNavegar la app; ZAP registra el tráfico
Luego escanearSpider + escaneo activo del árbol descubierto

La API (Automatización)

Con el demonio en ejecución, controla ZAP sobre HTTP.

EndpointAcción
/JSON/spider/action/scan/?url=...Iniciar un spider
/JSON/ascan/action/scan/?url=...Iniciar un escaneo activo
/JSON/core/view/alerts/Recuperar hallazgos
/OTHER/core/other/htmlreport/Generar un informe HTML
Clave de APIPasar apikey=... con las solicitudes

Autenticación y Contexto

ConceptoUso
ContextoDefinir el alcance del objetivo y la autenticación
Gestión de sesiónSesiones basadas en cookies/HTTP/script
AutenticaciónAutenticación por formulario, JSON, HTTP o script
UsuariosProbar como usuarios autenticados

Flujos de Trabajo Comunes

# Línea base pasiva rápida contra staging en CI
zap-baseline.py -t https://staging.example.com -r report.html

# Escanear una API REST desde su especificación OpenAPI
zap-api-scan.py -t https://api.example.com/openapi.json -f openapi -J out.json

# Escaneo activo completo (solo objetivos autorizados)
zap-full-scan.py -t https://target.example.com -r full.html

ZAP frente a Otras Herramientas DAST

AspectoZAPNucleiBurp SuiteNikto
ModeloProxy + rastreo + DAST activoEscáner de CVE por plantillasProxy + manual + escánerEscáner de configuración de servidor
CosteGratis/código abiertoGratis/código abiertoGratis + Pro de pagoGratis
API/CIFuerte (API + scripts)FuerteExtensiones ProCLI
Mejor paraDAST completo de apps, CIComprobaciones rápidas de CVE conocidosPentesting manualComprobaciones rápidas de servidor

Emparejamiento común: Nuclei para la detección rápida de CVE conocidos más ZAP para el DAST a nivel de aplicación con rastreo.

Recursos