Skip to main content

security-pentest-planner

PyPI version Python Versions License: MIT

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 (Requests, Python, SQL runnable)
  • Resultados de teste (APROVADO/REPROVADO)
  • RFCs de implementação

Esses artefatos pertencem à fase de execução do pentest.

Instalação

pip install security-pentest-planner

Ou usando uv / poetry:

uv add security-pentest-planner
# ou
poetry add 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
-v, --version Exibe a versão
-h, --help Exibe a ajuda

Uso programático

import security_pentest_planner

# A partir de arquivo
plan = security_pentest_planner.generate(
    input_path="openapi.yaml",
    team="Platform Team",
    scope="/api/v1/metrics",
    include_datalake=True,
)

with open("plano-de-acao-pentest.md", "w", encoding="utf-8") as f:
    f.write(plan)

# A partir de um dicionário (spec já carregada)
import yaml

with open("openapi.yaml", "r", encoding="utf-8") as f:
    spec_data = yaml.safe_load(f)

plan = security_pentest_planner.generate_from_spec(
    spec=spec_data,
    team="Security Team",
)

Publicar no PyPI

python -m pip install build twine
python -m build
python -m twine upload dist/*

Desenvolvimento e Testes

git clone https://github.com/saulofilho/security-pentest-planner-python.git
cd security-pentest-planner-python

# Executar testes unitários
python3 -m unittest discover -s tests -v

# Ou com pytest
pytest -v

Fluxo recomendado

OpenAPI spec  →  security-pentest-planner  →  Plano de Ação (Markdown)
                                                       ↓
                                               Execução manual / CI
                                                       ↓
                                               Resultados + RFCs

O pacote cobre a fase de planejamento de forma determinística — ideal para CI/CD, pipelines e integração em projetos Python/FastAPI/Django/Flask.

Licença

MIT — veja LICENSE.

Metadata

Release files for security-pentest-planner 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for security-pentest-planner 1.0.2
File Size Uploaded
security_pentest_planner-1.0.2.tar.gz 21.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for security-pentest-planner 1.0.2
File Interpreter ABI Platform
security_pentest_planner-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 45.4 kB

Release files / security_pentest_planner-1.0.2.tar.gz

Download URL security_pentest_planner-1.0.2.tar.gz
Size 21.9 kB
Tags Source
SHA-256 checksum
How to use checksums
71a64e6156ad6ac4b0660771cca4589ffc6298d8d4a8af88665b73f252a4f3eb
BLAKE2b-256 checksum
How to use checksums
4d108e46ea22af20a7f96753f9e89d05943141c776bc79ad3b068616e6c0e12e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / security_pentest_planner-1.0.2-py3-none-any.whl

Download URL security_pentest_planner-1.0.2-py3-none-any.whl
Size 23.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
995a4fbfefe1f913c1abe2e8992376d04cd0cd3b36acd7a916ee3f6efe02ee68
BLAKE2b-256 checksum
How to use checksums
2328f88c0569bd33b37ca9a4b2b23d45587a39a0cb773f769d61b181ff91fdf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page