security_pentest_planner
Site: saulofilho.github.io/security-pentest-planner
Gera Planos de Ação de Pentest a partir de especificações OpenAPI/Swagger.
Ferramenta open source para times de engenharia e AppSec que precisam estruturar testes ofensivos antes da execução — com vetores OWASP, procedimentos, payloads e critérios de validação.
O que ela faz
- Analisa contratos OpenAPI 3.x (YAML ou JSON)
- Detecta sinais de risco: tenant headers, parâmetros de data, enums, timezone livre
- Seleciona vetores OWASP API Security aplicáveis via taxonomia
- Gera um design doc em Markdown com:
- Procedimentos passo a passo por vetor
- Payloads e exemplos HTTP/SQL
- Tabela resumo (Acesso · Entrada · Disponibilidade · Informação)
- Recomendações imediatas de remediação
- Red flags do contrato
O que ela NÃO faz
- Scripts executáveis (Faraday, Ruby, SQL runnable)
- Resultados de teste (APROVADO/REPROVADO)
- RFCs de implementação
Esses artefatos pertencem à fase de execução do pentest.
Instalação
gem install security_pentest_planner
Ou no Gemfile:
gem "security_pentest_planner"
Uso via CLI
# Gerar plano no stdout
security-pentest-planner swagger/v2/swagger.json
# Salvar em arquivo
security-pentest-planner openapi.yaml -o plano-de-acao-pentest.md
# Com escopo e Data Lake
security-pentest-planner openapi.yaml \
--team "Platform Team" \
--scope /api/v1/metrics \
--datalake \
-o plano.md
Opções
| Flag | Descrição |
|---|---|
-t, --team TEAM |
Nome do time no título |
-s, --scope PATH |
Limitar a um endpoint |
-d, --datalake |
Incluir vetores de Data Lake |
--api-layer NAME |
Nome da camada API (default: API) |
--data-layer NAME |
Nome da camada Data Lake (default: Data Lake) |
-o, --output FILE |
Salvar em arquivo |
Uso programático
require "security_pentest_planner"
plan = SecurityPentestPlanner.generate(
input_path: "openapi.yaml",
team: "Platform Team",
scope: "/api/v1/metrics",
include_datalake: true
)
File.write("plano-de-acao-pentest.md", plan)
Publicar no RubyGems.org
bundle install
bundle exec rspec
gem build security_pentest_planner.gemspec
gem push security_pentest_planner-1.0.0.gem
Requer conta no RubyGems.org e MFA habilitado.
Desenvolvimento
git clone https://github.com/saulofilho/security-pentest-planner.git
cd security-pentest-planner
bundle install
bundle exec rspec
bundle exec rake
Fluxo recomendado
OpenAPI spec → security_pentest_planner → Plano de Ação (Markdown)
↓
Execução manual / CI
↓
Resultados + RFCs
A gem cobre a fase de planejamento de forma determinística — ideal para CI/CD, pipelines e integração em projetos Ruby/Rails.
Licença
MIT — veja LICENSE.txt.