Skip to main content

Informationen zum Pushschutz

Der Push-Schutz verhindert, dass Mitwirkende geheime Schlüssel in ein Repository übertragen und eine Warnung generiert, wenn ein Mitwirkender den Block umgeht. Push-Schutz kann auf Repository-, Organisations- und Benutzerkontoebene angewendet werden.

Wer kann dieses Feature verwenden?

Push-Schutz für Repositorys und Organisationen ist für folgende Repositorytypen verfügbar:

  • Öffentliche Repositorys kostentlos
  • Private und interne Repositorys in Organisationen, die GitHub Enterprise Cloud verwenden und GitHub Advanced Security aktiviert haben gehören

Informationen zum Pushschutz

Push-Schutz ist ein secret scanning-Feature, das darauf ausgelegt ist, vertrauliche Informationen, z. B. Geheimnisse oder Token, zuerst an Ihr Repository zu übertragen. Im Gegensatz zu secret scanning, das geheime Schlüssel erkennt, nachdem sie committet wurden. Push-Schutz scannt Ihren Code proaktiv nach geheimen Schlüsseln während des Push-Vorgangs und blockiert den Push, falls vorhanden.

Mithilfe von Push-Schutz können Sie die Risiken vermeiden, die mit offengelegten geheimen Schlüsseln verbunden sind, z. B. nicht autorisierter Zugriff auf Ressourcen oder Dienste. Mit diesem Feature erhalten Entwickler sofortiges Feedback und können potenzielle Probleme beheben, bevor sie zu sicherheitsrelevanten Problemen werden.

Sie können den Push-Schutze aktivieren:

  • Auf Repository-/Organisationsebene, wenn Sie ein Repository-Administrator oder ein Organisationsbesitzer sind. Auf der Registerkarte Sicherheit Ihres Repositorys werden Warnungen angezeigt, wenn ein Mitwirkender des Repositorys den Push-Schutz umgeht.
  • Für Ihr Konto in GitHub als Benutzer. Diese Art von Push-Schutz wird als „Push-Schutz für Benutzer“ bezeichnet. Es schützt Sie davor, geheime Schlüssel an alle öffentliches Repository auf GitHub zu übertragen, es werden jedoch keine Warnungen generiert.

Weitere Informationen zu Geheimnissen und Dienstanbietern, für die der Push-Schutz unterstützt wird, findest du unter „Unterstützte Scanmuster für geheime Schlüssel“.

So funktioniert der Push-Schutz

Der Push-Schutz funktioniert auf folgende Art und Weise:

Wenn der Push-Schutz während eines Push-Versuchs einen potenziellen geheimen Schlüssel erkennt, wird der Push blockiert und eine detaillierte Meldung bereitgestellt, in der der Grund für den Block erläutert wird. Sie müssen den betreffenden Code überprüfen, alle vertraulichen Informationen entfernen und den Push wiederholen.

Standardmäßig kann jeder Benutzer mit Schreibzugriff auf das Repository den Pushschutz umgehen, indem er einen der in der Tabelle beschriebenen Umgehungsgründe angibt. Wenn Mitwirkende einen Pushschutzblock für ein Geheimnis umgehen, werden in GitHub folgende Schritte ausgeführt:

  • Erstellen einer Warnung auf der Registerkarte Sicherheit des Repositorys.
  • Hinzufügen des Umgehungsereignisses zum Überwachungsprotokoll
  • Senden einer E-Mail-Warnung an Besitzerinnen eines Organisationskontos oder eines persönlichen Kontos, Sicherheitsmanagerinnen und Repositoryadministrator*innen, die das Repository beobachten, die einen Link zum Geheimnis und den Grund enthält, warum es zugelassen wurde

Diese Tabelle zeigt das Verhalten von Warnungen für die einzelnen Methoden, mit denen ein Benutzer einen Pushschutzblock umgehen kann.

Grund der UmgehungWarnungsverhalten
Wird in Tests verwendet.GitHub erstellt eine geschlossene Warnung, die als „In Tests verwendet“ aufgelöst wurde.
Ist ein falsch positives Ergebnis.GitHub erstellt eine geschlossene Warnung, die als „False Positive“ aufgelöst wurde.
Wird später behoben.GitHub erstellt eine offene Warnung.

Sie können auch den Push-Schutz auch über die REST-API umgehen. Weitere Informationen finden Sie unter REST-API-Endpunkte für die Geheimnisüberprüfung.

Über die Vorteile des Push-Schutzes

  • Präventive Sicherheit: Der Push-Schutz fungiert als erster Abwehrmechanismus, indem Code zum Zeitpunkt des Pushs auf geheime Schlüssel überprüft wird. Dieser präventive Ansatz hilft, potenzielle Probleme abzufangen, bevor sie in Ihr Repository zusammengeführt werden.

  • Sofortiges Feedback: Entwickler erhalten sofortiges Feedback, wenn während eines Push-Versuchs ein potenzieller geheimer Schlüssel erkannt wird. Diese sofortige Benachrichtigung ermöglicht eine schnelle Behebung und verringert die Wahrscheinlichkeit, dass vertrauliche Informationen verfügbar gemacht werden.

  • Reduziertes Risiko von Datenlecks: Durch Blockieren von Commits, die vertrauliche Informationen enthalten, reduziert der Push-Schutz das Risiko versehentlicher Datenlecks erheblich. Dies hilft beim Schutz vor unbefugtem Zugriff auf Ihre Infrastruktur, Dienste und Daten.

  • Effizientes Management von geheimen Schlüsseln: Anstatt retrospektiv mit offengelegten geheimen Schlüsseln umzugehen, können Entwickler Probleme an der Quelle angehen. Dies macht die Verwaltung geheimer Schlüssel effizienter und weniger zeitaufwendig.

  • Integration in CI/CD-Pipelines: Der Push-Schutz kann in Ihre Pipelines für kontinuierliche Integration/Kontinuierliche Bereitstellung (CI/CD) integriert werden, um sicherzustellen, dass jeder Push nach geheimen Schlüsseln gescannt wird, bevor er bereitgestellt wird. Dadurch wird Ihrer DevOps-Methode eine zusätzliche Sicherheitsebene hinzugefügt.

Jeder Benutzer über GitHub kann auch den Push-Schutz für sich selbst innerhalb ihrer individuellen Einstellungen aktivieren. Das Aktivieren des Push-Schutzes für Ihr Benutzerkonto bedeutet, dass Ihre Pushs immer geschützt sind, wenn Sie auf öffentliches Repository GitHub pushen, ohne sich darauf verlassen zu müssen, dass Push-Schutz aktiviert ist. Weitere Informationen findest du unter Pushschutz für Benutzer.

Anpassen des Push-Schutzes

Sobald der Push-Schutz aktiviert ist, können Sie ihn weiter anpassen:

Integrieren in CI/CD-Pipelines

Integrieren Sie Push-Schutz in Ihre Continuous Integration/Continuous Deployment (CI/CD)-Pipelines, um sicherzustellen, dass Scans während automatisierter Prozesse ausgeführt werden. Dies umfasst in der Regel das Hinzufügen von Schritten in ihrer Pipeline-Konfigurationsdatei, um GitHub-APIs aufzurufen oder GitHub Actions zu verwenden.

Weiterführende Themen