truffleHog3 – Passwörter und Zugangsdaten in Git, Github, Gitlab oder AWS finden und entfernen
Bereits im April dieses Jahres wurde Version 3 des Repository-Security-Tools Trufflehog veröffentlicht. Zeit, einen eigenen Artikel über das bekannte Kali Tool zu verfassen.
Was ist Trufflehog
Leaked credentials oder secret keys sollten nicht in Github Repositorys zu finden sein, dennoch passiert dies öfters als gedacht. Genau hier setzt das Tool truffleHog3 an, es scannt Repositorys und mehr auf Geheimnisse wie Zugangsdaten, API Keys usw.
Das Security-Tool durchläuft dabei die gesamte Commit-Historie jedes Branches, prüft jedes diff von jedem commit und sucht nach Geheimnissen.
Möglich wird dies unter anderem durch die Verwendung von regulären Ausdrücken und Entropie.
Mit der Version 3 unterstützt truffleHog inzwischen mehr als 700 verschiedene Key Types von AWS, Azure, Confluent oder Facebook. Eine Übersicht der Detektoren ist hier zu finden.
Folgende Code Quellen werden momentan unterstützt:
- git
- github
- gitlab
- S3
- filesystem
- syslog
Installation
Die Trufflehog Installation erfordert eine funktionierende GO Installation. Alternativ kann auch auf Python Pip zurückgegriffen werden, allerdings wird via Pip momentan keine aktuelle Version angeboten. Für einen Test bietet sich die Docker Variante an.
#Aktuellste Version
git clone https://github.com/trufflesecurity/trufflehog.git
cd trufflehog
go install oder go build
#Via Python Pip (allerdings steht hier nur Version 3.0.x zur Verfügung)
pip3 install trufflehog3
#Die aktuellste Version via Docker Paket laufen lassen
docker run -it -v "$PWD:/pwd" trufflesecurity/trufflehog:latest github --org=trufflesecurity
Anwendungsbeispiele
#Hilfe
trufflehog --help
#github scan mit Optionen
trufflehog github --repo=https://github.com/trufflesecurity/trufflehog
trufflehog github --repo=https://github.com/trufflesecurity/trufflehog --json --only-verified
#AWS scan
trufflehog s3 --bucket=<bucket name> --only-verified
#Dateisystem
trufflehog filesystem --directory=/home/guenny/ansible/repository
Da die aktuellste Version momentan nur via Source/Docker zur Verfügung steht, können Gitlab, S3 und Co nur darüber gescannt werden
git [<flags>] <uri>
Find credentials in git repositories.
github [<flags>]
Find credentials in GitHub repositories.
gitlab --token=TOKEN [<flags>]
Find credentials in GitLab repositories.
filesystem --directory=DIRECTORY
Find credentials in a filesystem.
s3 [<flags>]
Find credentials in S3 buckets.
syslog [<flags>]
Scan syslog
Passwörter und andere Geheimnisse aus Git-Repositories entfernen
Was tun, wenn ein Passwort gefunden wurde?
Git Filter Branch bietet eine Möglichkeit, um dieses Problem zu beheben.
Beispielsweise:
git filter-branch --prune-empty --index-filter "git rm --cached -f --ignore-unmatch löschdatei" -- --all
Git Filter Branch ist ein sehr mächtiges Tool, daher verweist Github selbst auf den BFG Repo Cleaner und git filter-Repo
Mit ersterem lassen sich relativ einfach sensitive Dateien löschen oder ersetzen.
bfg --delete-files id_{dsa,rsa} my-repo.git
bfg --replace-text passwords.txt my-repo.git
git push --force
Wenn ein Passwort im letzten Commit vorhanden ist, würde übrigens auch amend ausreichen:
git commit --amend
Fazit
Vergessene Zugangsdaten in Repositorys schaffen unnötige Sicherheitslücken. Diese lassen sich mit TruffleHog einfach aufspüren. Das Tool unterstützt inzwischen weit mehr als nur Github. So lässt sich der gesamte Software Development Life Cycle/SDLC bei Bedarf überwachen.
Mit TruffleHog Enterprise bietet der Hersteller inzwischen eine GUI in der Cloud an, allerdings lässt er sich diese auch bezahlen. Für eine automatisierte Überwachung der eigenen Repositorys lassen sich alle Aufgaben via Kommandozeile erledigen.
Ähnliche Artikel
Security Tools: Trivy – Docker Container auf Sicherheitslücken durchsuchen
Nuclei - schneller Schwachstellen Scanner mit praktischen Vorlagen
Security: GVM 21.04 - mit Docker in 15 Minuten zum OpenVAS Schwachstellen Scanner