Pular para o conteúdo

ZAP (Zed Attack Proxy) - Cheatsheet do Scanner de Segurança para Aplicações Web

ZAP (Zed Attack Proxy) - Cheatsheet do Scanner de Segurança para Aplicações Web

ZAP (Zed Attack Proxy, mantido pela Checkmarx, anteriormente um destaque OWASP) é uma ferramenta dynamic application security testing (DAST) gratuita e de código aberto. Funciona como um proxy de interceptação entre o navegador e um alvo, realizando scannings passivos e ativos em aplicações web e APIs para encontrar vulnerabilidades. Combina um spider/crawler, fuzzer, scanner ativo, suporte WebSocket e scanning de APIs REST/GraphQL/SOAP — utilizável interativamente via GUI ou headlessly via CLI e API para CI/CD.

Instalação

PlatformCommand
Docker (recomendado para CI)docker pull zaproxy/zap-stable
Debian/Ubuntufaça download do instalador no site ZAP
macOS (Homebrew)brew install --cask zap
Multiplataformafaça download do pacote multiplataforma (requer Java)
Verificarzap.sh -version (ou zap.bat no Windows)

Modos de Execução

CommandDescrição
zap.shInicie a GUI do desktop
zap.sh -daemon -host 0.0.0.0 -port 8080Daemon headless com a API
zap.sh -cmd -quickurl https://target -quickout report.htmlScan rápido único para um relatório
docker run -t zaproxy/zap-stable zap-baseline.py -t https://targetScan baseline (passivo) no Docker

Automation Framework (Scans com Script)

Os scripts de scan empacotados do ZAP são o caminho mais rápido para integração CI.

ScriptPropósito
zap-baseline.py -t URLScan passivo + spider (rápido, seguro para CI)
zap-full-scan.py -t URLBaseline + scan de ataque ativo
zap-api-scan.py -t openapi.json -f openapiScan de uma API a partir de uma definição OpenAPI/SOAP/GraphQL
-r report.htmlEscreva um relatório HTML
-J report.jsonEscreva um relatório JSON
-c config.confFiltro de alerta / configuração de regra
# Scan baseline amigável ao CI, falhe a build em descobertas
docker run -t zaproxy/zap-stable zap-baseline.py \
  -t https://staging.example.com -r zap-report.html

Componentes Principais

ComponentPapel
ProxyIntercepte/inspecione/modifique tráfego HTTP(S)
SpiderRastreie a aplicação para descobrir URLs
Ajax SpiderRastreie aplicações pesadas em JS via navegador real
Passive ScanSinalize problemas do tráfego observado (sem ataques)
Active ScanEnvie payloads de ataque para encontrar vulnerabilidades
FuzzerInjete listas de payload em requisições

Configuração de Proxy

StepComo
Defina proxy do navegadorAponte o navegador para localhost:8080
Instale o certificado CA do ZAPImporte o certificado raiz do ZAP para interceptar HTTPS
Explore manualmenteNavegue pela aplicação; o ZAP registra o tráfego
Depois scanSpider + scan ativo na árvore descoberta

A API (Automação)

Com o daemon executando, dirija o ZAP via HTTP.

EndpointAção
/JSON/spider/action/scan/?url=...Inicie um spider
/JSON/ascan/action/scan/?url=...Inicie um scan ativo
/JSON/core/view/alerts/Recupere descobertas
/OTHER/core/other/htmlreport/Gere um relatório HTML
API keyPasse apikey=... com requisições

Autenticação & Contexto

ConceitoUso
ContextDefina o escopo do alvo e autenticação
Session mgmtCookies/HTTP/autenticação baseada em script
AutenticaçãoAutenticação por formulário, JSON, HTTP ou script
UsersTeste como usuários autenticados

Fluxos de Trabalho Comuns

# Baseline passivo rápido contra staging em CI
zap-baseline.py -t https://staging.example.com -r report.html

# Scan de uma API REST a partir de seu spec OpenAPI
zap-api-scan.py -t https://api.example.com/openapi.json -f openapi -J out.json

# Scan ativo completo (apenas alvos autorizados)
zap-full-scan.py -t https://target.example.com -r full.html

ZAP vs Outras Ferramentas DAST

AspectoZAPNucleiBurp SuiteNikto
ModeloProxy + crawl + DAST ativoScanner de CVE baseado em templateProxy + manual + scannerScanner de misconfigurações de servidor
CustoGratuito/código abertoGratuito/código abertoGratuito + Pro pagoGratuito
API/CIForte (API + scripts)ForteExtensões ProCLI
Melhor paraFull app DAST, CIVerificações de CVE conhecidas rápidasTestes de penetração manuaisVerificações rápidas de servidor

Emparelhamento comum: Nuclei para detecção rápida de CVEs conhecidos mais ZAP para crawling DAST em nível de aplicação.

Recursos