21 bewährte Sicherheitspraktiken für GitHub

GitHub ist äußerst proaktiv, wenn es um den Schutz der Sicherheit seiner Nutzer und ihres Codes geht. Zusätzlich zur Förderung und Durchsetzung der mehrstufigen Authentifizierung (MFA) wurden auch Instrumente entwickelt und eingesetzt, um unbefugten Zugriff und die Offenlegung sensibler Informationen in öffentlichen Repositorien zu verhindern. Demzufolge wird die Mehrzahl der Sicherheitsvorfälle im Zusammenhang mit GitHub durch Fehler der Benutzer verursacht. Dieser Artikel untersucht einige bewährte Vorgehensweisen, die Organisationen, die GitHub nutzen, anwenden können, um die Sicherheit ihrer GitHub-Repositories sowie des darin enthaltenen Codes und der Daten zu gewährleisten.

Whitepaper herunterladen Weitere Informationen

Die 21 wichtigsten Sicherheits-Best Practices für GitHub

Hier sind die 21 besten Sicherheitspraktiken für GitHub:

#1. Speichern Sie niemals Anmeldeinformationen und sensible Daten auf GitHub.

GitHub ist ein Versionskontrollsystem, daher bleiben die darauf gespeicherten Daten für immer erhalten. Tools wie git-secrets können verhindern, dass Code mit sensiblen Daten auf GitHub hochgeladen wird.

#2. Forking deaktivieren

Durch das Forken wird eine Kopie eines GitHub-Repositorys erstellt, ohne die ursprüngliche Codebasis zu beeinflussen. Deaktivieren Sie das Forking, um die Kontrolle über den Quellcode zu behalten und sicherzustellen, dass sensible Daten nicht durch einen unautorisierten Fork hinzugefügt und veröffentlicht werden.

#3. Sichtbarkeitsänderungen deaktivieren

GitHub unterstützt sowohl öffentliche als auch private Repositories, und privilegierte Benutzer können die Sichtbarkeit eines Repositories ändern. Beschränken Sie den Kreis der Benutzer, die dies tun können, indem Sie die Berechtigung für alle Mitglieder Ihrer Organisation deaktivieren, die „Repository-Sichtbarkeitsänderung“ in den GitHub-Mitgliederberechtigungen zu ändern.

#4. Validieren Sie Ihre GitHub-Anwendung

Organisationen arbeiten häufig mit externen Entwicklern zusammen, die Zugriff auf GitHub-Konten haben. Diese externen Benutzer sollten nur eingeschränkten Zugriff haben, und alle Commits sollten validiert werden, bevor sie einem Repository hinzugefügt werden.

#5. Zwei-Faktor-Authentifizierung erzwingen

GitHub ermöglicht es Organisationen, die Verwendung der Zwei-Faktor-Authentifizierung (2FA) zu erzwingen. Die verpflichtende Zwei-Faktor-Authentifizierung für alle Benutzer verringert das Risiko von Codelecks oder Schadcode aufgrund unsicherer Konten.

#6. SSO implementieren (nur GitHub Enterprise)

GitHub Enterprise ermöglicht es Organisationen, Berechtigungen für verschiedene Ressourcen detailliert zuzuweisen. Darüber hinaus ermöglicht SAML Single Sign-On (SSO) die Integration von GitHub in die IAM- Lösung einer Organisation.

#7. Zugriff auf zulässige IP-Adressen beschränken

Mithilfe von IP-Whitelisting kann eine Organisation den Zugriff auf lokale Geräte oder unternehmensweite VPNs einschränken. Dies schützt vor Zugriffen ehemaliger Mitarbeiter oder unbefugter Geräte auf das Repository.

#8. Berechtigungen externer Mitwirkender streng verwalten

Externe Mitwirkende dürfen nur für einen kurzen Zeitraum an einem Projekt beteiligt sein, und der Zugriff sollte nach Abschluss ihrer Tätigkeit entfernt werden. Die Verwaltung externer Konten reduziert Sicherheitslücke und die nutzerbasierte Preisgestaltung von GitHub.

#9. Berechtigungen rechtzeitig widerrufen

Benutzer benötigen möglicherweise keinen Zugriff mehr auf das Repository, nachdem sie das Unternehmen oder das Projekt verlassen haben. Durch den Entzug des Zugriffs oder die Umstellung auf schreibgeschützten Zugriff wird das mit dem Konto verbundene Risiko verringert.

#10. Commit-Unterzeichnung erforderlich

Die wahrgenommene Identität eines Benutzers auf GitHub kann einfach durch Modifizierung seiner Git-Konfiguration geändert werden. Die Code-Signatur signiert Commits kryptografisch, um Authentizität und Nachverfolgbarkeit zu gewährleisten.

#11. Code-Review vor Commits erzwingen

Eine Code-Überprüfung kann potenzielle Sicherheitslücken oder bösartige Funktionen in einem Commit aufdecken. GitHub kann so konfiguriert werden, dass alle Einreichungen Pull-Anfragen sind, wodurch eine Überprüfung vor dem Zusammenführen möglich ist.

#12. Fügen Sie eine Security.md-Datei hinzu.

Die Datei security.md dokumentiert offiziell die Sicherheitsrichtlinie für ein Repository. Dies kann genutzt werden, um Sicherheitsanforderungen und Meldeverfahren für Schwachstellen auszutauschen.

#13. Rotieren Sie SSH-Schlüssel und persönliche Zugriffstoken (PATs)

GitHub verwendet SSH-Schlüssel und PATs als Alternative zu Passwörtern zur Authentifizierung. Diese sollten regelmäßig ausgetauscht werden, um potenziell kompromittierte Zugangsdaten zu entfernen.

#14. Überprüfung des gesamten auf GitHub hochgeladenen Codes

Legacy- und externe Codebasen können im Rahmen einer Anwendung zu einem GitHub-Repository hinzugefügt werden. Dieser Code sollte auf mögliche Schwachstellen geprüft werden, bevor er in eine Codebasis aufgenommen wird.

#15. Überprüfen Sie Ihre GitHub-Audit-Logs auf verdächtige Aktivitäten.

GitHub bietet eine umfassende Protokollierung der Aktivitäten innerhalb des GitHub-Kontos einer Organisation. Durch die regelmäßige Überprüfung dieser Protokolle können potenziell verdächtige Aktivitäten und kompromittierte Konten identifiziert werden.

#16. Warnmeldungen für anfällige Abhängigkeiten aktivieren

Die Anwendung kann Schwachstellen von ihren Abhängigkeiten erben, insbesondere von Drittanbieter- und Open-Source- Abhängigkeiten. GitHub bietet die Möglichkeit, Schwachstellen in den öffentlichen Repositories einer Organisation automatisch zu melden.

#17. Setzen Sie die automatisierte Geheimnisprüfung vor der Commit-Phase ein.

Fest im Code einer Anwendung einprogrammierte Zugangsdaten bergen das Risiko der Offenlegung, selbst in privaten Repositories. Die automatisierte Geheimnisprüfung identifiziert und verhindert, dass diese Zugangsdaten in den Code aufgenommen werden.

#18. Lösche deinen GitHub-Verlauf

Die umfangreichen Versionsverläufe von GitHub können problematisch sein, wenn sensible Daten im Code enthalten sind. Die Historie kann mit dem Befehl git filter-branch umgeschrieben werden.

#19. Git-Branchschutz aktivieren

Der Git-Branchschutz verhindert unautorisierte Änderungen an bestimmten Branches. Dies schützt diese Branches vor Code- und Datenverlust durch versehentliches Löschen oder Git-Squash-Merge.

#20. Füge sensible Dateien zu .gitignore hinzu

Ein lokales Git-Repository benötigt möglicherweise Zugriff auf bestimmte SSK-Schlüssel und Zugriffstoken, die nicht in ein Git-Repository übertragen werden sollten. Diese Dateien in .gitignore aufnehmen verhindert, dass sie hochgeladen werden.

#21. Nutzen Sie einen „Geheimnistresor“-Service

Ein Geheimnisspeicher speichert sensible Informationen – Passwörter, kryptografische Schlüssel usw. –, auf die eine Anwendung zugreifen muss. Ein Tresor bietet einen stärkeren Schutz als GitHub.

Achieving GitHub Security with Check Point

Für Organisationen, die GitHub-Repositories nutzen, ist deren Absicherung unerlässlich, um den darin enthaltenen Code und die sensiblen Daten zu schützen.

For more advice on keeping your GitHub repos safe, check out this more comprehensive list of GitHub security best practices. Check Point offers solutions to secure applications throughout the software development lifecycle (SDLC).

Learn more about how your organization can enhance GitHub security with Check Point Developer Security.