Was ist Directory Traversal? – Eine Einführung


  • Directory Traversal, auch bekannt als Path Traversal, ist eine Sicherheitslücke, die es einem Angreifer ermöglicht, auf Dateien und Verzeichnisse zuzugreifen, die außerhalb des vorgesehenen Verzeichnisses des Web-Servers liegen.
  • Durch Ausnutzen dieser Schwachstelle kann der Angreifer auf sensible Daten zugreifen oder das Verhalten des Servers manipulieren.

Directory Traversal

Detaillierte Beschreibung


Directory Traversal, auch bekannt als Path Traversal, ist eine Sicherheitslücke, die es einem Angreifer ermöglicht, auf Dateien und Verzeichnisse zuzugreifen, die außerhalb des vorgesehenen Verzeichnisses liegen. 

Dies kann durch Manipulation von Variablen erfolgen, die auf Dateipfade verweisen. Die Sicherheitslücke tritt häufig in Webanwendungen auf, wo Benutzereingaben nicht ausreichend validiert werden.

Angreifer nutzen diese Schwachstelle, um Zugriff auf Dateien zu erhalten, die normalerweise nicht zugänglich sein sollten, wie Konfigurationsdateien, Quellcode, Passwortdateien und andere kritische Systemdateien.


Technische Aspekte


Ein Directory Traversal Angriff wird typischerweise durchgeführt, indem "../" (oder "..\" auf Windows-Systemen) in eine URL oder einen Dateipfad eingefügt wird.

Dieses Muster versucht, das aktuelle Verzeichnis zu verlassen und auf übergeordnete Verzeichnisse zuzugreifen. Ohne angemessene Sicherheitskontrollen kann ein Angreifer beliebige Dateien im Dateisystem des Servers lesen oder manipulieren.


Beispiele

Fallstudie: Angriff auf eine Webanwendung

Ein typisches Beispiel für einen Directory Traversal Angriff könnte in einer Webanwendung auftreten, die es Benutzern erlaubt, Dateien herunterzuladen, indem sie einen Dateinamen in einer Query-Parameter anfordern.

Wenn die Anwendung den Dateinamenparameter direkt verwendet, um die Datei vom Dateisystem zu lesen, ohne die Eingabe zu validieren, könnte ein Angreifer den Parameter manipulieren, um Zugriff auf beliebige Dateien zu erhalten.

Zum Beispiel:

http://beispiel.com/download?file=../../../../etc/passwd

Dies würde dem Angreifer ermöglichen, die Passwortdatei des Unix-Systems zu lesen.


Sicherheitsempfehlungen

  • Input Validierung: Stellen Sie sicher, dass alle Benutzereingaben, die für Dateioperationen verwendet werden, streng validiert werden. Vermeiden Sie die Annahme von relativen Pfaden von Benutzern.
  • Verwendung von sicheren APIs: Nutzen Sie APIs, die automatisch unsichere Eingaben filtern, wie z.B. die Realpath-Funktion in PHP, die den kanonischen Pfad der Datei zurückgibt.
  • Beschränkung des Dateizugriffs: Beschränken Sie den Zugriff auf Dateien auf einen spezifischen, sicheren Ordner. Verwenden Sie Whitelisting für erlaubte Dateien, anstatt Blacklisting von verbotenen Pfaden.
  • Fehlerbehandlung: Implementieren Sie sichere Fehlerbehandlungsmechanismen, die keine sensiblen Informationen preisgeben, falls ein Angriff erkannt wird.


Quellenangaben

  • OWASP Foundation, "Path Traversal", verfügbar unter OWASP Path Traversal
  • CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal'), verfügbar unter CWE-22

Diese Empfehlungen und Beispiele sollen als Grundlage dienen, um die Sicherheit von Anwendungen gegen Directory Traversal Angriffe zu stärken.

Es ist wichtig, dass Entwickler und Systemadministratoren sich kontinuierlich über neue Sicherheitslücken und Schutzmechanismen informieren.


Häufig gestellte Fragen

Was ist Directory Traversal?

Directory Traversal, auch bekannt als Path Traversal, ist eine Sicherheitslücke, die es einem Angreifer ermöglicht, auf Dateien und Verzeichnisse zuzugreifen, die außerhalb des vorgesehenen Verzeichnisses liegen. Dies wird oft durch Manipulation von Variablen erreicht, die Dateipfade enthalten.

Wie funktioniert ein Directory Traversal Angriff?

Bei einem Directory Traversal Angriff manipuliert der Angreifer Eingabeparameter, die den Zugriff auf das Dateisystem beeinflussen. Typischerweise geschieht dies durch das Einfügen von '../' (oder ähnlichen Sequenzen), um in höhere Verzeichnisebenen zu navigieren als erlaubt.

Welche Risiken sind mit Directory Traversal verbunden?

Ein erfolgreich durchgeführter Directory Traversal Angriff kann es einem Angreifer ermöglichen, auf sensible Dateien zuzugreifen, Konfigurationsdateien zu lesen oder zu ändern, und in einigen Fällen sogar das System zu kompromittieren, indem Skripte ausgeführt oder Dienste manipuliert werden.

Wie kann man sich vor Directory Traversal schützen?

Zum Schutz vor Directory Traversal sollten Entwickler:

  • Benutzereingaben gründlich validieren und gefährliche Zeichen filtern.
  • Verwenden von sicheren Programmierpraktiken wie das Arbeiten mit absoluten statt relativen Pfaden.
  • Die Verwendung von Sicherheitsfunktionen und Frameworks, die automatisch Pfade validieren und sichern.

Gibt es Tools, die helfen, Directory Traversal Schwachstellen zu erkennen?

Ja, es gibt mehrere Sicherheitstools und Scanner, die helfen können, Directory Traversal Schwachstellen zu erkennen. Beispiele hierfür sind Burp Suite, OWASP ZAP und verschiedene statische Code-Analyse-Tools, die speziell darauf ausgelegt sind, Sicherheitslücken in Webanwendungen zu identifizieren.


Empfanden Sie diesen Artikel als hilfreich?

Nein Ja