OWASP ZAP - Encontrando vulnerabilidades Web

Criado por André Miranda Albuquerque em Cyber Security 31/07/2025
Compartilhar

OWASP ZAP: Guia Oficial para Blue Team - Segurança Web Proativa no Kali Linux

Baseado na documentação oficial do OWASP ZAP disponível em: https://www.zaproxy.org/getting-started

🔍 Introdução

O OWASP ZAP (Zed Attack Proxy) não é apenas uma ferramenta de teste de penetração - é um componente essencial da nossa estratégia defensiva proativa.


Por que Blue Team Precisa do ZAP?

  • Identificação Precoce: Encontrar vulnerabilidades antes dos atacantes
  • Validação de Controles: Verificar eficácia das medidas de segurança implementadas
  • Simulação de Ameaças: Testar detecções do SOC com ataques controlados
  • Compliance e Auditoria: Demonstrar postura de segurança para reguladores


🎯 Fundamentos de Testes de Segurança

Segundo a documentação oficial, os testes de segurança são definidos como:

"O processo de avaliar e testar um sistema para descobrir riscos de segurança e vulnerabilidades do sistema e seus dados."

Tipos de Testes de Segurança

1. Vulnerability Assessment (Avaliação de Vulnerabilidades)

- Sistema escaneado e analisado para questões de segurança

- Aplicação Blue Team: Scans regulares em aplicações corporativas


2. Penetration Testing (Teste de Penetração)

- Sistema submetido a análise e ataques simulados

- Aplicação Blue Team: Validação de controles de segurança


3. Runtime Testing (Teste em Tempo de Execução)

- Sistema testado na perspectiva do usuário final

- Aplicação Blue Team: Monitoramento de comportamento anômalo


4. Code Review (Revisão de Código)**

- Análise detalhada do código fonte

- Aplicação Blue Team: Integração com pipelines de desenvolvimento


O Processo de Pentesting


O pentesting segue estas etapas:


1. Explore (Exploração)

- Aprender sobre o sistema sendo testado

- Determinar software em uso, endpoints, patches instalados

- Buscar conteúdo oculto e vulnerabilidades conhecidas


2. Attack (Ataque)

- Explorar vulnerabilidades conhecidas ou suspeitas

- Provar que as vulnerabilidades existem


3. Report (Relatório)

- Documentar resultados dos testes

- Incluir vulnerabilidades, métodos de exploração e severidade


🛡️ Introdução ao ZAP - Visão Blue Team


O que é o ZAP?


Segundo a documentação oficial:

"Zed Attack Proxy (ZAP) by Checkmarx é uma ferramenta gratuita e open-source de teste de penetração. ZAP é projetado especificamente para testar aplicações web e é flexível e extensível."

Arquitetura "Manipulator-in-the-Middle"


O ZAP funciona como um proxy que:
- Intercepta mensagens entre navegador e aplicação web
- Inspeciona e modifica conteúdo conforme necessário
- Encaminha pacotes para o destino



Em ambientes corporativos, o ZAP pode ser configurado para conectar-se a proxies existentes:

[Navegador] ←→ [ZAP Proxy] ←→ [Aplicação Web]
                    ↓
            [Análise de Segurança]



🐧 Instalação e Configuração no Kali Linux


Requisitos do Sistema


Conforme documentação oficial:
- Java 17+ é obrigatório para executar o ZAP
- Versões Docker não requerem instalação Java separada
- Instaladores disponíveis para Windows, Linux e macOS

Instalação no Kali Linux


# Verificar Java 17+
java -version

# Instalar Java 17 se necessário
sudo apt update
sudo apt install openjdk-17-jdk

# ZAP já vem pré-instalado no Kali
which zaproxy

# Ou instalar/atualizar manualmente
sudo apt install zaproxy

# Download da versão mais recente (opcional)
wget https://github.com/zaproxy/zaproxy/releases/latest/download/ZAP_2.16.0_Linux.tar.gz
tar -xzf ZAP_2.16.0_Linux.tar.gz
cd ZAP_2.16.0/
./zap.sh

🖥️ Interface Desktop do ZAP


Segundo a documentação oficial, a interface é composta por:

Componentes Principais


1. Menu Bar (Barra de Menu)
- Acesso a ferramentas automatizadas e manuais

2. Toolbar (Barra de Ferramentas)
- Botões para recursos mais utilizados

3. Tree Window (Janela de Árvore)
- Exibe árvore de Sites e Scripts

4. Workspace Window (Janela de Trabalho)
- Mostra requisições, respostas e scripts

5. Information Window (Janela de Informações)
- Detalhes de ferramentas automatizadas e manuais

6. Footer (Rodapé)
- Resumo de alertas e status das ferramentas





Modo Seguro para Blue Team


IMPORTANTE: A documentação oficial enfatiza:

"Você deve usar ZAP apenas para atacar aplicações que tem permissão para testar. Danos reais podem ser causados à funcionalidade, dados, etc."

Para ambientes sensíveis:
1. Clique na seta do dropdown de modo na toolbar
2. Selecione Safe Mode
3. Funcionalidade reduzida, mas sem risco de danos

🚀 Scan Automatizado - Abordagem Blue Team


Quick Start Automated Scan


Conforme documentação oficial:

1. Iniciar ZAP e clicar na aba Quick Start
2. Clicar no botão grande "Automated Scan"
3. Inserir URL completa da aplicação web no campo "URL to attack"
4. Clicar em "Attack"



# Exemplo de URL para teste


Tipos de Spider Disponíveis


1. Traditional ZAP Spider

- Descobre links examinando HTML nas respostas
- Rápido, mas menos efetivo em aplicações AJAX
- Uso Blue Team: Ideal para aplicações tradicionais corporativas

2. AJAX Spider

- Explora aplicações invocando navegadores
- Segue links gerados por JavaScript
- Mais lento, mas efetivo em SPAs
- **Uso Blue Team**: Essencial para aplicações modernas

Scanning Passivo vs Ativo


Passive Scanning (Recomendado para Produção)
- Não altera respostas
- Considerado seguro
- Executa em background
- Blue Team: Usar em sistemas de produção

Active Scanning (Apenas Ambientes de Teste)
- Usa ataques conhecidos contra alvos
- Ataque real que pode colocar alvos em risco
- Blue Team: Restrito a ambientes de desenvolvimento/staging


Vejamos abaixo a tela com os resultados do scan.




Visualização de Páginas Exploradas


1. Clicar na aba "Sites" na Tree Window
2. *Expandir nós para ver URLs individuais acessadas
3. Mapear estrutura da aplicação para análise de superfície de ataque

Análise de Alertas


Categorias de risco conforme documentação oficial:

- 🔴 High Risk: Vulnerabilidades críticas - Ação Imediata
- 🟠 Medium Risk: Vulnerabilidades importantes - Prioridade Alta  
- 🟡 Low Risk: Vulnerabilidades menores - Planejar Correção
- 🔵 Informational: Informações de segurança - Revisar

Processo de Análise Blue Team



1. Clicar na aba "Alerts" na Information Window
2. Examinar cada alerta para determinar:
    - Severidade real vs falso positivo
    - Impacto no negócio
    - Facilidade de exploração
    - Contramedidas necessárias

3. Na Workspace Window, aba "Response":
    - Verificar parte da resposta que gerou o alerta
    - Analisar contexto da vulnerabilidade

      • 📊 Métricas e KPIs Blue Team


        Métricas de Cobertura


        # URLs descobertas vs URLs conhecidas
        coverage_percentage = (discovered_urls / total_known_urls) * 100

        # Páginas autenticadas vs não autenticadas
        auth_coverage = (authenticated_pages / total_pages) * 100


        Métricas de Eficácia


        # Taxa de falsos positivos
        false_positive_rate = (false_positives / total_alerts) * 100
        # Vulnerabilidades por categoria
        vuln_distribution = {
            'High': high_risk_count,
            'Medium': medium_risk_count, 
            'Low': low_risk_count
        }


        Dashboard Blue Team (python)


        # Exemplo de métricas para dashboard
        zap_metrics = {
            "scan_date": datetime.now(),
            "target_application": "Corporate Web App",
            "coverage": {
                "total_urls": 1250,
                "scanned_urls": 1180,
                "coverage_percentage": 94.4
            },
            "vulnerabilities": {
                "high": 3,
                "medium": 12,
                "low": 28,
                "info": 45
            },
            "scan_duration": "45 minutes",
            "scan_type": "Automated + Manual"
        }

        🚨 Alertas Críticos e Resposta


        Classificação de Alertas para Blue Team


        High Risk - Resposta Imediata (< 24h)

        • SQL Injection
        • Remote Code Execution  
        • Authentication Bypass
        • Sensitive Data Exposure
        • Directory Traversal

        Medium Risk - Resposta Prioritária (< 72h)

        • Cross-Site Scripting (XSS)
        • Cross-Site Request Forgery (CSRF)
        • Insecure Direct Object References
        • Missing Security Headers

        Low Risk - Planejamento de Correção (< 30 dias)


        • Information Disclosure
        • Weak SSL/TLS Configuration
        • Missing HttpOnly/Secure Flags
        • Clickjacking Vulnerabilities

        Workflow de Resposta


        # 1. Detecção via ZAP

        Alert Generated → Severity Assessment

        # 2. Validação

        Manual Verification → False Positive Check

        # 3. Classificação  

        Business Impact Assessment → Risk Prioritization

        # 4. Resposta

        Immediate Containment → Remediation Planning → Implementation

        # 5. Validação

        Re-scan → Vulnerability Confirmation → Closure

🎯 Conclusão


O OWASP ZAP, conforme apresentado na documentação oficial, é uma ferramenta fundamental para qualquer programa Blue Team maduro. Sua versatilidade permite desde scans básicos até integrações complexas com infraestruturas corporativas.

Pontos-Chave


1. Flexibilidade: Suporta tanto usuários iniciantes quanto especialistas
2. Extensibilidade: Marketplace com add-ons gratuitos
3. Automação: Múltiplas opções de integração CI/CD
4. Segurança: Modo seguro para ambientes sensíveis
5. Comunidade: Projeto open-source com suporte ativo

Implementação Blue Team Recomendada


Fase 1: Básico (4-6 semanas)

- Instalação e configuração inicial
- Scans automatizados básicos
- Integração com pipeline CI/CD
- Treinamento inicial da equipe

Fase 2: Intermediário (8-12 semanas)

- Configuração de autenticação
- Customização de políticas de scan
- Integração com SIEM
- Desenvolvimento de métricas

Fase 3: Avançado (Contínuo)

- Add-ons customizados
- Monitoramento contínuo
- Threat intelligence integration
- Automação avançada

Referências:
- Documentação Oficial OWASP ZAP: https://www.zaproxy.org/getting-started
- ZAP Desktop User Guide: https://www.zaproxy.org/docs/desktop/
- ZAP API Documentation: https://www.zaproxy.org/docs/api/

Compartilhar

Compartilhar este post com outros