Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
push-guard — Hook local de Git pre-push y escáner de sistema de archivos que detecta posibles filtraciones de secretos, redacta los valores coincidentes y bloquea los pushes sin telemetría ni acceso a la red. | Kitploit
Herramientas/GitHubGitHub/dragon-lady/push-guard
Herramientas DefensivasAnálisis EstáticoScripting y AutomatizaciónAuditoría de ConfiguraciónDevSecOpsDetección de SecretosSeguridad de Cadena de Suministro
GitHubdragon-lady/push-guard

push-guard

Hook local de Git pre-push y escáner de sistema de archivos que detecta posibles filtraciones de secretos, redacta los valores coincidentes y bloquea los pushes sin telemetría ni acceso a la red.

Ver Repositorio
60hace 11 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Push Guard

Push Guard es una protección local de Git pre-push para posibles filtraciones de secretos.

Escanea el contenido que se está subiendo, informa de posibles patrones de secretos, redacta todos los valores coincidentes y finaliza con un código distinto de cero para que Git bloquee el push.

Creado y mantenido por Dragon Lady - github.com/Dragon-Lady - X: @answerislove2

Actualización desde 0.4.2: cambio incompatible

La versión 0.4.3 elimina la excepción en línea # push-guard: ignore. Una actualización puede empezar a bloquear pushes y paquetes que antes pasaban. Antes de actualizar hooks compartidos o instalaciones de CI, inspecciona cada repositorio consumidor:

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

Revisa cada coincidencia. Elimina los secretos y el material privado; ninguno de los dos puede eximirse. Para fixtures legítimos de flujos de trabajo/IOC, añade únicamente la ruta exacta del repositorio revisada y los IDs de regla exactos de workflow.* a .push-guard-allow. Los marcadores en línea ahora son texto normal, incluidos los de pruebas o documentación. No conviertas automáticamente todas las líneas de marcador en exenciones. Revisa cualquier nueva exención como un cambio sensible para la seguridad.

El hook de pre-push lee las excepciones del commit base anunciado del destino, nunca de la copia de trabajo ni de los commits candidatos. Una exención nueva o ampliada debe revisarse y establecerse por separado antes de que pueda eximir un push posterior. Para un push de múltiples refs, solo se aplican las excepciones compartidas por todas las bases de destino. Las refs nuevas sin una base anunciada no reciben excepciones.

scan también lee la política de --base. Al auditar un rango histórico más amplio contra una instantánea de política revisada por separado, pasa explícitamente --allow-list-ref <reviewed-40-character-commit-SHA>. Esta es una decisión de confianza explícita por parte del llamador; nunca sustituyas la política del candidato no revisado. scan-package sigue usando la política --repo seleccionada por el llamador, fuera del artefacto. Proporciona un directorio de política revisado al escanear compilaciones no confiables.

Ejecuta push-guard scan --base <trusted-base> --head HEAD y push-guard scan-package dist/* de la nueva versión contra los cambios salientes reales y los artefactos compilados antes de actualizar el hook instalado. Las rutas de los miembros del archivo pueden diferir de las rutas de origen; revisa esas rutas exactas por separado. Mantén la versión instalada existente hasta que los repositorios afectados hayan completado esta migración.

Sitio web

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

La página de aterrizaje estática del proyecto reside en docs/ y no tiene dependencias en tiempo de ejecución, scripts externos, analíticas ni recursos remotos. Puede servirse con GitHub Pages desde el directorio docs/ o desplegarse en Netlify usando el netlify.toml incluido (sin comando de compilación; directorio de publicación docs).

El proyecto actual de Netlify usa despliegues manuales. Un push de Git por sí solo no actualiza la página pública: publica el contenido de docs/ después de cada versión y verifica la versión en vivo, la imagen social y las cabeceras de respuesta. El archivo docs/_headers mantiene las cabeceras de seguridad al desplegar ese directorio directamente.

Postura

  • Inspección local y de solo lectura de los objetivos. Sin telemetría.
  • Sin red por defecto. Solo la opción explícita --send de Sweep habilita alertas agregadas a destinos configurados; el guard de Git permanece sin conexión.
  • Sin instalaciones de paquetes ni mutación de archivos objetivo durante los escaneos.
  • No se imprimen, registran ni guardan valores de secretos coincidentes ni líneas de código fuente.
  • El modo Git usa el subproceso git solo para leer diffs de commits, árboles enviados, rutas de hooks configuradas y metadatos de ignorados. Se preserva el punto de entrada del hook existente, con la inspección de contenido sin procesar y del historial saliente reforzada.
  • Sweep lee archivos seleccionados fuera de Git, dentro de $HOME, y no ejecuta procesos hijos, incluido Git.
  • No se escriben resultados de escaneo por defecto. Sweep crea una clave HMAC aleatoria de 32 bytes en $XDG_STATE_HOME/push-guard-sweep/fp.key (por defecto ~/.local/state/push-guard-sweep/fp.key) para huellas digitales estables y no adivinables. Esta clave es la excepción explícita a «no se almacenan datos por defecto». No contiene datos escaneados. El directorio de estado tiene permisos 0700 y los archivos se crean con 0600.
  • Los archivos explícitos --baseline y --output de Sweep contienen metadatos locales redactados; --send almacena recibos de deduplicación con clave, nunca credenciales de alerta ni secretos.
  • No se afirma que un repositorio o máquina esté limpio. Las coincidencias son pistas para revisión, no prueba de que las credenciales sigan siendo válidas.

Bloquear un push es la respuesta de Git al aviso. Push Guard permanece de solo lectura y no modifica archivos. La anulación está disponible con git push --no-verify cuando se sabe que el valor coincidente no es un secreto.

Sweep: secretos en disco

El comando push-guard sweep y el alias push-guard-sweep proporcionan la misma inspección local. Requieren el Python 3.11 o superior del paquete existente y no tienen dependencias de tiempo de ejecución adicionales. Las pruebas de desarrollo utilizan el extra opcional test (python -m pip install ".[test]", luego PYTHONPATH=src python -m pytest -q desde la raíz del repositorio). La versión 0.4.0 añade Sweep. CI instala ese extra de desarrollo y ejecuta toda la suite de pytest, incluidos los casos heredados de unittest. Las pruebas de lanzamiento se ejecutan en un trabajo separado; ese trabajo nunca proporciona artefactos de distribución a la publicación. El trabajo de compilación de artefactos no instala dependencias de prueba. Sweep no instala ni habilita un planificador.

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 escaneo también considera las ubicaciones predeterminadas de historial, dotfiles, configuración y registros que se indican a continuación. --roots cambia las raíces de búsqueda de .env* y de inclusión personalizada; use --exclude para acotar los demás conjuntos predeterminados. La repetición de --include GLOB añade archivos dentro de las búsquedas acotadas existentes, y la repetición de --exclude GLOB elimina rutas. Los globs coinciden con nombres base, rutas relativas a HOME o rutas absolutas. Las exclusiones prevalecen; las inclusiones no pueden anular las exclusiones de seguridad ni los límites de profundidad. ~ en los argumentos de ruta de la CLI se expande. Las rutas escaneadas deben permanecer dentro de $HOME.

Descargar herramienta