Skip to content

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

trufflehog


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.

Download



Ä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

Shellclear - History automatisch auf sensible Inhalte untersuchen

Das kleine Tool shellclear automatisiert das Überprüfen der Shell History auf sensible Inhalte wie Passwörter oder Zugangstoken.

shellclear

Unterstützt werden Shells wie Bash, Zsh, PowerShell und Fish. Das Tool greift auf ein Pattern-File zurück, welches beliebig erweitert werden kann.

Beim Start der Shell werden die Inhalte der History automatisch über dieses YAML-Pattern-File auf Passwörter und Token geprüft.

Sind sensible Inhalte vorhanden, werden diese gelistet und können gelöscht werden.

Momentan wird auf AWS Access Keys, Github Tokens, Gitlab Tokens, Slack, Cloudflare, Twitter, Facebook und vieles mehr getestet.

Installation

curl -sS https://raw.githubusercontent.com/rusty-ferris-club/shellclear/main/install/install.sh | bash

Einbinden in die Shell

nano ~/.bashrc
eval $(shellclear --init-shell)

bzw. 

nano ~/.zshrc
eval $(shellclear --init-shell)

Powershell

$PROFILE

Invoke-Expression (&shellclear --init-shell)

Fish

nano ~/.config/fish/config.fish

shellclear --init-shell | source

shellclear-findings

Verwendung

Durch das Einbinden in beispielsweise Zsh oder Bash prüft shellclear bei jedem Start automatisch auf sensible Inhalte in der History. Dieser Vorgang kann zusätzlich manuell gestartet und konfiguriert werden. Auch das Banner "your shell is clean from sensitive data" lässt sich ausblenden.

#sensible Inhalte suchen
shellclear find

#sensible Inhalte als Tabelle ausgeben
shellclear find --format table

#sensible Inhalte bereinigen
shellclear clear

#banner ausblenden
shellclear --no-banner

#eigene Config festlegen
shellclear config

#history verstecken
shellclear stash

Fazit

Kleiner Helfer für den Alltag, der tut, was er soll. Dank des YAML Formats ist das Tool beliebig erweiterbar. Abgesehen davon sind die größten Cloud-Firmen bereits integriert und das Tool erfüllt im Hintergrund seinen Zweck.

MERGE: PostgreSQL 14 Cluster auf PostgreSQL 15 aktualisieren

Wie jedes Jahr im Herbst wurde auch 2022 eine neue PostgreSQL Version veröffentlicht.

postgres_logo

Zu den größten Neuerungen von Version 15 zählt sicherlich die Einführung des MERGE Befehls. Zusätzlich wurde die logische Replikation um das Filtern nach Zeilen erweitert. Ebenfalls erwähnenswert ist die Einführung von zstd. Der Datenkompressionsalgorithmus aus dem Hause Facebook spart Zeit und Plattenplatz.

Alle Neuerungen lassen sich dem Release Log entnehmen.

Installation und Update auf PostgreSQL 15 unter Debian/Ubuntu

# Create the file repository configuration:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Update the package lists:
sudo apt-get update

# Install the latest version of PostgreSQL.
sudo apt-get -y install postgresql-15

# Sicherung erstellen
sudo su postgres
pg_dumpall > Sicherung
exit

#Vorhandene Cluster anzeigen
pg_lsclusters

#Neues Cluster anhalten
sudo pg_dropcluster --stop 15 main

#Vorhandenes Cluster aktualisieren
sudo pg_upgradecluster 14 main

# Neues Cluster prüfen
sudo pg_ctlcluster 15 main status
sudo pg_isready

#Altes Cluster verwerfen
sudo pg_dropcluster 14 main

Was bedeutet: WARNING apt does not have a stable CLI interface. Use with caution in scripts?

Beim Ausführen von Skripten auf einer Linux Konsole, die apt install beinhalten, taucht folgende Meldung auf: 

WARNING : apt does not have a stable CLI interface. Use with caution in scripts.

Doch warum wird eine Warnung angezeigt? Die Lösung ist relativ simpel.

Vor Jahren hatte ich mal eine Übersicht von apt vs. apt-get veröffentlicht. Ich habe sie euch unten noch einmal eingebunden.
Im Artikel ist zu lesen, dass apt unter anderem einen grafischen Fortschrittsbalken ausgibt.

Genau das ist einer der Gründe, warum das Kommandozeilentool bei der Verwendung in Scripten ein WARNING meldet. Denn diese Fortschritts-Ausgabe kann von Scripten fehlerhaft interpretiert werden und ist im Prinzip nur für Endnutzer gemacht, aber nicht wirklich für Skripte. Darum sollte hier eher auf apt-get zurückgegriffen werden.

Gleiches gilt übrigens auch für apt show programm-name. Hier sollte besser apt-cache show programm-name verwendet werden.

apt vs. apt-get
apt Kommando apt-get Kommando Funktion
apt install apt-get install Pakete installieren
apt remove apt-get remove Pakete deinstallieren
apt list --upgradable -- Anstehende Updates anzeigen
apt list dpkg list Pakete auflisten
apt purge apt-get purge Pakete und Konfiguration entfernen
apt update apt-get update Repository aktualisieren
apt upgrade apt-get upgrade Anstehende Pakete aktualisieren
apt full-upgrade apt-get dist-upgrade Anstehende Pakete aktualisieren und deinstallieren
apt autoremove apt-get autoremove Nicht benötigte Pakete deinstallieren
apt search apt-cache search Pakete suchen
apt show apt-cache show Paketdetails anzeigen
apt edit-sources -- sources.list editieren

Wie lösche ich Festplatten sicher und vollständig?

Festplatten richtig löschen ist wichtig, das ist nicht erst seit gestern bekannt. In den Medien tauchen immer wieder Fälle auf, bei denen Daten auf alten Festplatten gefunden werden.

Früher hatte ich für so einen "finalen" Löschvorgang oft DBAN verwendet. Das Wipe-Tool ist aber in die Jahre gekommen und hat hin und wieder Probleme beim Booten und erkennen von Festplatten.

Glücklicherweise gibt es inzwischen weitere Lösungen, um Daten auf SATA Festplatten vollständig zu löschen bzw. random zu überschreiben.

ABAN

Auf DBAN Darik's Boot and Nuke folgte ABAN. Anthony DeRobertis Boot & Nuke basiert allerdings auf dem neueren Debian 11 (Bullseye), funktioniert aber genauso wie das altbekannte DBAN.

ABAN-boot

Installation

ISO herunterladen, auf einen USB-Stick schreiben, booten und löschen.

Um Daten auf einen USB-Stick zu schreiben, bietet sich Ventoy an, welches bei Bedarf viele Extra-Funktionen besitzt.

Alternativ bietet sich Unetbootin oder Rufus an. Balea Etcher gehört hier nicht mehr zu meiner ersten Wahl.

Die einfachste Variante ist sicher dd über die Kommandozeile:

sudo dd if=aban.iso of=/dev/sdx status=progress 

bzw.

sudo dd if=shredos.img of=/dev/sdx  status=progress


Download


ShredOS

Ebenfalls Open-Source und ein Tool, um Festplatten sicher vor der Entsorgung zu löschen, ist ShredOS. Der Disk-Wiper basiert auf nwipe, was wiederum ein Fork von dwipe ist, welches in DBAN zum Einsatz kam. ShredOS unterstützt sowohl 32bit als auch 64bit Prozessoren. Der Eraser lässt sich via PXE booten und unterstützt einen Headless Mode, welcher sich via telnet ansprechen lässt.

nwipe

Beim Start bootet ShredOS automatisch nwipe im ersten virtuellen Terminal (Alt+F1). Weitere Tools wie hdparm, smartmontools oder hexeditor befinden sich auf dem zweiten virtuellen Terminal (Alt+F2)

Die Installation erfolgt über den gleichen Weg wie bereits oben erwähnt.

Solltet ihr das Projekt und die Entwickler dahinter unterstützen wollen, könnt ihr das gerne tun.

Download


Wie lösche ich SSDs?

SSDs basieren auf einer anderen Technologie als herkömmliche ATA Festplatten. Hier empfiehlt es sich, das Laufwerk zu verschlüsseln oder mit den Hersteller Tools zu wipen. Ein Überschreiben mit Zufallsdaten ist keine sichere Variante!

SSDs mit Hersteller-Tools sicher löschen

Nahezu jeder Hersteller bietet eigenen Software zum Verwalten von SSDs an, meist ist dort eine Funktion zum sicheren Löschen der Daten enthalten.

Für Samsung ist das die Magician Software und für Intel das Solidigm Storage Tool. Da Intels NAND-SSD-Geschäft  von SK hynix übernommen wurde, steht die Intel® SSD Toolbox nicht mehr zur Verfügung.

SanDisk hat ebenfalls ein SDD Dashboard Tool, welches wipen unterstützt. Gleiches gilt für Corsair mit seiner SSD Toolbox.

Weitere Tools wären Crucial Storage Executive oder Kingston SSD Manager.

 

Fazit

Letztendlich ist die physische Zerstörung natürlich die beste Variante, das sollte jedem bewusst sein. Dennoch bieten Tools wie ShredOS oder ABAN eine gute Möglichkeit Daten sicher zu löschen, ohne den Akkuschrauber verwenden zu müssen.

Viel Spaß auf dem Wertstoffhof