
Ah shhgit! Finde Geheimnisse in deinem Code. Geheimniserkennung für deine GitHub-, GitLab- und Bitbucket-Repositories.
Das versehentliche Durchsickern von Geheimnissen – Benutzernamen und Passwörter, API-Token oder private Schlüssel – in einem öffentlichen Code-Repository ist der Albtraum von Entwicklern und Sicherheitsteams. Betrüger scannen ständig öffentliche Code-Repositories nach diesen Geheimnissen, um einen Fuß in die Systeme zu bekommen. Code ist vernetzter denn je, sodass diese Geheimnisse oft Zugang zu privaten und sensiblen Daten bieten – Cloud-Infrastrukturen, Datenbankserver, Zahlungsgateways und Dateispeichersysteme, um nur einige zu nennen.
shhgit kann kontinuierlich Ihre Code-Repositories scannen, um diese Geheimnisse zu finden und Sie zu warnen.
Sie haben zwei Möglichkeiten. Ich empfehle die erste, da sie Ihnen Zugriff auf die Live-Weboberfläche von shhgit gibt. Verwenden Sie die zweite Option, wenn Sie nur die Befehlszeilenschnittstelle möchten.
git clone https://github.com/eth0izzle/shhgit.gitdocker-compose buildconfig.yaml-Datei (z.B. Hinzufügen Ihrer GitHub-Tokens)docker-compose upHinweis: Diese Methode enthält nicht die shhgit-Weboberfläche
go get github.com/eth0izzle/shhgit lädt shhgit herunter und erstellt es automatisch. Oder Sie können dieses Repository klonen und go build -v -i ausführen.config.yaml-Datei und siehe Verwendung unten.shhgit kann auf zwei Arten arbeiten: durch Nutzung der öffentlichen APIs von GitHub, Gist, GitLab und BitBucket oder durch Verarbeitung von Dateien in einem lokalen Verzeichnis.
Standardmäßig läuft shhgit im ersten 'öffentlichen Modus'. Für GitHub und Gist müssen Sie ein Zugriffstoken erhalten und bereitstellen (siehe diese Anleitung; es erfordert keine Bereiche oder Berechtigungen). Und dann platzieren Sie es unter github_access_tokens in config.yaml). GitLab und BitBucket benötigen keine API-Tokens.
Sie können auch auf die Signaturen verzichten und shhgit mit Ihrer eigenen benutzerdefinierten Suchanfrage verwenden, z.B. um alle AWS-Schlüssel zu finden, könnten Sie shhgit --search-query AWS_ACCESS_KEY_ID=AKIA verwenden. Und um im lokalen Modus zu laufen (und vielleicht in Ihre CI-Pipelines zu integrieren), können Sie das --local-Flag übergeben (siehe Verwendung unten).
--clone-repository-timeout
Maximale Zeit, die das Klonen eines Repositorys in Sekunden dauern sollte (Standard: 10)
--config-path
Sucht nach config.yaml im angegebenen Verzeichnis. Wenn nicht gesetzt, versucht es, es im Verzeichnis der shhgit-Binärdatei und im aktuellen Verzeichnis zu finden.
--csv-path
Geben Sie einen Pfad an, wenn Sie gefundene Geheimnisse in eine CSV-Datei schreiben möchten. Leer lassen, um zu deaktivieren.
--debug
Debug-Informationen ausgeben
--entropy-threshold
Findet Zeichenfolgen mit hoher Entropie in Dateien. Höherer Schwellenwert = mehr geheime Geheimnisse, niedrigerer Schwellenwert = mehr falsch-positive Ergebnisse. Auf 0 setzen, um Entropieprüfungen zu deaktivieren (Standard: 5.0)
--local
Geben Sie ein lokales Verzeichnis (absoluter Pfad) an, das gescannt werden soll. Scannt nur das angegebene Verzeichnis rekursiv. Bei lokalem Lauf sind keine Github-Tokens erforderlich.
--maximum-file-size
Maximale Dateigröße in KB, die verarbeitet werden soll (Standard: 512)
--maximum-repository-size
Maximale Repositorygröße in KB, die heruntergeladen und verarbeitet werden soll (Standard: 5120)
--minimum-stars
Nur Repositorys mit dieser oder einer höheren Anzahl von Sternen klonen. Auf 0 setzen, um die Sternanzahl zu ignorieren (Standard: 0)
--path-checks
Auf false setzen, um die Prüfung von Dateinamen/Pfadsignaturen zu deaktivieren, d.h. nur Regex-Muster abgleichen (Standard: true)
--process-gists
Gists in Echtzeit überwachen und verarbeiten. Auf false setzen, um zu deaktivieren (Standard: true)
--search-query
Geben Sie eine Suchzeichenfolge an, um Signaturen zu ignorieren und nach Dateien zu filtern, die diese Zeichenfolge enthalten (regex-kompatibel)
--silent
Alle Ausgaben außer Fehlern unterdrücken
--temp-directory
Verzeichnis zum Speichern von Repositorys/Übereinstimmungen (Standard: "%temp%\shhgit")
--threads
Anzahl der gleichzeitig zu verwendenden Threads (Standard: Anzahl der logischen CPUs)
Die config.yaml-Datei hat 7 Elemente. Eine Standarddatei wird bereitgestellt.
github_access_tokens: # provide at least one token
- 'token one'
- 'token two'
webhook: '' # URL to a POST webhook.
webhook_payload: '' # Payload to POST to the webhook URL
blacklisted_strings: [] # list of strings to ignore
blacklisted_extensions: [] # list of extensions to ignore
blacklisted_paths: [] # list of paths to ignore
blacklisted_entropy_extensions: [] # additional extensions to ignore for entropy checks
signatures: # list of signatures to check
- part: '' # either filename, extension, path or contents
match: '' # simple text comparison (if no regex element)
regex: '' # regex pattern (if no match element)
name: '' # name of the signature
shhgit wird mit 150 Signaturen ausgeliefert. Sie können weitere entfernen oder hinzufügen, indem Sie die config.yaml-Datei bearbeiten.