Bryan Albrecht

Sicherheit im Filesystem

AUSGANGSLAGE

Auf einem Webserver ist es wichtig, dass fürs Filesystem die richtigen Berechtigungen gesetzt werden. Hierbei kommt es auf die lese und schreib Rechte an.

Denn auch, wenn man mit Leserechten nichts bearbeiten kann, kann man trotzdem sensible Daten wie zum Beispiel Datenbank Passwörter auslesen.

AUFBAU

Die Seite und deren Unterseite sind in meinem Beispiel so aufgebaut, dass man keine bestimmte Fileendung eingeben muss. Das heisst, dass es nur notwendig ist /home und nicht /home/index.html zu schreiben.

Folgende Seiten sind vorhanden:

  • • /
  • • /admin
  • • /edit
  • • /home
  • • /add
  • • /login

Die jeweiligen Ordner beinhalten eine Datei mit dem Namen index.php.

Jede Index.php macht nichts anderes als die jeweiligen Inhalts Seiten mit "include" hinzuzufügen. Sprich, die Datei /admin/index.php beinhaltet ebenfalls folgende Seite: /inlcudes/content/admin/admin.php

SICHERHEIT

Um sicherzustellen, dass die Dateien wie database_info.php und ähnlich sensible Daten sicher sind, werden diese in Unterordner abgelegt. Dies sichert vor ungeschütztem Zugriff.

Der Benutzer, welcher über den Webbrowser zugreift, hat nur Zugriff auf die jeweiligen Ordner.

Der Includes Ordner ist für Zugriffe aus dem Webbrowser Komplet gesperrt. In diesem sind alle Daten abgelegt, welche nicht vom User gesehen werden dürfen. Diese Daten sind sogenannte "Sensitive Data".

.HTACCESS

Um Zugriffsrechte zu verwalten benutzen wir .htaccess.

Die .htaccess Datei regelt, welche Benutzer in diesem Ordner rechte haben. Diese Rechte werden allen Unterordner vererbt.

In unserem Beispiel sperrt diese Datei jegliche Zugriffe von ausserhalb des Servers.

Dateiinhalt File ".htaccess" :

  1. Deny from all

TESTEN:

Um zu testen, ob die Sicherheit gewährleistet ist, sollte man versuchen auf die "geschützten" Dateien zuzugreifen. Sprich, man versucht direkt zu den gewünschten Dateien zu navigieren.

Um diese Angriffe koordiniert durchzuführen, sollte man ein Testprotokoll in Form eines Testplans verwenden