GitHub
4 Minuten lesen

30 Möglichkeiten, Ihre GitHub Daten zu verlieren (und wie Sie sie vermeiden können)

GitHub ist für Ihr Unternehmen von entscheidender Bedeutung und enthält mehr als nur Quellcode - Ihr geistiges Eigentum und Ihre Schlüsseldaten sind der Motor Ihres Entwicklungsteams. Erfahren Sie, wie Sie die Daten von GitHub vor Löschung, Beschädigung und Veränderung schützen können, um Ihre Abläufe zu sichern.

Geschrieben von
Andy Fernandez
Veröffentlicht am
8. Oktober 2024
Auf sozialen Netzwerken teilen

GitHub ist für Ihr Unternehmen genauso wichtig wie Ihre wichtigsten Produktionsanwendungen. Ihr geistiges Eigentum und Ihr Quellcode müssen unbedingt geschützt werden, aber das ist nicht alles, was GitHub enthält. Die Daten, Konfigurationen und Dateien auf GitHub sind die Grundlage für Ihr Entwicklungsteam und Ihr Unternehmen.

Im Gegensatz zum Hosting Ihres Git-Repositorys in einem Rechenzentrum müssen Sie bei der Nutzung von GitHub als Service anders darüber nachdenken, wie Sie es schützen.  

Wir haben beschlossen, die vielen Möglichkeiten aufzuschlüsseln, wie die "Daten" auf GitHub gelöscht, beschädigt oder verändert werden können.  

Versehentliche Löschung

 

1. Löschen von Repositories, Branches, Dateien, Tags, Releases

Mit ein paar Klicks oder Befehlen können Sie leicht wichtige Teile Ihres Projekts löschen. Egal, ob es sich um ein ganzes Repository oder eine wichtige Datei handelt, versehentliches Löschen ist eine häufige Falle.

Tipp: Prüfen Sie immer doppelt, bevor Sie auf die Löschtaste drücken. Implementieren Sie Regeln zum Schutz von Verzweigungen und schränken Sie ein, wer Repositories löschen darf.

 

2. Missbrauch von Git-Rm und andere Befehle

Verwendung von Git-Rm ohne sich über die Auswirkungen im Klaren zu sein, kann zu unbeabsichtigten Dateientfernungen führen. Kombiniert man dies mit einem übereilten Commit, hat man ein Rezept für fehlenden Code.

Tipp: Machen Sie sich mit den Git-Befehlen vertraut und erwägen Sie, gefährliche Befehle so zu kennzeichnen, dass sie bestätigt werden müssen.

 

Force Push-Fehler: Große Macht bringt große Verantwortung mit sich

Unsachgemäße Verwendung von git push --force

 

3. Force Pushing kann die Remote-Historie überschreiben, wodurch Commits effektiv aus der Existenz gelöscht werden.  

Tipp: Verwenden Sie git push --force-with-lease um ein Sicherheitsnetz hinzuzufügen und zu vermeiden, dass sie zu gemeinsamen Zweigen gedrängt werden.

 

4. Falsches Umschreiben der Geschichte

Befehle wie Git-Rebase oder git filter-branch gefolgt von einem Force Push kann die gemeinsame Historie umschreiben, was die Beteiligten verwirrt und dazu führen kann, dass Commits verloren gehen.

Tipp: Sprechen Sie mit Ihrem Team, bevor Sie die Geschichte umschreiben, und erwägen Sie Alternativen wie Git-Zusammenführung wenn sie zusammenarbeiten.

 

Missgeschicke bei der Fusion: Wenn aus zwei eins wird... Schlecht

 

5. Fehlerhafte Zusammenführungsvorgänge

Wenn Sie Zweige zusammenführen, ohne Konflikte ordnungsgemäß zu lösen, können wichtige Änderungen verworfen werden. Schnelles Zusammenführen kann Code überschreiben, den Sie nicht ändern wollten.

Tipp: Prüfen Sie Zusammenführungskonflikte immer sorgfältig und erwägen Sie, Pull-Requests für Code-Reviews zu verwenden, bevor Sie zusammenführen.

 

Zusammenführungen ohne Vorsicht rückgängig machen

Wenn man einen Merge-Commit rückgängig macht, ohne seine Auswirkungen zu verstehen, kann man erhebliche Teile des Codes entfernen.

Tipp: Verwenden Sie mit einem Git rückgängig machen vorsichtig und stellen Sie sicher, dass Sie keine wichtigen Zusammenführungen rückgängig machen.

 

Fehler in der Branche: Die Gefahren des Missmanagements

 

6. Vernachlässigung der Förderung lokaler Zweige

Lokale Zweige mit wichtiger Arbeit können verschwinden, wenn Ihr Rechner abstürzt oder wenn Sie vergessen, sie vor dem Umzug in eine neue Umgebung zu verschieben.

Tipp: Schieben Sie Ihre Zweige regelmäßig in das entfernte Repository und verwenden Sie GitHub, um den Überblick zu behalten.

 

Überschreiben von Zweigen

Das Erstellen eines neuen Zweigs mit demselben Namen wie ein bestehender Zweig und das erzwungene Verschieben kann den ursprünglichen Zweig löschen.

Tipp: Prüfen Sie die Namen der Zweige sorgfältig und vermeiden Sie es, sie mit Gewalt zu drücken, wenn es nicht unbedingt notwendig ist.

 

Ausweiskatastrophen: Sesam öffne dich... für die Katastrophe

 

7. Unbefugter Zugang und Phishing-Angriffe

Wenn Ihre Anmeldedaten durch Phishing oder auf andere Weise kompromittiert werden, können Angreifer Ihre Repositories löschen oder verändern.

Tipp: Aktivieren Sie die Zwei-Faktor-Authentifizierung, verwenden Sie sichere, eindeutige Passwörter und seien Sie wachsam gegenüber Phishing-Versuchen.

 

8. Offenlegung von Token und SSH-Schlüssel

Durch den Verlust von Zugangstoken oder SSH-Schlüsseln können unbefugte Benutzer die Schlüssel zu Ihrem Reich erhalten.

Tipp: Bewahren Sie Ihre Zugangsdaten sicher auf, wechseln Sie die Token regelmäßig und verwenden Sie die verschlüsselten Geheimnisse von GitHub für sensible Daten.

 

Cyber- und Insider-Bedrohungen: Der Ruf kommt aus dem Inneren des Hauses

 

9. Verärgerte Mitarbeiter und unsachgemäßes Offboarding

Ehemalige Teammitglieder, die noch Zugang haben, können entweder versehentlich oder absichtlich Schaden anrichten.

Tipp: Führen Sie strenge Offboarding-Verfahren ein und überprüfen Sie regelmäßig die Zugriffsrechte des Teams.

 

10. Fehlende Zugangskontrollen

Unzureichende Berechtigungen können zu versehentlichen Löschungen durch wohlmeinende Teammitglieder führen.

Tipp: Verwenden Sie die Berechtigungseinstellungen von GitHub, um zu steuern, wer Zweige und Repositorys pushen, zusammenführen oder löschen darf.

 

Anomalien in der Automatisierung: Schurkenhaft gewordene Roboter

 

11. Fehler in der CI/CD-Pipeline

Automatisierte Skripte können aufgrund von Fehlkonfigurationen Code löschen oder überschreiben und so Ihre hilfreichen Bots in zerstörerische Kräfte verwandeln.

Tipp: Überprüfen Sie Ihre CI/CD-Skripte sorgfältig und testen Sie sie in einer sicheren Umgebung, bevor Sie sie bereitstellen.

 

12. Fehlerhafte Arbeitsabläufe und überhöhte Berechtigungen

GitHub Aktionen mit übermäßigen Berechtigungen können unbeabsichtigte Löschungen durchführen, wenn Skripte schief laufen.

Tipp: Befolgen Sie bei der Konfiguration von Workflows das Prinzip der geringsten Berechtigung und verwenden Sie nach Möglichkeit dedizierte Dienstkonten.

 

Werkzeuge und Befehle, die sich gegen Sie wenden

 

13. Fehler in Git-Clients und falsch konfigurierte Skripte

Softwarefehler oder falsch geschriebene Skripte können Ihr Repository beschädigen oder Daten unerwartet löschen.

Tipp: Halten Sie Ihre Tools auf dem neuesten Stand und überprüfen Sie Skripte doppelt, bevor Sie sie auf wichtigen Repositories ausführen.

 

14. Gefährliche Git-Befehle

Befehle wie git clean -fdx kann nicht verfolgte Dateien und Verzeichnisse entfernen, manchmal mit katastrophalen Folgen.

Tipp: Verwenden Sie solche Befehle mit Vorsicht und erwägen Sie, sie mit der Option -n (Trockenlauf) zu wählen.

 

Rätsel der Datenkorruption: Wenn Bits schlecht werden

 

15. Korrumpierte Repositories

Netzwerkprobleme während Push-/Pull-Vorgängen können Ihr Repository beschädigen, so dass die Daten nicht mehr zugänglich sind.

Tipp: Sichern Sie Ihre Repositorys regelmäßig und verwenden Sie bei Bedarf die in Git integrierten Wiederherstellungswerkzeuge.

 

16. Probleme mit Binärdateien und Git-LFS-Missmanagement

Das Übertragen großer Binärdateien ohne Git LFS kann zu Leistungsproblemen führen. Das unsachgemäße Löschen von LFS-Objekten kann große Dateien unzugänglich machen.

Tipp: Verwenden Sie Git LFS für große Dateien und achten Sie auf Speicherplatzkontingente und -grenzen.

 

Konfiguration Kalamitäten: Sich selbst für das Scheitern einrichten

 

17. Fehlkonfiguration der Repository-Einstellungen

Falsche Einstellungen können zu einer unbeabsichtigten Datenfreigabe oder -löschung führen.

Tipp: Überprüfen Sie regelmäßig Ihre Repository-Einstellungen, insbesondere wenn Änderungen von mehreren Administratoren vorgenommen werden.

 

18. Falsch angewandte Regeln zum Schutz der Branche

Zu freizügige Regeln könnten Push- oder Löschvorgänge ermöglichen, mit denen Sie nicht gerechnet haben.

Tipp: Stellen Sie strenge Regeln für den Schutz von Zweigstellen auf und setzen Sie die erforderlichen Überprüfungen durch.

 

Die Gefahren der vorübergehenden Speicherung und zeitbasierter Aktionen

 

19. Verlust von unsynchronisierter Arbeit

An temporären Speicherorten gespeicherte Daten oder nicht gespeicherte Arbeit können durch Systemabstürze oder Bereinigungsvorgänge verloren gehen.

Tipp: Speichern Sie Ihre Arbeit häufig und übertragen Sie Änderungen häufig in entfernte Zweige.

 

20. Geplante Aufträge, die schief gehen

Cron-Aufträge oder geplante Aufgaben können bei falscher Konfiguration ungewollt Daten löschen.

Tipp: Überwachen Sie geplante Aufgaben und stellen Sie sicher, dass sie wie vorgesehen ausgeführt werden, insbesondere wenn es um Löschungen geht.

 

Submodul- und Synchronisationspannen

 

21. Git-Submodul-Missmanagement

Das falsche Entfernen von Submodulen oder das Ziehen von Updates kann lokale Änderungen überschreiben.

Tipp: Verstehen Sie die Funktionsweise von Submodulen, bevor Sie sie verwenden, und dokumentieren Sie ihre Verwendung für Ihr Team.

 

22. Konflikte mit anderen VCS-Werkzeugen und Sync-Diensten

Die Verwendung mehrerer Versionskontrollsysteme oder die Synchronisierung von Repositories mit Cloud-Diensten kann zu Beschädigungen führen.

Tipp: Beschränken Sie sich auf ein VCS pro Projekt und vermeiden Sie die Synchronisierung von Repository-Ordnern mit Diensten wie Dropbox.

 

Spieglein, Spieglein an der Wand: Die Gefahren einer fehlerhaften Repository-Spiegelung

 

23. Mit Befehlen wie git push --mirror kann ohne entsprechende Vorsicht das gesamte Ziel-Repository überschreiben, wodurch Zweige, Tags und Commit-Historie auf einen Schlag gelöscht werden.

Tipp: Bevor Sie einen Mirror-Push durchführen, überprüfen Sie Ihre Remote-URLs mit git remote -v um sicherzustellen, dass Sie in das richtige Repository pushen. Vermeiden Sie die Verwendung von --Spiegel es sei denn, Sie sind sich sicher, dass dies Ihre Absicht ist. In den meisten Fällen ist eine regelmäßige Git-Push reicht aus. Erwägen Sie die Einrichtung von Sicherheitsvorkehrungen oder die Verwendung von Skripten, die vor der Ausführung von zerstörerischen Operationen eine Bestätigung verlangen.

 

Zeichenkodierung und Zusammenführungskonflikt Chaos

 

24. Unstimmigkeiten bei der Kodierung

Inkonsistente Einstellungen für die Zeichenkodierung können den Inhalt von Dateien beschädigen, insbesondere in Umgebungen mit Zusammenarbeit.

Tipp: Standardisieren Sie die Kodierungseinstellungen in Ihrem Team und verwenden Sie Tools, um Kodierungsprobleme zu erkennen.

 

25. Ungelöste Zusammenführungskonflikte

Das Übertragen von Dateien mit Konfliktmarkierungen oder das versehentliche Verwerfen der falschen Codeabschnitte kann zu fehlerhaftem Code führen.

Tipp: Lösen Sie Konflikte sorgfältig und ziehen Sie Code-Reviews in Betracht, um eventuelle Fehler zu erkennen.

 

Klonen und Cherry-Picking - Herausforderungen

 

26. Untiefe und partielle Klone

Verwendung von git clone ---depth oder das Vergessen des Klonens von Submodulen und LFS-Objekten kann zu unvollständigen Repositories führen.

 

Tipp: Klonen Sie Repositorien vollständig, es sei denn, Sie haben einen besonderen Grund, dies nicht zu tun, und stellen Sie sicher, dass alle erforderlichen Komponenten enthalten sind.

 

27. Missbräuchliche Verwendung von Git-Pick und mit einem Git rückgängig machen

Das Anwenden von Commits außerhalb des Kontexts oder das falsche Rückgängigmachen von Änderungen kann zu Konflikten führen und Code überschreiben.

Tipp: Verwenden Sie diese Befehle mit Vorsicht und verstehen Sie die Commits, die Sie manipulieren, genau.

--  

Checkliste: Leitlinien zum Schutz GitHub  

Wir haben zwar eine Fülle von Möglichkeiten aufgezeigt, wie Sie Ihre GitHub Daten verlieren können, aber das Grundthema ist klar: Fehler passieren. Ob es sich um eine Löschung, einen falsch verstandenen Befehl oder ein falsch konfiguriertes Skript handelt, Ihre Daten sind immer gefährdet.

Der Schutz Ihrer GitHub Daten ist von entscheidender Bedeutung, um die Integrität, Verfügbarkeit und Vertraulichkeit Ihres Codes und der zugehörigen Assets zu wahren. Im Folgenden finden Sie eine kurze Checkliste mit Best Practices, die Ihnen helfen, Ihre GitHub Repositories effektiv zu schützen.

Stärkung der Authentifizierungsmethoden

  • Aktivieren Sie Single Sign-On (SSO): Integrieren Sie GitHub mit dem Identitätsanbieter (IdP) Ihres Unternehmens, um die Authentifizierung zu zentralisieren.
  • Verlangt Zwei-Faktor-Authentifizierung (2FA): Verpflichten Sie 2FA für alle Benutzer, um eine zusätzliche Sicherheitsebene zu schaffen. Bevorzugen Sie zeitbasierte Einmal-Passwörter (TOTP) oder Hardware-Sicherheitsschlüssel gegenüber SMS-basierter 2FA.

Zugangskontrolle

  • Grundsatz des geringsten Rechts: Gewähren Sie den Benutzern die für ihre Rolle erforderlichen Mindestrechte. Regelmäßige Überprüfung und Aktualisierung der Zugriffsrechte.
  • Rollenbasierte Zugriffskontrolle (RBAC): Definieren Sie Rollen (z. B. Admin, Entwickler, Tester) und vergeben Sie entsprechende Berechtigungen.
  • Verwenden Sie GitHub Teams, um Gruppenberechtigungen zu verwalten.
  • Schützen Sie kritische Zweige. Aktivieren Sie Regeln zum Schutz von Verzweigungen, um Push- und Löschvorgänge zu verhindern und Statusprüfungen und Codeüberprüfungen vor der Zusammenführung zu verlangen.
  • Verwalten Sie externe Mitarbeiter: Schränken Sie den Zugang für externe Mitwirkende ein und legen Sie gegebenenfalls ein Ablaufdatum für den Zugang von Mitwirkenden fest.

Sichere Berechtigungsnachweise und sensible Daten

  • Vermeiden Sie die Übertragung von Geheimnissen: Verwenden Sie Tools wie GitGuardian oder GitHub Secret Scanning, um Geheimnisse im Code zu erkennen. Implementieren Sie Pre-Commit-Hooks, um versehentliche Übertragungen sensibler Daten zu verhindern.
  • Nutzen Sie GitHub Secrets: Speichern Sie API-Schlüssel, Token und Passwörter sicher in GitHub Secrets für Actions und Dependabot.
  • Wechseln Sie regelmäßig die Anmeldeinformationen: Ändern Sie Zugriffstoken, SSH-Schlüssel und Kennwörter in regelmäßigen Abständen. Stellen Sie sicher, dass kompromittierte Anmeldeinformationen sofort ungültig gemacht werden.

Sicherung und Wiederherstellung

  • Automatisierte Backups: Planen Sie regelmäßige Backups von Repositories, einschließlich aller Zweige, Tags und Ausgaben.
  • Offsite-Speicherung: Speichern Sie Backups an sicheren, geografisch getrennten Orten. Verschlüsseln Sie Sicherungsdaten sowohl bei der Übertragung als auch im Ruhezustand.
  • WORM-fähige Backups: Nutzen Sie öffentliche Cloud-Speicherziele und Object-Lock, um eine sichere Kopie für den Fall eines Cyber-Ereignisses aufzubewahren.  
  • Testen Sie die Wiederherstellungsprozeduren: Überprüfen Sie regelmäßig, ob Sicherungen erfolgreich wiederhergestellt werden können. Dokumentieren Sie die Wiederherstellungsschritte und halten Sie sie auf dem neuesten Stand.

Schlussfolgerung: Übernehmen Sie die Verantwortung für Ihre GitHub Daten

GitHub ist mehr als nur eine Plattform - es ist das Herzstück der Entwicklungsarbeit Ihres Unternehmens, das nicht nur den Code, sondern auch das geistige Eigentum und die gemeinsame Arbeit beherbergt, die Ihre Projekte vorantreiben. Während GitHub die Tools und die Infrastruktur bereitstellt, liegt die Verantwortung für den Schutz der Daten in Ihren Repositories bei Ihnen.

Bei der Entwicklung von Sicherheits- und Datenschutzmaßnahmen geht es nicht nur darum, Verluste zu verhindern, sondern auch darum, eine Kultur des Bewusstseins und der Sorgfalt zu fördern. Indem Sie diese Praktiken in Ihre täglichen Arbeitsabläufe integrieren, schaffen Sie eine widerstandsfähige Umgebung, in der Innovation gedeihen kann, ohne die Integrität zu gefährden.

Übernehmen Sie noch heute die Verantwortung für Ihre GitHub Daten. Damit schützen Sie nicht nur die wertvollen Ressourcen Ihres Unternehmens, sondern stärken auch die Grundlage, auf der Ihr Team aufbauen, zusammenarbeiten und auch in Zukunft erfolgreich sein kann.

Zusätzliche Ressourcen

Shive Raja Kopfsprung

Direktorin für Produktmanagement

Andy Fernandez ist Direktor für Produktmanagement bei HYCU, einem Unternehmen von Atlassian Ventures. Andys gesamte berufliche Laufbahn konzentrierte sich auf Datensicherung und Disaster Recovery für kritische Anwendungen. Zuvor hatte er Produkt- und GTM-Positionen bei Zerto und Veeam inne. Jetzt konzentriert sich Andy darauf, sicherzustellen, dass Unternehmen kritische SaaS- und Cloud-Anwendungen über ITSM und DevOps schützen. Wenn er nicht gerade an der Datensicherung arbeitet, besucht Andy gerne Live-Konzerte, erkundet die lokalen kulinarischen Orte und geht an den Strand.

Erleben Sie die SaaS-Datenschutzplattform Nr. 1

Testen Sie HYCU selbst und werden Sie überzeugt.