Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
push-guard — Hook local de pré-push do Git e scanner de sistema de arquivos que detecta prováveis vazamentos de segredos, redige os valores correspondentes e bloqueia pushes sem telemetria ou acesso à rede. | Kitploit
Ferramentas/GitHubGitHub/dragon-lady/push-guard
Ferramentas DefensivasAnálise EstáticaScripting e AutomaçãoAuditoria de ConfiguraçãoDevSecOpsDetecção de SegredosSegurança da Cadeia de Suprimentos
GitHubdragon-lady/push-guard

push-guard

Hook local de pré-push do Git e scanner de sistema de arquivos que detecta prováveis vazamentos de segredos, redige os valores correspondentes e bloqueia pushes sem telemetria ou acesso à rede.

Ver Repositório
44há 9 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Push Guard

Push Guard é uma proteção local de pre-push do Git para prováveis vazamentos de segredos.

Ele verifica o conteúdo que está sendo enviado, relata padrões prováveis de segredos, oculta todos os valores correspondentes e encerra com código diferente de zero para que o Git bloqueie o push.

Criado e mantido por Dragon Lady - github.com/Dragon-Lady - X: @answerislove2

Atualizando a partir da 0.4.2: mudança incompatível

A versão 0.4.3 remove a exceção inline # push-guard: ignore. Uma atualização pode começar a bloquear pushes e pacotes que antes passavam. Antes de atualizar hooks compartilhados ou instalações de CI, inspecione cada repositório consumidor:

git grep -n -i 'push-guard:[[:space:]]*ignore'

Revise cada correspondência. Remova segredos e material privado; nenhum dos dois pode ser isento. Para fixtures legítimas de workflow/IOC, adicione apenas o caminho exato do repositório revisado e os IDs exatos de regra workflow.* ao .push-guard-allow. Marcadores inline agora são texto comum, incluindo os presentes em testes ou documentação. Não converta automaticamente todas as linhas de marcador em permissões. Revise qualquer nova permissão como uma alteração sensível à segurança.

O hook de pré-push lê exceções a partir do commit base anunciado pelo destino, nunca da cópia de trabalho ou dos commits candidatos. Uma permissão nova ou ampliada deve ser revisada e estabelecida separadamente antes de poder isentar um push posterior. Para um push multi-ref, apenas as exceções compartilhadas por todas as bases de destino se aplicam. Refs novas sem uma base anunciada não recebem exceções.

scan da mesma forma lê a política de --base. Ao auditar um intervalo histórico maior contra um snapshot de política revisado separadamente, passe explicitamente --allow-list-ref <reviewed-40-character-commit-SHA>. Esta é uma decisão de confiança explícita do chamador; nunca substitua pela política do candidato não revisado. scan-package continua a usar a política --repo selecionada pelo chamador, fora do artefato. Forneça um diretório de política revisado ao escanear builds não confiáveis.

Execute push-guard scan --base <trusted-base> --head HEAD e push-guard scan-package dist/* da nova versão contra as alterações de saída reais e os artefatos construídos antes de atualizar o hook instalado. Os caminhos de membros de arquivo podem diferir dos caminhos de origem; revise esses caminhos exatos separadamente. Mantenha a versão instalada existente até que os repositórios afetados tenham concluído esta migração.

Website

Página de destino pública: push-guard.netlify.app

A página de destino estática do projeto fica em docs/ e não possui dependências de runtime, scripts externos, analytics ou recursos remotos. Ela pode ser servida com GitHub Pages a partir do diretório docs/ ou implantada no Netlify usando o netlify.toml incluído (sem comando de build; diretório de publicação docs).

O projeto Netlify atual usa implantações manuais. Um push Git sozinho não atualiza a página pública: publique o conteúdo de docs/ após cada release e verifique a versão ao vivo, a imagem social e os cabeçalhos de resposta. O arquivo docs/_headers mantém os cabeçalhos de segurança ao implantar esse diretório diretamente.

Postura

  • Inspeção local e somente leitura dos alvos. Sem telemetria.
  • Sem rede por padrão. Apenas a opção explícita --send do Sweep habilita alertas agregados para destinos configurados; o guarda Git permanece offline.
  • Sem instalações de pacotes ou mutação de arquivos-alvo durante as varreduras.
  • Nenhum valor de segredo correspondido ou linha de código-fonte é impresso, registrado ou salvo.
  • O modo Git usa o subprocesso git apenas para ler diffs de commit, árvores enviadas, caminhos de hook configurados e metadados de ignore. O ponto de entrada do hook existente é preservado, com a inspeção de conteúdo bruto e histórico de saída reforçada.
  • O Sweep lê arquivos selecionados fora do Git, dentro de $HOME, e não executa processos filhos, incluindo Git.
  • Nenhum resultado de varredura é gravado por padrão. O Sweep cria uma chave HMAC aleatória de 32 bytes em $XDG_STATE_HOME/push-guard-sweep/fp.key (padrão ~/.local/state/push-guard-sweep/fp.key) para impressões digitais estáveis e não adivinháveis. Esta chave é a exceção explícita à regra "nenhum dado armazenado por padrão". Ela não contém dados escaneados. O diretório de estado tem permissão 0700 e os arquivos são criados com 0600.
  • Os arquivos explícitos --baseline e --output do Sweep contêm metadados locais redigidos; --send armazena recibos de deduplicação com chave, nunca credenciais de alerta ou segredos.
  • Nenhuma afirmação de que um repositório ou máquina está limpo. Correspondências são pistas para revisão, não prova de que as credenciais permanecem válidas.

Bloquear um push é a resposta do Git ao aviso. O Push Guard permanece somente leitura e não modifica arquivos. A substituição está disponível com git push --no-verify quando o valor correspondido não for um segredo conhecido.

Sweep: segredos em disco

O comando push-guard sweep e o alias push-guard-sweep fornecem a mesma inspeção local. Eles exigem o Python 3.11 ou superior do pacote existente e não têm dependências de runtime adicionais. Os testes de desenvolvimento usam o extra opcional test (python -m pip install ".[test]", depois PYTHONPATH=src python -m pytest -q a partir da raiz do repositório). A versão 0.4.0 adiciona o Sweep. O CI instala esse extra de desenvolvimento e executa toda a suíte pytest, incluindo os casos legados de unittest. Os testes de release são executados em um job separado; esse job nunca fornece artefatos de distribuição para publicação. O job de build de artefatos não instala dependências de teste. O Sweep não instala nem habilita um agendador.

push-guard sweep --list-targets
push-guard sweep --roots ~/projects --class stray
push-guard-sweep --format json --output ~/sweep-report.json
push-guard-sweep --baseline ~/sweep-baseline.json
push-guard-sweep report --format html --output ~/sweep-report.html
push-guard-sweep print-timer --interval 7d

Cada varredura também considera os locais padrão de histórico, dotfiles, configuração e logs abaixo. --roots altera as raízes de busca de .env* e de inclusões personalizadas; use --exclude para restringir os outros conjuntos padrão. --include GLOB repetido adiciona arquivos dentro das buscas limitadas existentes, e --exclude GLOB repetido remove caminhos. Os globs correspondem a basenames, caminhos relativos a HOME ou caminhos absolutos. As exclusões prevalecem; as inclusões não podem sobrepor exclusões de segurança ou limites de profundidade. ~ em argumentos de caminho na CLI é expandido. Os caminhos varridos devem permanecer dentro de $HOME.

  • Histórico: histórico de shell do Bash, Zsh, Python, Node, PostgreSQL, MySQL, SQLite e .lesshst. O texto do histórico do shell do SQLite é separado dos arquivos de banco de dados.
  • Dotfiles: .bashrc, .zshrc, .profile, .bash_profile, .npmrc e .docker/config.json; arquivos selecionados JSON, TOML, YAML, INI e CONF sob .config com no máximo quatro níveis de diretório abaixo dele.
  • Arquivos .env*: sob as raízes selecionadas (HOME por padrão), no máximo seis níveis de diretório. Árvores de dependências, ambientes virtuais, metadados do Git e caches são excluídos desta busca.
  • Logs: arquivos .log e arquivos dentro de logs/, no máximo quatro níveis de diretório sob .local/state, .cache, .codex, .config/Cursor/logs e log_dirs configurados.
Baixar ferramenta