🕵️ PenTesting - Validação de Segurança Ofensiva
Este documento estabelece o enquadramento técnico e processual para a realização de testes de penetração (PenTesting), como prática complementar à validação contínua descrita no Capítulo 10.
🌟 Objetivo
Definir:
- Quando o PenTesting deve ser aplicado;
- Como deve ser planeado e integrado no ciclo de vida;
- Que tipos de abordagem são possíveis (black-box vs grey-box);
- Como os seus resultados devem ser utilizados para reforçar a segurança;
- Como o Capítulo 10 pode servir de base para preparação e âmbito.
🔍 O que é PenTesting
PenTesting é uma validação ofensiva manual e exploratória, que simula ataques reais sobre um sistema com o objetivo de:
- Identificar vulnerabilidades que escapam à validação automatizada;
- Avaliar a eficácia de controlos implementados;
- Medir a exposição real da aplicação.
🎯 Ao contrário de SAST/DAST, que testam sistematicamente, o PenTest simula raciocínio adversarial, abuso lógico e exploração contextualizada.
⚙️ Abordagens possíveis
Existem duas formas principais de conduzir um PenTest:
⚫ Abordagem "Caixa Negra" (Black Box)
| Característica | Descrição |
|---|---|
| Conhecimento prévio | Nenhum. O pentester age como atacante externo. |
| Dados fornecidos | Apenas URL ou ponto de entrada público. |
| Foco | Exposição externa, abusos funcionais, má configuração visível. |
| Limitação | Pode falhar áreas críticas não expostas diretamente. |
Relação com Cap. 10:
- Permite avaliar se a proteção implementada (DAST, fuzzing) é eficaz;
- Ajuda a validar a cobertura de scanners em contexto real;
- Útil como verificação independente da postura externa.
⚪ Abordagem "Caixa Cinzenta" (Grey Box)
| Característica | Descrição |
|---|---|
| Conhecimento prévio | Parcial. O pentester recebe contexto técnico. |
| Dados fornecidos | Findings de SAST/DAST/SCA, SBOM, endpoints, credenciais, API docs. |
| Foco | Exploração dirigida, validação de correções, gaps reais. |
| Benefício | Maior eficácia com âmbito orientado por risco. |
Relação com Cap. 10:
- Usa os findings da validação contínua como input;
- Permite confirmar a eficácia de correções e controlos aplicados;
- Suporta regressão dirigida e verificação de mitigação efetiva.
🔁 Integração com o Capítulo 10
O PenTest não substitui testes contínuos - é um complemento estratégico para:
- Validar a eficácia das defesas já aplicadas;
- Confirmar a cobertura de testes automatizados;
- Identificar abusos que escapam à análise sistemática.
Ciclo de integração sugerido:
-
Antes do PenTest
- Consolidar findings dos testes automatizados;
- Mapear áreas críticas, alterações recentes, endpoints complexos;
- Partilhar dados com equipa de PenTest (grey-box preferido).
-
Durante a execução
- Seguir metodologia estruturada (ex: OWASP Testing Guide);
- Documentar vetores, payloads, impacto, bypasses e anomalias;
- Respeitar regras de engajamento acordadas (ex: scope, limites, reporte).
-
Após o PenTest
- Registar todos os findings como issues;
- Associar cada finding a componente, risco e impacto real;
- Aplicar processo de tratamento, correção e revalidação contínua.
📋 Checklist de Planeamento
| Item | Verificado? |
|---|---|
| âmbito definido com base em classificação de risco | ☐ |
| Endpoints, APIs e versões documentadas | ☐ |
| Ambiente de testes seguro e isolado disponível | ☐ |
| NDA e acordos de acesso definidos (se aplicável) | ☐ |
| Regras de engajamento e reporte acordadas | ☐ |
| Resultados anteriores da validação contínua analisados | ☐ |
| Findings do PenTest registados com rastreabilidade completa | ☐ |
| Revalidação agendada após correções | ☐ |
📎 Diferença entre PenTest e outras validações
| Tipo | Características | Automatizado? | Executado por |
|---|---|---|---|
| PenTesting | Manual, ofensivo, simulativo | ❌ Não | Equipa ofensiva interna/externa |
| SAST/DAST/Fuzzing | Contínuo, baseado em regras | ✅ Sim | CI/CD, QA, AppSec |
| IAST | Runtime, sensível a execução | ✅ Parcial | Dev/Test |
| Red Team | Simulação persistente e dirigida a objetivos | ❌ Não | Interno/Consultores |
| Bug Bounty | Aberto, colaborativo, recompensa por findings | ❌ Parcial | Comunidade externa |
✅ Conclusão
O PenTesting é um instrumento de validação externa e independente. A sua eficácia depende diretamente da sua integração com os mecanismos internos de segurança.
Para ser útil, deve:
- Apoiar-se nos dados da validação contínua (Cap. 10);
- Ser rastreável, documentado e comparável a findings anteriores;
- Alimentar melhorias no ciclo de vida de segurança, arquitetura e requisitos.
📌 O PenTest valida a aplicação e também a maturidade da organização em gerir, corrigir e aprender com falhas detetadas - sendo parte fundamental do ciclo de melhoria contínua do modelo SbD-ToE.