Direkt zum Inhalt
Presse
Symbolbild Git-Repository

Diverse Webserver bezüglich des .git-Verzeichnisses richtig konfigurieren

Eigentlich sollte diese Lücke schon lange Geschichte sein, denn sie ist schon seit 2015 bekannt und gut dokumentiert. Umso überraschender war das Ergebnis unserer Scans: Von 6.927.416 getesteten Domains und Subdomains in Deutschland sind insgesamt 41.252 Webseiten betroffen. In diesem Blogeintrag konzentrieren wir uns zunächst nur auf das .git-Verzeichnis, möchten aber darauf hinweisen, dass andere Versionierungstools auch anfällig für diese Art Fehlkonfiguration sein könnten.

 

Was ist .git?

Viele Webentwickler verwenden das Open-Source-Versionierungstool „Git“ zur Erstellung und Wartung ihrer Webseiten, welches alle Änderungen an Dateien im Projekt festhält. Das Tool baut im Laufe der Zeit eine Historie auf, deren standardmäßiger Speicherort der Ordner ".git" im Hauptverzeichnis des Projekts - eines sog. "Repository" ist. Wenn dieses Verzeichnis unnötigerweise im Dateisystem Ihrer Webpräsenz vorhanden oder nicht zumindest ordnungsgemäß gesichert ist, sind dessen Inhalte im öffentlichen Internet weltweit lesbar. Der Zugriff auf den .git-Ordner könnte unter Umständen Quellcode, Server-Zugriffsschlüssel, Datenbankpasswörter, gehostete Dateien und andere sensible Informationen offenlegen.

Hinweis: Es finden sich zahlreiche Tools, mit denen Cyberkriminelle automatisiert nach offenen Verzeichnissen suchen und deren Inhalte automatisch herunterladen. Da es sich bei „Git“ um eines der universell eingesetzten Standardwerkzeuge in der Software-Entwicklung handelt, ist eben dieses Verzeichnis ein vielversprechender Einstiegspunkt für Angreifer. Aus diesem Grund empfehlen wir, diese Lücke schnellstmöglich zu schließen.

 

Wieso ist ein öffentlich zugängliches .git-Verzeichnis gefährlich?

Das Versionierungstool erstellt beim Ausrollen von Inhalten im Stammverzeichnis des Projektes einen Ordner namens „.git“ in dem eine vollständige Kopie des Repository hinterlegt wird. Das Problem dabei ist, dass die meisten Entwickler ihr Repository einfach kopieren und samt .git-Verzeichnis hochladen. Ist der Pfad zu dem .git-Verzeichnis dann nicht geschützt, können Quellcodes, Server-Zugriffsschlüssel, Datenbankpasswörter, gehostete Dateien und andere sensible Informationen offengelegt werden.

Achtung: Da diese Lücke schon seit längerem bekannt ist, finden sich auch entsprechende Tools, um diese Verzeichnisse automatisiert zu durchforsten und herunterzuladen. Ähnlich wie bei anderen Fehlkonfigurationen liegt die Verantwortung bei demjenigen, der die Webseite erstellt und wartet, was in vielen Fällen die eigene IT-Abteilung oder der IT-Dienstleister sein wird. Aus diesem Grund sollten Betroffene schnellstmöglich die Schließung der Lücke veranlassen.

 

Wie kann ich herausfinden, ob meine Webseite betroffen ist?

Um herauszufinden, ob eine Domain betroffen ist, müssen Sie zunächst die Domain in die Adresszeile einsetzen und dahinter den Pfad eingeben, um das .git-Verzeichnis aufzurufen. (Beispiel: https://www.Meine-Domain.de/.git/HEAD) Folgt auf ihre Anfrage eine Fehlermeldung so ist der Pfad im .git-Verzeichnis nicht existent oder abgesichert worden. Erhalten Sie dahingegen eine Meldung die zum Beispiel „ref: refs/heads/master“ lautet, so sind sie von dieser Sicherheitslücke betroffen und sollten den Webserver entsprechend konfigurieren.

Hinweis: Wir kontaktieren parallel die Betroffenen auch mit einer automatisierten E-Mail, damit sie die Lücke schnellstmöglich schließen können.

 

Wie kann die Lücke im .git-Verzeichnis geschlossen werden?

Glücklicherweise ist das Schließen dieser Lücke recht einfach, denn meist genügen ein paar Zeilen Code, um Ihre Webseiten ordnungsgemäß abzusichern. Im Folgenden erläutern wir das Vorgehen zur Beseitigung der Schwachstelle für die gängigsten Webserver. Alternativ können Sie das Verzeichnis auch komplett auf Ihrem Webserver (nur dort!) entfernen.

Die vorgeschlagenen Lösungswege beziehen sich auf die aktuelle Version des jeweiligen Webservers und funktionieren eventuell nicht mit älteren Versionen. Im Zweifel ist es stets ratsam, die Bestandteile Ihrer IT-Infrastruktur möglichst aktuell zu halten, da veraltete Produkte oftmals keine Patches und Bugfixes mehr erhalten oder weniger Performance bieten. Wir würden es begrüßen, wenn Sie diese Situation zum Anlass nehmen, Ihre gesamten Systeme auf Herz und Nieren zu überprüfen.

 

Das Verzeichnis Löschen

Grundsätzlich gilt der Leitsatz: Erlauben Sie nur Zugriff auf Inhalte, die wirklich zur Bereitstellung Ihres Webangebots benötigt werden. Prüfen Sie zunächst, ob das Vorhandensein des .git-Verzeichnisses auf dem Webserver für die Funktion der Webseite wirklich erforderlich ist. In vielen Fällen wird das Verzeichnis nicht benötigt werden. Sollten Sie den Ordner beibehalten müssen, sichern Sie das Verzeichnis je nach verwendetem Server wie nachstehend beschrieben ab.

 

Apache 2.4.x

1. <DirectoryMatch "^/.*/\.git/">

2.                  Require all denied

3. </DirectoryMatch>

Die Eintragung des Codes in der httpd.conf verhindert den Aufruf des Verzeichnisses .git und schützt somit vor unautorisierter Einsicht. Hinweis: Ältere Versionen von Apache sollten sie nicht nutzen (End-Of-Life 2018)

 

Nginx

1. location ~ /.git/ {

2.           deny all;

3.  }

Um sich vor unautorisierter Einsicht in das .git Verzeichnis zu schützen, platzieren Sie den Code im server- Block der nginx.conf.

 

Lighttpd

Beim Lighttpd müssen Sie zunächst die mod_access Module aktivieren:

1. server.modules += ( "mod_access" )

 

Anschließend können Sie die Pfade zum .git-Verzeichnis mit folgendem Code in der lighttpd.conf blockieren:

 

1. $HTTP["url"] =~ "^/\.git/" {

2. url.access-deny = ("")

3. }

 

Alternativ können Sie auch das .git-Verzeichnis mittels --git-dir und --work--tree außerhalb des Stammverzeichnisses platzieren.

 

Microsoft IIS

Mittels der folgenden Power Shell-Kommandos fügen Sie das .git-Verzeichnis zum Request Filtering hinzu.

 

1.Import-Module IISAdministration

2.$requestFiltering = Get-IISConfigSection -CommitPath 'Default Web Site' -SectionPath 'system.webServer/security/requestFiltering'

3.$hiddenSegments = Get-IISConfigCollection -ConfigElement $requestFiltering -CollectionName 'hiddenSegments'

4.New-IISConfigCollectionElement -ConfigCollection $hiddenSegments -ConfigAttribute @{ 'segment'='.git' }

 

In der web.config sollte es dann so aussehen:

 

1. <configuration>

2.   <system.webServer>

3.     <security>

4.       <requestFiltering>

5.         <hiddenSegments>

6.           <add segment=".git"/>

7.         </hiddenSegments>

8.       </requestFiltering>

9.     </security>

10.  </system.webServer>

11. </configuration>

 

Zusammenfassung

Das Versionierungstool Git ist ein beliebtes Tool, welches der Zusammenarbeit von Entwicklern dient und kann als eine Art „Tagebuch“ der Entwickler verstanden werden. Es kann vorkommen, dass dieses .git-Verzeichnis offen zugänglich ist und somit Quellcodes, Server-Zugriffsschlüssel, Datenbankpasswörter, gehostete Dateien und anderen sensible Informationen offenlegt. Durch unsere Scans ist uns bekannt, dass in Deutschland 41.252 Webseiten von dieser Lücke betroffen sind. Um diese Lücke zu schließen, müssen Sie lediglich ihren Webserver richtig konfigurieren. Wir haben für Sie dazu eine kurze Anleitung bereitgestellt.

Dieser Artikel ist angelehnt an den Artikel von den Kollegen bei der Internetwache.org, welche dieses Thema schon 2015 ausführlich behandelt haben. Wir waren selbst sehr überrascht, dass diese Ressource in den letzten fünf Jahren offenbar so wenig genutzt wurde und haben daher das Thema erneut aufgegriffen. Um das Thema für alle etwas verständlicher zu machen, haben wir weitere Vorfälle aus den letzten fünf Jahren für Sie hier zusammengetragen.

Die oben aufgeführten Lösungswege stellen nur Beispiele zur Behebung der Lücke ohne Gewährleistung dar. Berücksichtigen Sie stets die Gesamtkonfiguration unter der Sie Ihre Internetpräsenz betreiben und wenden Sie sich bei Fragen an Ihr IT-Systemhaus.

Bleiben Sie sicher!

Das Team der Deutschen Gesellschaft für Cybersicherheit

 

Quellen und weitere Artikel

Internetwache.org: Wie ungeschützte .git Repositorys die Sicherheit Ihrer Webseite gefährden - Eine Analyse der Alexa 1M (2015)
Golem.de: Riskante Git-Verzeichnisse (2015)
Threatpost.com: Open .Git Directories Leave 390K Websites Vulnerable (2018)
Threatpost.com: GDPR Compliance Site Leaks Git Data, Passwords (2020)

Startklar für die Destination Cybersicherheit?
Sprechen Sie uns an!

Kontakt