Geheimniserkennung
Kurz gesagt
Die Geheimniserkennung findet sensible Informationen wie API-Schlüssel, Passwörter, Tokens und Anmeldeinformationen im Quellcode, in Konfigurationsdateien oder Protokollen, um eine versehentliche Offenlegung zu verhindern.
Ein Geheimniserkennungs-Tool scannt Repositories, Pipelines und Container, um Datenlecks und unbefugten Zugriff zu verhindern.
Das frühzeitige Erkennen von Geheimnisproblemen hilft, Ihre Anwendungen, APIs und Cloud-Dienste vor Angreifern zu schützen.
Was ist Geheimniserkennung?
Geheimniserkennung ist der Prozess des Scannens von Codebasen, CI/CD-Pipelines und der Cloud, um exponierte Geheimnisse wie API-Schlüssel, Anmeldeinformationen, Verschlüsselungsschlüssel oder Tokens zu identifizieren. Dies ist entscheidend, da Angreifer, wie z.B. Credential-Stuffing-Bots oder Cloud-Ressourcen-Entführer, diese exponierten Geheimnisse ausnutzen können, um unbefugten Zugriff zu erlangen.
Diese “Geheimnisse” werden oft verwendet, um Benutzer zu authentifizieren oder sich mit Diensten wie Slack-Webhooks oder Stripe-Zahlungs-APIs zu verbinden. Wenn sie versehentlich in ein öffentliches Repository wie GitHub hochgeladen werden, können Angreifer sie ausnutzen, um Zugang zu dem System, der Datenbank oder dem Cloud-Konto zu erhalten, mit dem Sie sich verbinden.
Warum ist Geheimniserkennung wichtig?
Geheimnisse können in Umgebungsdateien, Quellcode, YAML-Konfigurationsdateien und CI/CD-Protokollen auftauchen.
Wenn Geheimnisse offengelegt werden, können sie zu erheblichen Sicherheitsverletzungen führen.
Das Verständnis und die Minderung dieser Risiken können die Sicherheit und Compliance erheblich verbessern. Die vier größten Risiken sind:
- Verhindern Sie unbefugten Zugriff: Ein offengelegter geheimer Schlüssel kann einem Angreifer den Zugriff auf Produktionsdaten oder Cloud-Dienste ermöglichen.
- Vermeiden Sie kostspielige Verstöße: Kompromittierte Anmeldedaten gehören zu den Hauptursachen für Datenlecks, wie der Uber 2022 Vorfall, der mit einem offengelegten PowerShell-Skript begann, das fest codierte Anmeldedaten enthielt.
- Unterstützen Sie die Einhaltung von Vorschriften: Rahmenwerke wie SOC 2, GDPR und ISO 27001 erfordern den Schutz sensibler Daten und Geheimnisse.
- Reduzieren Sie menschliche Fehler: Die Automatisierung der Geheimniserkennung hilft Ihnen, Lecks zu erkennen, bevor der Code in die Produktion bereitgestellt wird, und verhindert größere Verstöße.
Wie Geheimniserkennung funktioniert
Geheimniserkennungstools verwenden Mustererkennung, Entropieanalyse und maschinelles Lernen, um sensible Informationen in Ihrem Code oder Ihrer Infrastruktur zu lokalisieren und zu klassifizieren.
Hier ist der typische Arbeitsablauf:
- Code und Konfigurationen scannen: Das Tool scannt Repositories, Container und IaC (Infrastructure as Code)-Vorlagen nach Anmeldedaten und Tokens.
- Muster identifizieren: Es erkennt gängige Geheimnistypen wie AWS-Zugangsschlüssel, JWT-Tokens oder SSH-Private-Keys.
- Kontext korrelieren: Tools bewerten, ob der erkannte String tatsächlich ein Geheimnis oder ein Fehlalarm ist.
- Alarmieren und beheben: Teams erhalten einen Alarm, der es ihnen ermöglicht, kompromittierte Geheimnisse zu widerrufen und zu rotieren.
- Kontinuierliche Überwachung: Integrieren Sie die Erkennung in die Versionskontrolle oder CI/CD für kontinuierlichen Schutz.
Wer verwendet Geheimniserkennung
- Entwickler: Erkennen Sie fest codierte Geheimnisse, bevor Sie sie im Repository festschreiben.
- DevSecOps-Teams: Integrieren Sie die Geheimniserkennung in Pipelines.
- Sicherheitsingenieure: Überwachen Sie Repositories und Container auf Lecks.
- Compliance-Teams: Stellen Sie sicher, dass Anmeldeinformationen sicher verwaltet werden.
Wann sollte die Geheimniserkennung implementiert werden?
- Vor dem Commit (verwenden Sie einen git commit-msg Hook): Verwenden Sie Pre-Commit-Hooks, um die Offenlegung von Geheimnissen zu blockieren, bevor sie festgeschrieben werden.
- Während CI/CD (abstimmen mit git push): Automatisieren Sie die Erkennung bei jedem Build oder Deployment, um alle Geheimnisse vor der endgültigen Integration zu erfassen.
- Kontinuierlich (denken Sie daran als Teil eines git pull oder Post-Deploy-Prozesses): Überwachen Sie regelmäßig die Produktionsumgebung auf neu offengelegte Geheimnisse.
Beispiel in der Praxis
Ein Entwicklungsteam schiebt versehentlich AWS-Anmeldeinformationen in ein öffentliches GitHub-Repo. Innerhalb weniger Stunden versuchen Angreifer, diese Schlüssel zu verwenden, um EC2-Instanzen zu starten, was innerhalb von sechs Stunden Kosten von etwa 15.000 USD für unbefugte Nutzung verursacht.
Mit aktivierter Geheimniserkennung markiert das System die Offenlegung sofort, widerruft das offengelegte Anmeldeinformation automatisch und benachrichtigt das DevSecOps-Team, um einen potenziellen Cloud-Kompromiss zu verhindern.
Wichtige Fähigkeiten von Geheimniserkennungstools
| Fähigkeit | Beschreibung |
|---|---|
| Mustererkennung | Erkennt gängige Anmeldeinformationsformate (API-Schlüssel, Tokens, SSH). |
| Entropie-Scannen | Findet zufällig aussehende Zeichenfolgen, die Geheimnisse sein könnten. |
| Automatisierte Widerrufung | Widerruft oder rotiert kompromittierte Anmeldeinformationen. |
| Pipeline-Integration | Scannt Code automatisch in CI/CD-Workflows. |
| Zentrales Dashboard | Bietet Einblick, wo Geheimnisse gefunden werden. |
| Richtliniendurchsetzung | Blockiert Commits, die Geheimnisse enthalten. |
Beliebte Werkzeuge zur Geheimniserkennung
- Plexicus ASPM – Vereinheitlichte AppSec-Plattform, die Geheimniserkennung, SCA und IaC-Scannen kombiniert.
- GitGuardian – Erkennt offengelegte Anmeldeinformationen in Repositories.
- TruffleHog – Open-Source-Tool zum Scannen von Repos und Commit-Verlauf.
- Gitleaks – Leichter Scanner zur Erkennung von Geheimnissen in Git-Repos.
- SpectralOps – Überwacht Geheimnisse in CI/CD, Containern und APIs.
Beste Praktiken für das Geheimnismanagement
- Niemals Geheimnisse im Quellcode hartkodieren.
- Verwenden Sie Geheimnis-Manager wie AWS Secret Manager oder HashiCorp Vault.
- Ändern Sie regelmäßig Anmeldeinformationen.
- Überwachen Sie kontinuierlich auf neue offengelegte Geheimnisse.
- Schulen Sie das Entwicklerteam in sicheren Codierungspraktiken.
Verwandte Begriffe
- SCA (Software Composition Analysis)
- ASPM (Application Security Posture Management)
- DevSecOps
- Cloud Security Posture Management (CSPM)
- CI/CD Security
FAQ: Geheimniserkennung
1. Was ist der Unterschied zwischen Geheimniserkennung und Geheimnisverwaltung?
Die Geheimniserkennung findet exponierte Geheimnisse; die Geheimnisverwaltung speichert, rotiert und kontrolliert den Zugriff auf sie sicher.
2. Kann die Geheimniserkennung Lecks automatisch verhindern?
Ja, viele Tools blockieren automatisch Commits oder widerrufen Schlüssel, wenn Geheimnisse gefunden werden.
3. Ist die Geheimniserkennung nur für Quellcode?
Nein, sie scannt auch Protokolle, Container, IaC-Dateien und Cloud-Speicher.
4. Was passiert, nachdem ein Geheimnis gefunden wurde?
Der Schlüssel sollte widerrufen, rotiert und sofort ersetzt werden.