Geheimniserkennung
Kurz gesagt
Die Geheimniserkennung findet sensible Informationen wie API-Schlüssel, Passwörter, Tokens und Anmeldedaten im Quellcode, in Konfigurationsdateien oder Protokollen und hilft, 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, Anmeldedaten, Verschlüsselungsschlüssel oder Tokens zu identifizieren. Dies ist entscheidend, da Angreifer, wie Credential-Stuffing-Bots oder Cloud-Ressourcen-Hijacker, diese exponierten Geheimnisse ausnutzen können, um unbefugten Zugriff zu erlangen.
Diese “Geheimnisse” werden häufig 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 gepusht 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 offener 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-Verstoß, der mit einem offengelegten PowerShell-Skript mit fest codierten Anmeldedaten begann.
- Unterstützen Sie die Einhaltung: Frameworks 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 Code in die Produktion bereitgestellt wird, und verhindert größere Verstöße.
Wie funktioniert die Geheimniserkennung
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-Zugriffsschlüssel, JWT-Tokens oder SSH-Privatschlüssel.
- Kontext korrelieren: Tools bewerten, ob der erkannte String tatsächlich ein Geheimnis oder ein Fehlalarm ist.
- Alarmieren und beheben: Teams erhalten eine Warnung, die es ihnen ermöglicht, kompromittierte Geheimnisse zu widerrufen und zu rotieren.
- Kontinuierliche Überwachung: Integrieren Sie die Erkennung in Versionskontrolle oder CI/CD für kontinuierlichen Schutz.
Wer verwendet Geheimniserkennung
- Entwickler: Erkennen Sie hartcodierte Geheimnisse, bevor Sie sie im Repository festschreiben.
- DevSecOps-Teams: Integrieren Sie die Geheimniserkennung in die Pipelines.
- Sicherheitsingenieure: Überwachen Sie Repositories und Container auf Lecks.
- Compliance-Teams: Stellen Sie sicher, dass Anmeldedaten sicher verwaltet werden.
Wann sollte die Geheimniserkennung implementiert werden?
- Vor dem Commit (verwenden Sie den git commit-msg Hook): Setzen Sie Pre-Commit-Hooks ein, 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 Geheimnisse vor der endgültigen Integration zu erfassen.
- Kontinuierlich (denken Sie an dies 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-Anmeldedaten 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 US-Dollar für unbefugte Nutzung verursacht.
Mit aktivierter Geheimniserkennung markiert das System die Offenlegung sofort, widerruft das offengelegte Anmeldedatum automatisch und benachrichtigt das DevSecOps-Team, um einen potenziellen Cloud-Kompromiss zu verhindern.
Hauptfunktionen von Geheimniserkennungstools
| Fähigkeit | Beschreibung |
|---|---|
| Mustererkennung | Erkennt gängige Anmeldeinformationenformate (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 Sichtbarkeit darüber, wo Geheimnisse gefunden werden. |
| Richtlinien-Durchsetzung | Blockiert Commits, die Geheimnisse enthalten. |
Beliebte Tools zur Geheimniserkennung
- Plexicus ASPM – Einheitliche 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-Historie.
- 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 hartcodieren.
- Verwenden Sie Geheimnismanager wie AWS Secret Manager oder HashiCorp Vault.
- Ändern Sie Anmeldeinformationen regelmäßig.
- Überwachen Sie kontinuierlich auf neu 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 Commits oder widerrufen Schlüssel automatisch, wenn Geheimnisse gefunden werden.
3. Ist die Geheimniserkennung nur für Quellcode?
Nein, sie scannt auch Logs, Container, IaC-Dateien und Cloud-Speicher.
4. Was passiert, nachdem ein Geheimnis gefunden wurde?
Der Schlüssel sollte widerrufen, rotiert und sofort ersetzt werden.