27.10.2022 - Die Open-Source-Software «Git» wird von Software-Entwicklern häufig und gerne für die Verwaltung und Versionierung des Software-Quellcodes eingesetzt. Solche Versionierungs-Tools erleichtern die Arbeit und sind sehr praktisch. Doch ein zu sorgloser und nachlässiger Umgang kann ein Sicherheitsrisiko darstellen und die Vertraulichkeit von sensitiven Daten gefährden. Ein Blick auf die Schweizer Websites zeigt, dass die Gefahr vor ungenügend geschützten Git-Verzeichnissen auch in der Schweiz real ist.
Software-Entwickler standen schon immer vor der Herausforderung, gemeinsam an einem Projekt arbeiten zu können und dies nicht erst seit der Corona-Pandemie. Idealerweise erfolgt diese Zusammenarbeit gleichzeitig und von verschiedenen Standorten weltweit. Mithilfe von Tools zur Versionierung, können mehrere Entwickler an einem zentralen Software-Code arbeiten und Änderungen durchführen. Die Aktualisierungen am Code werden dabei nachvollziehbar protokolliert und die verschiedenen Versionen des Codes sind in einer Historie ersichtlich. Das vermutlich bekannteste und am meisten verwendete Tool zur Versionierung heisst «Git» und wurde durch den Software-Entwickler Linus Torvalds als frei verfügbare Software initiiert. Allerdings gibt es noch zahlreiche weitere Software-Produkte für die Versionsverwaltung wie beispielsweise Mercurial, Apache Subversion, CVS, BitKeeper, usw.
Die Gefahr bei schlecht geschützten Git-Verzeichnissen
Werden Git-Verzeichnisse falsch konfiguriert oder ungenügend geschützt, können Datenbestände öffentlich im Internet mit wenigen Klicks eingesehen werden. Mögliche Ursachen für einen ungenügenden Schutz sind unter anderem menschliche Fehler durch IT-Administratoren oder Entwickler. Aber auch Schwächen bei der Erstellung eines neuen Entwicklungsprojekts. Beim Start eines neuen Projektes wird häufig einfach ein bereits bestehendes Verzeichnis kopiert, ohne genau darauf zu achten, welche Datenbestände enthalten sind und wie diese geschützt sind. Für die Verwaltung und das Tracking der Versionen verwenden Git wie auch andere Tools im jeweiligen Verzeichnis einen speziellen Daten-Ordner: Bei Git ist dies der .git-Ordner. Dieser Ordner enthält einerseits den vollständigen Software-Quellcode, beispielsweise einer Applikation oder des Internetauftrittes, und andererseits auch alle vorherigen Versionen und Änderungen und möglicherweise auch Konfigurationsdateien mit sensiblen und schützenswerten Systeminformationen: Passwörter von Datenbanken, API-Keys, usw. Durch den Zugriff auf den Quellcode kann ein potentieller Angreifer zusätzlich gezielt nach Schwachstellen in der Applikation oder im System suchen und eine Internetseite dadurch kompromittieren.
Git-Verzeichnisse auch in der Schweiz ein Sicherheitsrisiko
Im Rahmen des Programms zum Melden von Schwachstellen (Coordinated Vulnerability Disclosure) wurde das NCSC im Sommer 2022 von einem Journalisten der Plattform dnip.ch auf die Problematik von ungenügend geschützten Git-Verzeichnissen aufmerksam gemacht. In der Folge hat das NCSC eine Erhebung der öffentlich verfügbaren und zugänglichen Git-Verzeichnisse in der Schweiz durchgeführt. Es konnten 1300 betroffene Systemen gefunden werden, bei denen potentiell sensitive Daten wie beispielsweise Quellcode, Zugangsdaten oder Passwörter über ungenügend geschützte .git-Ordner einsehbar waren.
Sicherheitsüberprüfung notwendig
Um das Sicherheitsrisiko zu minimieren und den Missbrauch der exponierten Datenbestände zu verhindern, hat das NCSC im Oktober 2022 die betroffenen Firmen oder verantwortlichen Website-Betreiber direkt per E-Mail informiert. Bei den 400 angeschriebenen Empfängern handelte es sich entweder um den technischen Kontakt oder den Halter der Domain. Die Erhebung und Information durch das NCSC stellt aber lediglich eine Momentaufnahme dar und erhebt keinen Anspruch auf Vollständigkeit. Die Internet-Landschaft ändert sich stetig, so dass eine regelmässige Überprüfung durch die System-Verantwortlichen erforderlich ist. Daher empfiehlt das NCSC eine regelmässige Prüfung des Inhalts und der Konfiguration der Git-Verzeichnisse.
Handlungsempfehlungen
Der .git-Ordner sollte auf einem produktiven System niemals öffentlich im Internet zugänglich sein. Ist eine Entfernung des Ordners kurzfristig nicht möglich, sollte mindestens der Zugriff auf den Ordner eingeschränkt und entsprechend geschützt werden (beispielsweise durch .htaccess Regeln oder je nach eingesetzter Technologie ähnliche technische Zugriffs-Beschränkungen).
Noch zielführender sind präventive Massnahmen wie die Überprüfung und Anpassung des Entwicklungsprozesses. Dabei soll sichergestellt werden, dass nur die gewünschten und die dafür vorgesehenen Daten («build files») überhaupt abgelegt werden. Sensitive oder geheime Daten wie Passwörter, API-Keys, usw. sollten niemals im Quellcode oder in der Applikation selbst abgelegt sein («hardcoded») oder zumindest sichergestellt werden, dass diese nicht im Git-Verzeichnis abgelegt und ignoriert werden («gitignore file»). In der Praxis zeigt sich leider, dass diese grundlegenden Sicherheitsmassnahmen und «best practices» oftmals nicht eingehalten werden.
Beispiel .git Verzeichnis
Git ist nur eines von zahlreichen Beispielen. Dieselbe Problematik stellt sich auch bei ungeschützten .env- und .DS_Store-Dateien dar: Einige Software-Produkte speichern ihre Konfiguration in sogenannten Umgebungs-Variablen (environment variables) ab, und auf dem Apple Betriebssystem werden Ordner-Einstellungen in versteckten DS_Store (Desktop Service Store) Dateien abgelegt. Auch diese Dateien können sensitive Daten beinhalten.
Links
Letzte Änderung 27.10.2022