Introduction
Das Verhindern von Sicherheitsvorfällen ist weniger kostspielig und weniger störend als das Reagieren auf sie. Durch die proaktive Härtung Ihrer Umgebung auf GitHub verringern Sie Ihre Gefährdung durch Bedrohungen wie kompromittierte Anmeldeinformationen, nicht autorisierten Zugriff und Lieferkettenangriffe.
Dieser Leitfaden konzentriert sich in erster Linie auf die Schutzmaßnahmen, die Sie in Organisationen anwenden können, die Teil eines Unternehmens GitHub Enterprise Cloudsind. Um GitHub Enterprise Cloud zu testen, sehen Sie Einrichten einer Testversion von GitHub Enterprise Cloud.
Viele der hier erwähnten Sicherheitsfunktionen von GitHub, wie z. B. Sicherheitskonfigurationen, Verzweigungsregeln und Zugriffskontrollen, können sowohl auf der Organisationsebene als auch auf der Unternehmensebene konfiguriert werden.
Sofortige Aktionen
Hierbei handelt es sich um Aktionen, die Sie derzeit ergreifen können, um eine Sicherheitsbasislinie im gesamten Unternehmen einzurichten.
- Einrichten der Sicherheitsabdeckung
- Kontrollen verschärfen
- Überprüfen und Einschränken des Zugriffs
- Ausführen einer geheimen Risikobewertung
Sicherheitsabdeckung einrichten
Stellen Sie sicher, dass die GitHub Tools von GitHub Advanced Security in allen Repositorys aktiv sind. Anstatt tools einzeln zu aktivieren, können Sie eine Sicherheitskonfiguration erstellen und anwenden, bei der es sich um eine Sammlung von Sicherheitseinstellungen handelt, die in einer einzigen Aktion auf Repositorys in Ihrer Organisation oder im Unternehmen angewendet werden können.
Eine starke Konfiguration kann Folgendes umfassen:
Secret scanning
** und **Pushschutz** , um Geheimnisse zu erkennen, die bereits in Ihrem Code-Repository gespeichert sind, und zu verhindern, dass neue Geheimnisse gepusht werden. Durchleckte Anmeldeinformationen sind eine der häufigsten Ursachen für Sicherheitsverletzungen.
Code scanning
** um Sicherheitsrisiken und Codierungsfehler in Ihrem Quellcode zu identifizieren, bevor sie die Produktion erreichen.
Dependabot alerts
** und **Dependabot security updates** um Sie über bekannte Sicherheitsrisiken und Schadsoftware in Ihren Abhängigkeiten zu informieren und Pullanforderungen automatisch zu öffnen, um anfällige Abhängigkeiten zu aktualisieren.
Weitere Informationen finden Sie unter Erstellen einer benutzerdefinierten Sicherheitskonfiguration (Organisationen) und Erstellung einer angepassten Sicherheitskonfiguration für dein Unternehmen (Unternehmen).
Kontrollen verschärfen
GitHub bietet Ihnen eine Reihe von Steuerelementen, die steuern, was in Ihren Repositorys und Ihrer Organisation passieren kann. Die geeignete Konfiguration dieser Steuerelemente ist für die Verringerung des Risikos unerlässlich.
Schützen Sie kritische Verzweigungen mit Regelsätzen
Mit Regelsätzen können Sie Schutzregeln für Verzweigungen und Tags in einem oder mehreren Repositorys definieren. Verwenden Sie sie, um Anforderungen wie Pull-Anforderungsüberprüfungen und Statusüberprüfungen (z. B. automatisierte Sicherheitsüberprüfungen) zu erzwingen. Dadurch kann verhindert werden, dass nicht autorisierte Änderungen den Produktionscode erreichen, einschließlich Änderungen von kompromittierten Konten.
Weitere Informationen finden Sie unter Erstellen von Regelsätzen für Repositorys in deiner Organisation (Organisationen) und Durchsetzung der Code-Governance in Ihrem Unternehmen mithilfe von Regelsätzen (Unternehmen).
Steuern, wer den Push-Schutz umgehen kann
Wenn Sie den Pushschutz aktivieren, sind Mitwirkende, die versuchen, einen erkannten Geheimschlüssel zu pushen, blockiert, haben jedoch standardmäßig die Möglichkeit, den Block zu umgehen. Die delegierte Umgehung erfordert, dass Umgehungsanforderungen einen Überprüfungs- und Genehmigungszyklus durchlaufen, sodass keine Umgehung ohne eine explizite, überwachte Entscheidung erfolgen kann.
Siehe Aktivieren der delegierten Umgehung für den Pushschutz.
Erzwingen der Abhängigkeitsüberprüfung für Pullanforderungen
Mit der Abhängigkeitsprüfungsaktion können Sie anfällige Abhängigkeiten abfangen, bevor sie zusammengeführt werden, indem bekannte Sicherheitsrisiken in den Abhängigkeitsänderungen einer Pullanforderung angezeigt werden. Ähnlich wie der Push-Schutz für Geheimnisse dient er als Torwächter statt als nachträgliche Warnung. Sie können abhängigkeitsüberprüfungen für Pullanforderungen in Ihrer Organisation erzwingen.
Siehe Informationen zur Abhängigkeitsüberprüfung und Durchsetzen der Abhängigkeitsüberprüfung in einer Organisation.
Überprüfen und Einschränken des Zugriffs
Der Zugriff, der bei der Erteilung angemessen war, ist möglicherweise nicht mehr erforderlich. Die regelmäßige Überprüfung, wer und was Zugriff auf eine Organisation hat, reduziert das Risiko nicht autorisierter Aktionen.
Überwachen des Mitgliedszugriffs und Befolgen des Prinzips der geringsten Rechte
Stellen Sie sicher, dass Mitglieder von Organisationen nur über den benötigten Zugriff verfügen. Entfernen Sie Mitglieder, die keinen Zugriff mehr benötigen, stufen Sie Rollen herab, bei denen breitere Berechtigungen nicht gerechtfertigt sind, und überprüfen Sie den Zugriff externer Mitarbeiter. Übermäßig eingeschränkter Zugriff erhöht den Explosionsradius jedes kompromittierten Kontos.
Wenn die Standardrollen weniger zulässig sind als für eine Organisation erforderlich, können Sie benutzerdefinierte Rollen erstellen, die nur die spezifischen Berechtigungen erteilen, die jedes Team benötigt. Dies ist besonders nützlich für Organisationen, die ein Zero Trust-Sicherheitsmodell einführen.
Siehe Identifizieren der rollen, die für Ihr Unternehmen erforderlich sind.
Überprüfen autorisierter Anwendungen
OAuth apps und GitHub Apps die in einer Organisation installiert sind, können auf Daten zugreifen. Überprüfen Sie die Liste der autorisierten Anwendungen, und entfernen Sie alle nicht mehr benötigten oder nicht mehr vertrauenswürdigen Anwendungen. Veraltete Integrationen bieten eine oft übersehene Angriffsfläche.
Siehe Überprüfen und Ändern der installierten GitHub Apps und Informationen zu OAuth App-Zugriffseinschränkungen.
Einschränken des Netzwerkzugriffs mit IP-Zulassungslisten
Wenn Ihre Organisation GitHub Enterprise Cloud verwendet und aus bekannten Netzwerkbereichen arbeitet, konfigurieren Sie eine IP-Zulassungsliste, um den Zugriff auf GitHub-Ressourcen nur auf diese Bereiche zu beschränken. Dadurch wird eine Schutzebene gegen die Nutzung kompromittierter Anmeldeinformationen von unerwarteten Standorten hinzugefügt.
Siehe Verwaltung erlaubter IP-Adressen für deine Organisation und Einschränken des Netzwerkdatenverkehrs in deinem Unternehmen mit einer Liste zugelassener IP-Adressen.
Ausführen einer geheimen Risikobewertung
Führen Sie eine kostenlose, bedarfsorientierte Überprüfung der Repositories einer Organisation durch, die Ihnen eine zeitpunktbezogene Übersicht über die Gesamtzahl der aktuell offenbarten Geheimnisse in Ihrer Organisation bietet.
Siehe Ausführen der geheimen Risikobewertung für Ihre Organisation.
Kurzfristige Aktionen
Diese Aktionen sind auch wichtig für Ihren Sicherheitsstatus, erfordern jedoch möglicherweise mehr Vorbereitung und Koordination, bevor Sie sie bereitstellen können.
- Authentifizierung stärken
- Härtung Ihrer GitHub Actions Workflows
- Vorbereiten eines Sicherheitsvorfalls
Authentifizierung stärken
Schwache oder kompromittierte Authentifizierung ist eine der häufigsten Ursachen für die Kontoübernahme. Das Erfordern einer starken Authentifizierung in Ihrer Organisation reduziert dieses Risiko erheblich.
Erfordert die zweistufige Authentifizierung (2FA) für alle Mitglieder, wodurch sichergestellt wird, dass ein kompromittiertes Kennwort allein nicht ausreicht, um auf ein Konto zuzugreifen. Bevor Sie die Anforderung erzwingen, kommunizieren Sie mit Ihrer Organisation, damit Mitglieder Zeit haben, 2FA einzurichten.
Organisationen auf GitHub Enterprise Cloud können weitergehen, indem sie einmaliges Anmelden (Single Sign-On, SSO) erzwingen, das die Authentifizierung über Ihren Identitätsanbieter zentralisiert.
Siehe Erfordern der zweistufigen Authentifizierung in deiner Organisation und Informationen zur Identitäts- und Zugriffsverwaltung mit SAML-SSO.
Härtung Ihrer GitHub Actions Workflows
GitHub Actions Workflows haben häufig Zugriff auf geheime Schlüssel, Bereitstellungsanmeldeinformationen und Schreibberechtigungen für Ihr Repository. Ohne sorgfältige Konfiguration kann eine kompromittierte oder schädliche Aktion Daten exfiltrieren oder schädlichen Code einfügen.
Explizite Deklarieren von Workflowberechtigungen
Standardmäßig erhalten Workflows über die GITHUB_TOKEN weitreichende Berechtigungen. Deklarieren Sie explizit die mindestberechtigungen, die für jeden Workflow erforderlich sind, indem Sie den permissions Schlüssel in Ihren Workflowdateien verwenden. Dadurch wird der Schaden begrenzt, den ein kompromittierter Workflowschritt verursachen kann.
Anheften von Drittanbieteraktionen, um SHAs zu übernehmen
Wenn Sie auf eine Drittanbieteraktion per Tag verweisen (z. B. v1), kann das Tag verändert werden, um auf einen anderen Code zu zeigen. Durch das Anheften von Aktionen an einen vollständigen Commit-SHA wird sichergestellt, dass Sie immer den genauen Code ausführen, den Sie überprüft und genehmigt haben. Dies schützt vor Supply Chain-Angriffen, bei denen ein Tag entführert wird.
Einschränken, welche Aktionen ausgeführt werden können
Konfigurieren Sie Richtlinien auf Organisation oder Unternehmensebene, um zu steuern, welche Aktionen ausgeführt werden dürfen. Sie können Aktionen auf diejenigen beschränken, die von GitHub, Aktionen von überprüften Erstellern oder einer bestimmten Zulassungsliste erstellt wurden.
Weitere Informationen zu all diesen Praktiken sowie zu zusätzlichen Methoden, die speziell für die sichere Verwendung von GitHub Actions gelten, finden Sie unter Referenz zur sicheren Verwendung.
Fortlaufende Sicherheitspraktiken
Diese Praktiken sollten Teil Ihres regelmäßigen Betriebsrhythmus werden.
- Überwachen Ihres Sicherheitsstatus mit Sicherheitsübersicht
- Führen Sie regelmäßige Sicherheitskampagnen aus, um die Sicherheitsschulden zu reduzieren
- Fahren Sie mit der Überwachung des Zugriffs und der Berechtigungen fort.
- Beibehalten von Abhängigkeiten auf dem neuesten Stand
- Drehen von geheimen Schlüsseln und Erzwingen des Ablaufs
Überwachen Ihres Sicherheitsstatus mit Sicherheitsübersicht
Die Sicherheitsübersicht bietet Ihnen eine zentrale Ansicht der Sicherheitslandschaft einer Organisation und eines Unternehmens. Verwenden Sie sie, um nachzuverfolgen, welche Repositorys Sicherheitsfeatures aktiviert haben und Repositorys mit offenen Warnungen identifizieren, sodass neue Risiken nicht unbemerkt bleiben.
Siehe Informationen zur Sicherheitsübersicht.
Führen Sie regelmäßige Sicherheitskampagnen aus, um die Sicherheitsschulden zu reduzieren
Im Laufe der Zeit können Sicherheitswarnungen angesammelt werden. Mithilfe von Sicherheitskampagnen können Sie Wartungsbemühungen organisieren und priorisieren, Entwicklern Gruppen von Warnungen zuweisen (mit Hilfe von Copilot-generierten Fixes) oder Benachrichtigungen direkt Copilotzuweisen.
Sicherheitskampagnen stehen Organisationen auf GitHub Team oder GitHub Enterprise Cloud mit GitHub Secret Protection or GitHub Code Security aktiviert zur Verfügung. Siehe Erstellen und Verwalten von Sicherheitskampagnen.
Fahren Sie mit der Überwachung des Zugriffs und der Berechtigungen fort.
Wenn Personen einer Organisation beitreten und diese verlassen und sich Projekte weiterentwickeln, ändern sich die Zugriffsanforderungen. Planen Sie regelmäßige Überprüfungen von:
- Mitgliedschaft und Rollen der Organisation.
- Außerhalb des Mitarbeiterzugriffs.
- Berechtigungen auf Repositoryebene und Teamzuweisungen.
- Autorisierte OAuth und GitHub Apps.
Dadurch wird sichergestellt, dass der Zugriff weiterhin am Prinzip der geringsten Rechte ausgerichtet bleibt, auch wenn sich Ihre Organisation ändert.
**
Abhängigkeiten aktuell halten
Anfällige Abhängigkeiten sind ein häufiger Einstiegspunkt für Angreifer. Dependabot kann Pullanforderungen automatisch öffnen, um Abhängigkeiten mit bekannten Sicherheitsrisiken zu aktualisieren, diese Pullanforderungen müssen jedoch weiterhin umgehend überprüft und zusammengeführt werden.
Richten Sie einen Prozess für das Triagieren und Zusammenführen von Dependabot Pullanforderungen ein, damit Sicherheitsupdates nicht angehalten werden.
Siehe Über Auto-Triage-Regeln von Dependabot und Verwalten von Pull Requests für Abhängigkeitsupdates.
Aktualisieren von Geheimnissen und Durchsetzen des Ablaufs
Je länger eine Anmeldeinformation existiert, desto wahrscheinlicher ist es, dass sie offengelegt oder gestohlen wird. Wo möglich:
- Festlegen von Ablaufdatumsangaben für personal access tokens.
- Wechseln Sie Geheimnisse regelmäßig.
Informationen zum Verwalten von Token finden Sie unter Verwalten deiner persönlichen Zugriffstoken und Tokenexpirierung und Widerruf.
Nächste Schritte
- Selbst bei starken präventiven Kontrollen können Sicherheitsvorfälle weiterhin auftreten. Es gibt mehrere kritische Tools und Reaktionsprozesse, die Sie im Voraus einrichten sollten. Siehe Vorbereiten eines Sicherheitsvorfalls.