Was sind Geheimnisse?
Geheime Schlüssel sind Anmeldeinformationen, die Zugriff auf vertrauliche Systeme und Daten gewähren. Häufige Beispiele sind:
- API-Schlüssel und Token, die für die Authentifizierung mit externen Diensten verwendet werden
- Datenbank-Kennwörter und Verbindungszeichenfolgen
- Anmeldeinformationen und Dienstkontotoken für Cloudanbieter
- Zertifikate und Verschlüsselungsschlüssel
Wenn Geheimnisse in Repositories eingefügt werden, werden sie zu hartcodierten Anmeldeinformationen, die direkt in Ihren Quellcode oder Konfigurationsdateien eingebettet sind. Diese hartcodierten Geheimschlüssel werden Teil Ihres Git-Verlaufs und bleiben auch nach dem Entfernen aus dem neuesten Commit zugänglich. Dies bedeutet, dass die Behebung eines Anmeldeinformationslecks mehr erfordert als das Löschen der Datei; Sie müssen die Zugangsdaten auch zurückziehen und erneuern, um unbefugten Zugriff zu verhindern.
Wie geheime Schlüssel offengelegt werden
**Geheimnissprawl** tritt auf, wenn sich Anmeldeinformationen über Repositorys, Teams und Systeme ausbreiten, ohne zentrale Verwaltung oder Übersicht. Dies macht es schwierig, nachzuverfolgen, welche Geheimnisse vorhanden sind, wo sie verwendet werden, und ob sie verfügbar gemacht wurden. Geheimnisse gelangen in der Regel durch mehrere gängige Muster in Repositorys.
Entwicklungsprozesse
- Hartcodierte Anmeldeinformationen, die während des lokalen Tests hinzugefügt und versehentlich zugesichert wurden
- Geheime Schlüssel in Konfigurationsdateien wie
.envDateien oder Infrastruktur-as-Code-Vorlagen - Beispielanmeldeinformationen, die echte API-Schlüssel oder Token in Dokumentations-, Wiki- oder README-Dateien enthalten
Repositoryverwaltung
- Legacy-Repositories, die Zugangsdaten enthalten, die zwar vergessen, aber dennoch aktiv sind
- Geheimnisse, die in GitHub Problemen, Pull-Request-Kommentaren, Diskussionen oder Gists geteilt wurden
- Von externen Mitwirkenden oder Auftragnehmern eingeführte Zugangsdaten
Versionskontrollausbreitung
- Geheime Schlüssel bleiben auch nach dem Entfernen aus dem aktuellen Code im Git-Verlauf erhalten.
- Anmeldeinformationen gelangen in geforkte Repositories, Sicherungssysteme und CI/CD-Protokolle.
- Öffentliche Repositories mit offengelegten Geheimnissen werden von Suchmaschinen und spezialisierten Scan-Diensten indiziert.
Sicherheitsrisiken
Offengelegte Geheimnisse können zu mehreren Arten von Sicherheitsvorfällen führen.
Nicht autorisierter Zugriff
Credential Leaks gewähren nicht autorisierten Benutzern direkten Zugriff auf Ihre Systeme. Sobald sie verfügbar gemacht wurde, können hartcodierte Geheimschlüssel ausgenutzt werden, um:
- Bereitstellen von Infrastruktur oder Diensten auf Ihrem Konto mithilfe von durchleckten Cloudanbieteranmeldeinformationen
- Zugreifen auf vertrauliche Kunden- oder Organisationsdaten über kompromittierte Datenbankanmeldeinformationen
- Zugriff auf Produktionssysteme über verfügbar gemachte Dienstkontotoken erhalten
Datenschutzverletzungen
Anmeldeinformationenlecks gewähren nicht autorisierten Benutzern direkten Zugriff auf Ihre Systeme, was zu Datenschutzverletzungen führt. Sobald Angreifer Zugriff mit offengelegten Anmeldeinformationen erhalten, können sie vertrauliche Daten exfiltrieren, wichtige Informationen ändern oder löschen und die Kundenvertrauen gefährden. Datenschutzverletzungen erfordern sofortige Reaktion auf Vorfälle, einschließlich Sperrung von Anmeldeinformationen, Systembehebung und Bewertung des Umfangs und der Auswirkungen der Verletzung.
Supply Chain-Angriffe
Verfügbar gemachte Paketregistrierungstoken können verwendet werden, um schädliche Versionen Ihrer Software zu veröffentlichen, die sich auf nachgeschaltete Benutzer und Organisationen auswirken, die von Ihren Paketen abhängig sind.
Finanzielle Auswirkungen
Offengelegte Geheimnisse können Ihr Unternehmen auf verschiedene Weise Geld kosten.
-
**Unerwartete Cloudrechnungen**: Durch leckige API-Schlüssel können Angreifer Ihre Cloudressourcen verwenden. Sie können Computeinstanzen ausführen, Daten speichern oder Kryptowährung auf Ihrem Konto speichern und große Rechnungen generieren. -
**Reaktion auf Vorfälle**: Die Untersuchung von Sicherheitsverletzungen, das Aktualisieren von Anmeldeinformationen und die Prüfung von Systemen erfordert erhebliche Zeitaufwände im Bereich Technik und Ressourcen. -
**Rechtliche Kosten**: Datenschutzverletzungen können zu Geldbußen, Rechtsgebühren und Benachrichtigungskosten führen. -
**Langfristiger Schaden**: Verlorene Kunden, höhere Versicherungskosten und verpasste Geschäftsmöglichkeiten, nachdem Sicherheitsvorfälle öffentlich geworden sind.
Vertrauliche Sicherheit mit GitHub
GitHub stellt Tools bereit, mit denen Sie geheime Lecks verhindern, erkennen und beheben können:
1. Verhindern, dass neue Geheimnisse eingefügt werden
Aktivieren Sie Pushschutz, um Code während Vorgängen zu scannen und Commits mit erkannten Geheimnissen zu blockieren, bevor sie in Ihr Repository gelangen. Dadurch wird verhindert, dass hartcodierte Anmeldeinformationen zu Ihrer Codebasis hinzugefügt werden, und es werden Entwickler am Risikopunkt Echtzeitfeedback bereitgestellt, wobei sowohl Anbietermuster für bekannte Dienste als auch Nicht-Anbietermuster wie private Schlüssel und generische API-Schlüssel abgedeckt werden.
Ermutigen Sie einzelne Entwickler, den Pushschutz für ihre persönlichen Konten zu aktivieren, um alle ihre Pushvorgänge unabhängig von den Organisationsrichtlinien zu schützen GitHub. Dadurch wird eine unkontrollierte Verbreitung von Geheimnissen verhindert, indem durchgesickerte Zugangsdaten erfasst werden, bevor sie Ihre Repositories erreichen.
2. Erkennen vorhandener Geheimnisse
Hiermit secret scanning können Sie Ihre Repositorys kontinuierlich auf festcodierte Geheimnisse überwachen und Warnungen generieren, wenn Anmeldeinformationen erkannt werden, sodass Sie kompromittierte Anmeldeinformationen schnell widerrufen und erneuern können. Über die standardmäßige Erkennung von Anbietermustern hinaus können Sie die Überprüfung auf Nichtanbietermuster erweitern und benutzerdefinierte Muster für organisationsspezifische geheime Schlüssel definieren. Dies hilft Ihnen, Einblick in die nicht kontrollierte Verbreitung von Geheimnissen innerhalb Ihrer Organisation zu erhalten.
Nächste Schritte
So schützen Sie Ihre Organisation vor geheimen Lecks:
-
Führen Sie eine kostenlose geheime Risikobewertung aus, um Ihre aktuelle Exposition zu verstehen. Ausführen einer Sicherheitsrisikobewertung
-
Aktivieren Sie den Push-Schutz, um zu verhindern, dass neue Geheimnisse eingefügt werden.
-
Aktivieren Sie secret scanning, um mit der Erkennung vorhandener geheimer Datenlecks zu beginnen.
-
Etablieren Sie sichere Methoden zur Verwaltung von Anmeldeinformationen für Ihre Entwicklerteams.
Für eine Übersicht von GitHubs geheimen Sicherheitsfeatures, siehe Informationen zur geheimen Sicherheit mit GitHub.