trufflehog: encontrando e verificando credenciais vazadas

TruffleHog · AGPL-3.0

O trufflehog varre conteúdo em busca de credenciais e — é isto que o separa de todo scanner de segredos baseado em regex — tenta verificá-las contra o serviço emissor. Um match não verificado é uma string que parece uma chave. Um match verificado é uma chave que funciona.

Instalação

# 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 principais

# um repo git, histórico completo
trufflehog git https://github.com/example/repo --only-verified

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

# uma organização inteira do GitHub
trufflehog github --org=example --only-verified

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

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

O --only-verified é a flag que torna a saída reportável. Sem ela você recebe milhares de strings candidatas; com ela você recebe credenciais que autenticaram com sucesso.

Saída

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

Onde ele entra no Tandera

O trufflehog roda na fase de analyze do recon_web_lite e do recon_web_full, contra os bundles JavaScript e assets que katana e linkfinder recuperaram. O uso voltado para web é mais estreito que o uso em histórico git pelo qual a maioria o conhece: ele procura chaves enviadas ao navegador.

Resultados verificados mapeiam para o catálogo de findings secrets.yaml, que é o que lhes dá uma severidade e remediação canônicas em vez de um nome bruto de detector.

Usando em um pentest

Verificado muda a severidade, e a conversa. “Encontramos uma string que combina com o formato de uma chave AWS” convida ao debate. “Encontramos uma chave AWS que autentica” encerra. Reporte as duas categorias separadamente e nunca as misture.

Não use a credencial além da verificação. Confirmar que uma chave é válida está no escopo. Enumerar a conta que ela abre é outra autorização, e frequentemente outro contrato. Verifique, capture evidência, pare, escale para o cliente.

O histórico git é onde elas vivem. Uma chave deletada do HEAD ainda está no commit que a adicionou. Varrer a working tree em vez do histórico do repositório é o jeito mais comum de usar esta ferramenta errado.

Rotacionar é a remediação, não deletar. Uma chave removida do repo mas nunca rotacionada continua sendo uma chave válida. Diga isso explicitamente no finding.

acesso antecipado

Garanta a Tandera antes do próximo engagement.

Entre na waitlist para acesso antecipado. Estamos integrando times de pentest em ondas.

Onboarding prioritário para times de pentest.
Linha direta com quem está construindo.
Preço de acesso antecipado, garantido.

Sem spam, sem cartão. Cancele quando quiser.

enespt-br