SVN für Webseiten – aufpassen
Viele Webmaster verwenden SVN nicht nur als ein Versionskontrollsystem für die Entwicklung ihrer Projekte, sondern auch als ein Tool zum Uploaden der fertigen Webseite auf den Server. Eine Sicherheitslücke wurde in dem System entdeckt, wovon viele nicht wissen, und sie stellt eine ernste Bedrohung für viele Webseiten dar – denn unter Umständen können Quellcodes und Konfigurationsdateien von Dritten eingesehen werden. Um die Art dieser Lücke zu verstehen, muss man sich ein wenig in die Technik hinter SVN vertiefen.
In jedem Ordner, der von SVN verwaltet wird, wird ein verstecktes Unterordner .svn angelegt. In diesem werden eine Liste aller Dateien und Unterordner sowie die aktuellen Versionen aller Dateien selbst gelagert. Die Datei .svn/entries enthält die Namen aller Dateien und Ordner und einige für SVN relevante technische Informationen, und das Unterverzeichnis .svn/text-base beinhaltet alle Dateien des Ordners, mit .svn-base als Zusatzerweiterung.
project |- index.php |- config.php |- dir | |- .svn | | |- entries | | '- text-base | | '- file.ext.svn-base | '- file.ext |- .svn | |- entries | |- text-base | | |- index.php.svn-base | | '- config.php.svn-base | '- ... '- ...
Normalerweise ist das Verzeichnis .svn versteckt, und darauf wird nicht viel geachtet. Allerdings werden die meisten Webserver mit Standardeinstellungen diesen Ordner nicht anders als alle Anderen betrachten – das heißt, wenn die Dateien daraus direkt angefordert werden, werden diese dem Benutzer angezeigt. So kann man sich aus der entries Datei die Liste aller Dateinamen besorgen, und da die Erweiterungen dieser Dateien im text-base Ordner geändert sind, werden Skript-Dateien nicht wie gewöhnlich von Server ausgeführt (z.B. PHP), sondern der Quellcode wird wie es vorliegt direkt ausgegeben.
Diese Sicherheitslücke wurde vor einiger Zeit von einer Gruppe russischer Programmierer entdeckt. Diese haben einen Scan vieler Webseiten in den .com, .de und .ru Zonen durchgeführt, und die Ergebnisse waren erstaunlich. Hunderte von Webseitenbesitzern wurden über Lücken in ihren Projekten informiert. Nachdem die Lücke auf den meisten großen Seiten geschlossen wurde, wurden die Informationen auf einem großen russischen IT-Blog Habrahabr veröffentlicht.
Es gibt mehrere Arten, sich von dieser Lücke zu schützen. Die einfachsten sind:
- Zugriff auf .svn mittels .htaccess (auf Apache) oder anderen Konfigurationsmitteln sperren.
- Beim Benutzen von svn export anstatt des gewöhnlichen svn checkout wird das Verzeichnis .svn erst gar nicht erstellt.
Wobei diese Methoden recht offensichtlich erscheinen (und das sind sie), war ich sehr überrascht, als ich mal einen kleinen Test mit einigen Webseiten aus meinen Favoriten durchgeführt habe. Von da aus, wenn Sie Webmaster sind und hiervon nicht gewusst haben – Vorsicht.













In English, please
Bitte, in Deutsch
По-русски, пожалуйста