Only in German available.
Published on: May 2, 2022
Author: Thomas Federer
Eine Analyse von Codepurple aller .ch und .li Domains auf öffentliche Code-Repositories (Git) zeigte, dass 1053 öffentliche Code Repositories gefunden wurden. In den Code Repositories sind harmlose Dinge wie Templates oder statische HTML-Seiten zu finden, aber auch kompletter Code von Webapplikationen inklusive deren Konfiguration mit Passwörtern für Logins, Datenbanken, Office365 Logins, E-Mail-Konten mit Passwörtern oder Private-Keys um mit Zahlungsanbietern zu kommunizieren. Es wurden sogar Benutzernamen und Passwörter in den Meta-Daten des Repositiories selbst gefunden, welche den Zugriff auf komplette Codeverwaltungen von Firmen ermöglichten.
Eine weitere spannende Entdeckung war, dass komplette Code-Repositories auch ohne Directory-Listing heruntergeladen werden können, in dem einfach direkt auf die Dateien in einem .git Ordner zugegriffen wird. So zum Beispiel der direkte Zugriff auf .git/HEAD oder .git/config.
In der Softwareentwicklung ist es heute Standard ein Codeverwaltungssystem einzusetzen. Ein solches System ist Git (https://de.wikipedia.org/wiki/Git).
In einem solchen System ist die gesamte Geschichte des Sourcecodes vorhanden. Man kann jeder Änderung nachvollziehen und zu dieser zurückspringen. Auch sind Meta-Informationen zum Projekt darin gespeichert.
Ein Git-Repository kann man sich als Datei-Ordner vorstellen in welchem der Code eines Projektes gespeichert ist. Dabei sieht man den aktuellen Code. Alle Meta-Informationen oder alte Versionen sind in einem versteckten Ordner mit dem Namen .git gespeichert.
Aus den Daten im .git Ordner kann der gesamte Code inklusive jede Änderung gelesen werden.
Beim Deployen einer Webapplikation oder Webseite wird oft der Code aus dem Codeverwaltungssystem geladen. Es kann dann durch eine fehlerhafte Konfiguration passieren, dass der versteckte .git Ordner aufrufbar ist. So kann der gesamte Source-Code oft mit Konfigurationsdateien abgerufen werden. Zum Beispiel: https://example.com/.git/
Es kann sein, dass die Dateien im .git Ordner direkt aufgelistet werden. Aber selbst wenn das Auflisten der Dateien auf dem Server gesperrt ist, können direkt auf die Dateien im .git Ordner zugegriffen werden. Oft ist auch der Zugriff auf den .git Ordner möglich, wenn man www weglässt und oder http und https variiert.
Zum Beispiel:
Zugriff via https://www.example.com/.git/ ist nicht möglich. Aber Zugriff via https://example.com/.git ist möglich.
Der gesamte Code inklusive alten Versionen ist somit ersichtlich. Wenn ein Angreifer den vollständigen Code vor sich hat ist es viel einfacher Sicherheitslücken zu finden und diese Auszunutzen, als wenn man nur das laufende System von aussen betrachtet.
Oft werden Konfigurationsdateien im Git-Respository gespeichert. Dies können Benutzernamen, Passwörter, Access-Tokens usw. sein. Diese können dann missbraucht werden, um zum Beispiel direkt auf die Datenbank zu verbinden.
In den Meta-Daten eines Git-Repositories können auch Benutzernamen und Passwörter in Klartext vorhanden sein. So kann ein Angreifer direkt auf das Codeverwaltungssystem zugreifen und zum Beispiel alle Projekte einer Firma herunterladen.
Codepurple hat alle .ch und .li Domains auf öffentliche Git-Repositories untersucht. Dabei wurden 2’417’079 Domains untersucht.
In manchen Repositories waren nur Templates der Webseite gespeichert. In anderen war der komplette Code der Webseite vorhanden. Auch fand Codepurple diverse Benutzernamen und Passwörter. Diese reichten von E-Mail-Konten über Datenbankverbindungen bis zu Benutzernamen für die komplette Codeverwaltung von Firmen.
Achtung: Die Konfiguration kann je nach Version und Server abweichen.
Apache2
<DirectoryMatch "^/.*/\.git/"> Deny from all </Directorymatch>
Nginx
location ~ /\.git { deny all; }
Codepurple hat einen umfangreichen Datenstamm und Software für die Analyse zur Verfügung. Gerne Analysieren wir für Sie Ihr Unternehmen: Anfrage senden.
Sollen wir Ihre Systeme auf öffentliche Git-Repositories prüfen?
Folgende Blog-Beiträge könnten Sie interessieren:
A password with 8 characters with numbers, upper and lower case letters and symbols can be cracked in under one hour.
Source: Hive Systems
X
Sollen wir Ihre Systeme auf öffentliche Git-Repositories prüfen?
Contact us without obligation:
Kathrin Müller is looking forward to hearing from you and will be happy to organize a meeting according to your needs.
nanio GmbH (Codepurple)
Moosweg 24
5606 Dintikon