Skip to main content

AppSec Kit

CLI interativo que configura ferramentas de segurança para esteiras CI/CD com um único comando. Roda no projeto do dev e gera os arquivos prontos para uso.

Suporte: Python · Node.js · GitHub Actions


O que ele instala

Camada Python Node.js
SAST Bandit Semgrep
Dependency scanning pip-audit npm audit
Secret scanning Gitleaks + detect-secrets Gitleaks + detect-secrets
Pre-commit hooks pre-commit pre-commit

Pré-requisitos

  • Python 3.12+
  • uv ou pip
  • Git inicializado no projeto-alvo (git init)

Instalação

Via uv (recomendado)

uv tool install appsec-tool-kit

Via pip

pip install appsec-tool-kit

Direto do repositório (desenvolvimento)

git clone https://github.com/seu-usuario/appsec-tool-kit.git
cd appsec-tool-kit
uv sync
uv run appsec-kit

Tutorial passo a passo

Passo 1 — Acesse o diretório do seu projeto

cd /caminho/do/seu/projeto

O kit detecta automaticamente o tipo de projeto pelo conteúdo do diretório.


Passo 2 — Execute o wizard

appsec-kit

Você verá a tela inicial:

╭──────────────────────────────────────────────────────╮
│  AppSec Kit  –  Security toolkit for CI/CD pipelines │
╰──────────────────────────────────────────────────────╯

Detected: Python project

? Project type:
> Python
  Node.js

Passo 3 — Confirme o tipo de projeto

O kit detecta automaticamente se é Python ou Node.js pelo conteúdo do diretório:

  • Python → presença de pyproject.toml, requirements.txt, setup.py ou Pipfile
  • Node.js → presença de package.json

Confirme ou altere com as setas e pressione Enter.


Passo 4 — Confirme o diretório-alvo

? Target directory: [.]

Pressione Enter para usar o diretório atual ou informe outro caminho:

? Target directory: ../meu-outro-projeto

Passo 5 — Selecione as camadas de segurança

? Security layers to configure:
 > [x] SAST (Static Analysis)
   [x] Dependency Scanning
   [x] Secret Scanning
   [x] Pre-commit Hooks

Use Espaço para marcar/desmarcar, Enter para confirmar. Por padrão todas as camadas ficam selecionadas.


Passo 6 — Aguarde a geração dos arquivos

  ✓  .github/workflows/security.yml  (created)
  ✓  .pre-commit-config.yaml         (created)
  ↻  pyproject.toml                  (updated)

Passo 7 — Siga as instruções pós-instalação

O wizard exibe os próximos passos automaticamente:

╭─ Next steps ──────────────────────────────────────────╮
│  pip install pre-commit detect-secrets                 │
│  detect-secrets scan > .secrets.baseline               │
│  pre-commit install                                    │
│                                                        │
│  # Commit e push para ativar o GitHub Actions:        │
│  git add .github/ .pre-commit-config.yaml             │
│  git commit -m "chore: add appsec security config"    │
│  git push                                             │
╰───────────────────────────────────────────────────────╯

Execute esses comandos na ordem.


O que é gerado

.github/workflows/security.yml

Workflow do GitHub Actions com jobs separados por camada:

  • SAST — análise estática roda a cada push/PR
  • Dependency scan — verifica vulnerabilidades nas dependências
  • Secret scanning — Gitleaks varre o histórico git em busca de segredos expostos

O workflow é acionado em push e pull requests para main e master.


.pre-commit-config.yaml

Hooks que rodam localmente antes de cada commit:

Python:

repos:
  - repo: https://github.com/PyCQA/bandit      # SAST
  - repo: https://github.com/Yelp/detect-secrets # secrets
  - repo: https://github.com/pypa/pip-audit      # dependências

Node.js:

repos:
  - repo: https://github.com/Yelp/detect-secrets # secrets
  - repo: https://github.com/gitleaks/gitleaks   # secrets
  - repo: local                                   # npm audit

pyproject.toml (apenas Python)

Adiciona configuração do Bandit ao arquivo existente:

[tool.bandit]
exclude_dirs = ["tests", "venv", ".venv"]
skips = []

Casos de uso comuns

Só quero pre-commit, sem CI

Execute o wizard e desmarque as camadas SAST, Dependency Scanning e Secret Scanning. Mantenha apenas Pre-commit Hooks selecionado.

Só quero o GitHub Actions, sem pre-commit

Desmarque Pre-commit Hooks e mantenha as outras camadas.

Projeto já tem .pre-commit-config.yaml

O kit sobrescreve o arquivo com status (updated). Faça backup antes se necessário:

cp .pre-commit-config.yaml .pre-commit-config.yaml.bak
appsec-kit

Atualizando versões dos hooks

As versões dos hooks pre-commit ficam fixadas em .pre-commit-config.yaml. Para atualizar todas para o latest:

pre-commit autoupdate

Ferramentas utilizadas

Ferramenta Finalidade Docs
Bandit SAST para Python bandit.readthedocs.io
Semgrep SAST para JavaScript/TypeScript semgrep.dev
pip-audit CVEs em dependências Python pypi.org/project/pip-audit
detect-secrets Detecção de segredos github.com/Yelp/detect-secrets
Gitleaks Varredura de segredos no histórico git gitleaks.io
pre-commit Framework de git hooks pre-commit.com

Metadata

Release files for appsec-tool-kit 0.2.0

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

Source distribution (sdist)

Source distribution for appsec-tool-kit 0.2.0
File Size Uploaded
appsec_tool_kit-0.2.0.tar.gz 13.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for appsec-tool-kit 0.2.0
File Interpreter ABI Platform
appsec_tool_kit-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.4 kB

Release files / appsec_tool_kit-0.2.0.tar.gz

Download URL appsec_tool_kit-0.2.0.tar.gz
Size 13.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5d9aa3c6ef4d3f774e3d3df038b688c1c41e2a1d018f4b75f770d6b8fc10aa87
BLAKE2b-256 checksum
How to use checksums
7bfad309b2ef4d9ecbf19e471f854b1bf439e7473cb4694231c8b60fb7ba2c2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Zorin OS","version":"18","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / appsec_tool_kit-0.2.0-py3-none-any.whl

Download URL appsec_tool_kit-0.2.0-py3-none-any.whl
Size 10.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ac26d26b9dad68d140c428dee3057777d960602fa475ef148ba2374555f9f650
BLAKE2b-256 checksum
How to use checksums
22fbf3dce4bf4debdae5725924eadbf4d6e17b721d54c28433e91910b4d8612a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Zorin OS","version":"18","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

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