trufflehog: encontrar y verificar credenciales filtradas

TruffleHog · AGPL-3.0

trufflehog escanea contenido en busca de credenciales y — esto es lo que lo separa de todo escáner de secretos basado en regex — intenta verificarlas contra el servicio emisor. Un match no verificado es una cadena que parece una clave. Un match verificado es una clave que funciona.

Instalación

# macOS
brew install trufflehog

# Linux
curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh 
  | sh -s -- -b /usr/local/bin

# Docker
docker run --rm -it trufflesecurity/trufflehog:latest github --repo https://github.com/example/repo

Comandos principales

# un repo git, historial completo
trufflehog git https://github.com/example/repo --only-verified

# un checkout local
trufflehog filesystem ./src --only-verified

# una organización entera de GitHub
trufflehog github --org=example --only-verified

# JSON para importar
trufflehog git file://./repo --only-verified --json > secrets.jsonl

# S3, con un perfil de credencial específico
trufflehog s3 --bucket=example-assets --only-verified

--only-verified es la flag que hace la salida reportable. Sin ella obtienes miles de cadenas candidatas; con ella obtienes credenciales que autenticaron con éxito.

Salida

{"SourceMetadata":{"Data":{"Git":{"commit":"a3f9...","file":"config/settings.py",
 "line":42,"repository":"https://github.com/example/repo"}}},
 "DetectorName":"AWS","Verified":true,"Raw":"AKIA..."}

Dónde encaja en Tandera

trufflehog se ejecuta en la fase de analyze de recon_web_lite y recon_web_full, contra los bundles JavaScript y assets que katana y linkfinder recuperaron. El uso orientado a web es más estrecho que el uso en historial git por el que la mayoría lo conoce: busca claves enviadas al navegador.

Los resultados verificados mapean al catálogo de findings secrets.yaml, que es lo que les da una severidad y remediación canónicas en lugar de un nombre en bruto de detector.

Uso en un pentest

Verificado cambia la severidad, y la conversación. “Encontramos una cadena que coincide con el formato de una clave AWS” invita al debate. “Encontramos una clave AWS que autentica” lo cierra. Reporta las dos categorías por separado y nunca las mezcles.

No uses la credencial más allá de la verificación. Confirmar que una clave es válida está dentro del alcance. Enumerar la cuenta que abre es otra autorización, y a menudo otro contrato. Verifica, captura evidencia, detente, escala al cliente.

El historial git es donde viven. Una clave borrada de HEAD sigue en el commit que la añadió. Escanear el working tree en lugar del historial del repositorio es la forma más común de usar mal esta herramienta.

Rotar es la remediación, no borrar. Una clave eliminada del repo pero nunca rotada sigue siendo una clave válida. Dilo explícitamente en el finding.

acceso anticipado

Consigue Tandera antes de tu próximo engagement.

Únete a la waitlist para acceso anticipado. Estamos incorporando equipos de pentest por oleadas.

Onboarding prioritario para equipos de pentest.
Línea directa con quienes lo construyen.
Precio de acceso anticipado, asegurado.

Sin spam, sin tarjeta. Cancela cuando quieras.

enespt-br