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 (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)
| File | Size | Uploaded | |
|---|---|---|---|
| security_pentest_planner-1.0.2.tar.gz | 21.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|