
titus v1.2.8
Hochleistungs-Scanner für Geheimnisse. CLI, Go-Bibliothek, Burp Suite-Erweiterung und Chrome-Erweiterung. 487 Erkennungsregeln mit Live-Validierung von Anmeldeinformationen.
Titus: Hochleistungs-Secrets-Scanner
Titus ist ein Hochleistungs-Secrets-Scanner, der Anmeldedaten, API-Schlüssel und Tokens in Quellcode, Dateien und der Git-Historie erkennt. Er wird mit 487 Erkennungsregeln ausgeliefert, die Hunderte von Diensten und Anmeldedatentypen abdecken und aus NoseyParker und Kingfisher stammen. Titus läuft als CLI, Go-Bibliothek, Burp-Suite-Erweiterung und Chrome-Browser-Erweiterung — alle teilen dieselbe Erkennungs-Engine und denselben Regelsatz.
Entwickelt für Sicherheitsingenieure, Penetrationstester und DevSecOps-Teams, kombiniert Titus Hyperscan/Vectorscan-beschleunigtes Regex-Matching mit Live-Validierung von Anmeldedaten, um geleakte Secrets in Ihrer gesamten Codebasis zu finden und zu verifizieren.
Inhaltsverzeichnis
- Warum Titus?
- Installation
- Schnellstart
- Scan-Optionen
- Bewertung von Funden
- Go-Bibliothek
- Burp-Suite-Erweiterung
- Browser-Erweiterung
- Aus dem Quellcode erstellen
- Mitwirken
- Lizenz
Warum Titus?
- Schnelles Secrets-Scannen: Regex-Matching beschleunigt durch Hyperscan/Vectorscan, sofern verfügbar, mit einem reinen Go-Fallback für Portabilität auf jeder Plattform.
- Breite Abdeckung der Anmeldedatenerkennung: 487 Regeln erkennen API-Schlüssel, Tokens und Anmeldedaten für AWS, GCP, Azure, GitHub, Slack, Datenbanken, CI/CD-Systeme und Hunderte weiterer Dienste.
- Live-Validierung von Secrets: Erkannte Secrets werden gegen ihre Quell-APIs geprüft, um zu bestätigen, ob sie aktiv sind, wodurch Fehlalarme reduziert und die Behebung priorisiert werden.
- Risikobasierte Schweregradbewertung: Jeder Fund erhält eine numerische Bewertung (0–100) und eine Schweregradstufe (info → kritisch). Die Bewertungen werden durch statische Regel-Metadaten, den Kontext der Code-Zugänglichkeit und Live-API-Aufrufe abgestimmt, die den tatsächlichen Auswirkungsradius einer Anmeldedatei messen — sodass die gefährlichsten Funde immer zuerst auftauchen.
- Scannen von Container-Images: Scannen Sie Docker- und OCI-Images direkt aus jeder Registry, jedem Tarball oder OCI-Layout-Verzeichnis — kein Docker-Daemon oder Binary erforderlich.
- Mehrere Schnittstellen für jeden Workflow: Scannen Sie über die CLI, betten Sie es als Go-Bibliothek ein, scannen Sie HTTP-Verkehr passiv in Burp Suite oder scannen Sie Webseiten in Chrome während des Anwendungssicherheitstests.
- Extraktion aus Binärdateien: Extrahieren und scannen Sie Secrets aus Office-Dokumenten, PDFs, Archiven (zip, tar, 7z), mobilen Apps (APK, IPA), Browser-Erweiterungen und mehr.
Installation
Laden Sie ein vorgefertigtes Binary von der Releases-Seite herunter oder erstellen Sie es aus dem Quellcode:```bash make build
Die Binärdatei befindet sich unter `dist/titus`.
## Schnellstart```bash
# Scan a file for secrets
titus scan path/to/file.txt
# Scan a directory for leaked credentials
titus scan path/to/directory
# Scan a public GitHub repository (no token needed)
titus scan github.com/org/repo
# Scan a public GitLab project (no token needed)
titus scan gitlab.com/namespace/project
# Scan git history for secrets in past commits
titus scan --git path/to/repo
# Scan a Docker / OCI image (pulled from a registry — no docker daemon required)
titus scan --docker alpine:latest
# Validate detected secrets against source APIs
titus scan path/to/code --validate
Ergebnisse werden in einen Datenspeicher (titus.ds standardmäßig) geschrieben und auf der Konsole ausgegeben.
Scan-Optionen
GitHub- & GitLab-Scanning
Öffentliche Repositories direkt per URL scannen — kein API-Token erforderlich:```bash
Scan a GitHub repository
titus scan github.com/kubernetes/kubernetes
Scan a GitLab project
titus scan gitlab.com/gitlab-org/cli
Full URLs work too
titus scan https://github.com/org/repo titus scan https://gitlab.com/namespace/project.git
Für organisationsweite oder benutzerweite Scans verwenden Sie die dedizierten Unterbefehle:```bash
# Scan all public repos in a GitHub org
titus github --org kubernetes
# Scan all repos in a GitHub org with a token (private repos + higher rate limits)
titus github --org kubernetes --token $GITHUB_TOKEN
# Scan all repos for a GitHub user
titus github --user octocat
# Scan all projects in a GitLab group
titus gitlab scan --group mygroup --token $GITLAB_TOKEN
# Scan a single repo with git history (finds deleted secrets)
titus github owner/repo --git
Tokens sind für öffentliche Repositories optional. Setze GITHUB_TOKEN oder GITLAB_TOKEN (oder verwende --token) für den Zugriff auf private Repositories und höhere API-Ratenlimits.
Docker / OCI Image Scanning
Scanne Container-Images direkt — kein Docker-Daemon, keine docker-Binärdatei erforderlich. Titus zieht Images direkt aus jeder OCI-Registry über HTTPS (unter Verwendung von Anmeldedaten aus ~/.docker/config.json) oder liest Images aus einem lokalen docker save-Tarball oder einem OCI-Image-Layout-Verzeichnis. Anschließend scannt es die Image-Manifest-/Konfigurationsmetadaten und jede reguläre Datei in jeder Schicht, einschließlich Dateien aus unteren Schichten, die durch spätere Schichten gelöscht wurden (da Secrets aus der Image-Historie wiederherstellbar bleiben können).```bash
Pull from a registry and scan
titus scan --docker alpine:latest titus scan docker://ghcr.io/owner/repo:tag
Scan an image saved to a tarball:
docker save my-app:latest -o my-app.tar
podman save my-app:latest -o my-app.tar
titus scan --docker ./my-app.tar
Scan an OCI image layout directory:
docker buildx build --output type=oci,dest=./img/ .
skopeo copy docker://my-app:latest oci:./img:latest
titus scan --docker ./img/
Die Authentifizierung verwendet Ihre vorhandene Docker-/Podman-Konfiguration (`~/.docker/config.json`, `${XDG_RUNTIME_DIR}/containers/auth.json`). Private Registries, die eine neue Anmeldung erfordern, sollten zuerst mit `docker login` (oder `podman login` oder `crane auth login`) authentifiziert werden — titus fragt nicht nach Anmeldedaten.
### Anzeigen von Scan-Ergebnissen
Verwenden Sie `report`, um die Ergebnisse eines vorherigen Scans erneut zu lesen:```bash
# Human-readable summary of detected secrets
titus report
# JSON output for programmatic processing
titus report --format json
# SARIF output for CI/CD integration with GitHub Advanced Security
titus report --format sarif
# Report from a specific datastore
titus report --datastore path/to/titus.ds
Du kannst das Ausgabeformat auch zur Scanzeit mit --format steuern:```bash
titus scan path/to/code --format json
### Erkannte Secrets validieren