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

GitHub ist für Ihr Unternehmen von entscheidender Bedeutung, da es mehr als nur Quellcode enthält - Ihr geistiges Eigentum und Ihre Schlüsseldaten treiben Ihr Entwicklungsteam an. Erfahren Sie, wie Sie GitHub-Daten vor Löschung, Beschädigung und Veränderung schützen können, um Ihre Abläufe sicher zu halten.
Geschrieben von:
Andy Fernandez
Veröffentlicht am:

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 in GitHub treiben Ihr Entwicklungsteam und Ihr Unternehmen an.

Aber anders als beim 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 uns entschlossen, die vielen Möglichkeiten aufzuschlüsseln, wie die "Daten" in GitHub gelöscht, beschädigt oder verändert werden können.

Zufällige Löschung

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

Mit ein paar Klicks oder Befehlen können Sie wichtige Teile Ihres Projekts löschen. 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 für den Schutz von Zweigen und schränken Sie ein, wer Repositories löschen darf.

2. Falsche Verwendung von git rm und anderen Befehlen

Die Verwendung von git rm, ohne die Auswirkungen zu verstehen, kann zu unbeabsichtigten Dateientfernungen führen. Kombinieren Sie das mit einem übereilten Commit, und Sie haben ein Rezept für fehlenden Code.

Tipp: Machen Sie sich mit den Git-Befehlen vertraut und erwägen Sie, gefährliche Befehle zu aliasieren, um eine Bestätigung zu verlangen.

Force Push Fehler: Mit großer Macht kommt große Verantwortung

Die 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 vermeiden Sie es, gemeinsame Zweige zu erzwingen.

4. Falsches Umschreiben der Historie

Befehle wie git rebase oder git filter-branch, gefolgt von einem Force Push, können die gemeinsame Historie umschreiben, wodurch Mitarbeiter verwirrt werden und möglicherweise Commits verloren gehen.

Tipp: Sprechen Sie mit Ihrem Team, bevor Sie die Historie umschreiben, und ziehen Sie Alternativen wie git merge in Betracht, wenn Sie gemeinsam arbeiten.

Merge Mishaps: Wenn aus zwei eins wird... Schlecht

5. Falsche Zusammenführungsoperationen

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

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

Merges ohne Vorsicht rückgängig machen

Wenn Sie einen Merge-Commit rückgängig machen, ohne sich über die Auswirkungen im Klaren zu sein, können erhebliche Teile des Codes entfernt werden.

Tipp: Verwenden Sie git revert mit Bedacht und stellen Sie sicher, dass Sie keine wichtigen Merges rückgängig machen.

Branch Blunders: Die Gefahren des Missmanagements

6. Vernachlässigung des Pushens 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 pushen.

Tipp: Pushen Sie Ihre Zweige regelmäßig in das entfernte Repository und verwenden Sie die Draft Pull Requests von GitHub, um den Überblick zu behalten.

Zweige überschreiben

Wenn Sie einen neuen Zweig mit demselben Namen wie einen bestehenden Zweig erstellen und ihn zwangsweise pushen, kann der ursprüngliche Zweig gelöscht werden.

Tipp: Überprüfen Sie die Namen der Zweige sorgfältig und vermeiden Sie es, sie zwangsweise zu pushen, wenn es nicht unbedingt notwendig ist.

Katastrophen bei Zugangsdaten: Open Sesame... to Disaster

7. Unbefugter Zugriff und Phishing-Angriffe

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

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

8. Offenlegung von Token und SSH-Schlüsseln

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

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

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: Implementieren Sie strenge Offboarding-Verfahren und überprüfen Sie regelmäßig die Zugriffsrechte Ihres Teams.

10. Fehlende Zugriffskontrollen

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

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

Automatisierungsanomalien: Schurkisch 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 einsetzen.

12. Fehlerhafte Workflows und übermäßige 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.

Tools und Befehle, die sich gegen Sie wenden

13. Bugs in Git-Clients und falsch konfigurierte Skripte

Software-Bugs 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 können nicht verfolgte Dateien und Verzeichnisse entfernen, manchmal mit katastrophalen Folgen.

Tipp: Verwenden Sie solche Befehle mit Vorsicht und erwägen Sie, sie zunächst mit der Option -n (Trockenlauf) auszuführen.

Datenbeschädigung - Rätsel: Wenn Bits schlecht werden

15. Beschädigte Repositories

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

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

16. Probleme mit Binärdateien und falsches Management von Git LFS

Das Übertragen großer Binärdateien ohne Git LFS kann zu Leistungsproblemen führen. Das unsachgemäße Löschen von LFS-Objekten kann dazu führen, dass große Dateien nicht mehr zugänglich sind.

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

Konfigurationskatastrophen: Wie Sie sich selbst für den Misserfolg rüsten

17. Falsche Konfiguration der Repository-Einstellungen

Falsche Einstellungen können zu einer unbeabsichtigten Freigabe oder Löschung von Daten führen.

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

18. Falsch angewendete Regeln zum Schutz von Zweigen

Übermäßig freizügige Regeln können Pushs oder Löschungen ermöglichen, die Sie nicht vorhergesehen haben.

Tipp: Richten Sie strenge Regeln zum Schutz von Zweigen für Hauptzweige ein und setzen Sie die erforderlichen Überprüfungen durch.

Die Gefahren von temporärem Speicher und zeitbasierten Aktionen

19. Verlust von nicht synchronisierter Arbeit

Daten, die an temporären Orten gespeichert sind, oder nicht gespeicherte Arbeit können durch Systemabstürze oder Bereinigungsvorgänge verschwinden.

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

20. Geplante Jobs gehen schief

Cron-Jobs oder geplante Aufgaben können unbeabsichtigt Daten löschen, wenn sie falsch konfiguriert sind.

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

Submodule und Synchronisierungspannen

21. Falsche Verwaltung von Git-Submodulen

Falsches Entfernen von Submodulen oder 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-Tools und Synchronisierungsdiensten

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

Tipp: Bleiben Sie bei einem VCS pro Projekt und vermeiden Sie die Synchronisierung von Repository-Ordnern mit Diensten wie Dropbox.

Spiegel, Spiegel an der Wand: Die Gefahren einer falschen Repository-Spiegelung

23. Die unvorsichtige Verwendung von Befehlen wie git push --mirror kann das gesamte Ziel-Repository überschreiben und Zweige, Tags und Commit-Historie auf einen Schlag löschen.

Tipp: Bevor Sie einen Mirror-Push durchführen, sollten Sie Ihre Remote-URLs mit git remote -v überprüfen, um sicherzustellen, dass Sie zum richtigen Repository pushen. Vermeiden Sie die Verwendung von --mirror, es sei denn, Sie sind sich sicher, dass dies Ihre Absicht ist. In den meisten Fällen reicht ein normales git push aus. Ziehen Sie in Erwägung, Sicherheitsvorkehrungen zu treffen oder Skripte zu verwenden, die vor der Ausführung von destruktiven Operationen eine Bestätigung verlangen.

Zeichenkodierung und Zusammenführungskonflikt-Chaos

24. Unstimmige Kodierungseinstellungen

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

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

25. Ungelöste Merge-Konflikte

Das Commitieren 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 Fehler zu erkennen.

Klonen und Cherry-Picking-Herausforderungen

26. Unvollständige und partielle Klone

Die Verwendung von git clone --depth oder das Vergessen, Submodule und LFS-Objekte zu klonen, kann zu unvollständigen Repositories führen.

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

27. Missbrauch von Git cherry-pick und Git revert

Wenn Sie Commits aus dem Kontext reißen oder Änderungen fälschlicherweise rückgängig machen, kann dies zu Konflikten führen und Code überschreiben.

Tipp: Verwenden Sie diese Befehle mit Vorsicht und verstehen Sie die Commits, die Sie manipulieren, vollständig.

--

Checkliste: Richtlinien zum Schutz von GitHub

Während wir eine Fülle von Möglichkeiten aufgezeigt haben, wie Sie Ihre GitHub-Daten verlieren können, ist das zugrunde liegende Thema klar: Fehler passieren. Ob es sich um eine Löschung, einen falsch verstandenen Befehl oder ein falsch konfiguriertes Skript handelt, Ihre Daten sind immer in Gefahr.

Der Schutz Ihrer GitHub-Daten ist entscheidend, um die Integrität, Verfügbarkeit und Vertraulichkeit Ihres Codes und der damit verbundenen Assets zu gewährleisten. Im Folgenden finden Sie eine kurze Checkliste mit bewährten Verfahren, die Ihnen helfen, Ihre GitHub-Repositories effektiv zu schützen.

Stärken Sie die Authentifizierungsmethoden

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

Zugangskontrolle

  • Prinzip des geringsten Privilegs: Gewähren Sie Benutzern die für ihre Rolle erforderlichen Mindestrechte. Überprüfen und aktualisieren Sie die Zugriffsrechte regelmäßig.
  • Rollenbasierte Zugriffskontrolle (RBAC): Definieren Sie Rollen (z.B., Admin, Entwickler, Tester) und weisen Sie entsprechend Berechtigungen zu.
  • Verwenden Sie GitHub Teams, um Gruppenberechtigungen zu verwalten.
  • Schützen Sie kritische Zweige. Aktivieren Sie Regeln zum Schutz von Zweigen, um Force Pushes und Löschungen zu verhindern, und verlangen Sie Statusprüfungen und Code-Reviews vor dem Zusammenführen.
  • Verwalten Sie externe Mitarbeiter: Schränken Sie den Zugang für Dritte ein und legen Sie gegebenenfalls Ablaufdaten für den Zugang von Mitarbeitern fest.

Sichern Sie Anmeldeinformationen 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 Commits sensibler Daten zu verhindern.
  • Nutzen Sie GitHub Secrets: Speichern Sie API-Schlüssel, Token und Passwörter sicher in GitHub Secrets for Actions und Dependabot.
  • Reguläre Rotation der Credentials: Ändern Sie Zugriffstoken, SSH-Schlüssel und Passwörter regelmäßig. Stellen Sie sicher, dass kompromittierte Zugangsdaten sofort ungültig gemacht werden.

Backup und Wiederherstellung

  • Automatisierte Backups: Planen Sie regelmäßige Backups der Repositories, einschließlich aller Zweige, Tags und Ausgaben
  • Offsite-Speicherung: Speichern Sie Backups an sicheren, geografisch getrennten Orten. Verschlüsseln Sie Backup-Daten sowohl während 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 zu erhalten.
  • Testen Sie Wiederherstellungsprozeduren: Prüfen Sie regelmäßig, ob Backups erfolgreich wiederhergestellt werden können. Dokumentieren Sie die Wiederherstellungsschritte und halten Sie sie auf dem neuesten Stand.

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

GitHub ist mehr als nur eine Plattform - es ist das Herzstück der Entwicklungsbemühungen Ihres Unternehmens und beherbergt nicht nur Code, sondern auch das geistige Eigentum und die gemeinsame Arbeit, die Ihre Projekte vorantreibt. 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 Sicherheit und Datenschutz 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 Vermögenswerte Ihres Unternehmens, sondern stärken auch die Grundlage, auf der Ihr Team aufbauen, zusammenarbeiten und auch in Zukunft erfolgreich sein kann.

Direktorin für Produktmanagement

Andy Fernandez ist Direktor für Produktmanagement bei HYCU, einem Unternehmen von Atlassian Ventures. Andys gesamte Karriere konzentriert sich auf die Datensicherung und Notfallwiederherstellung 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 Feinschmeckerlokale und geht an den Strand.

Erleben Sie die Nr. 1 SaaS-Datenschutzplattform

Testen Sie HYCU selbst und werden Sie überzeugt.