Was ist Directory Traversal?

Veröffentlicht: 2023-05-09

Indem Angreifer einen Webserver dazu verleiten, ansonsten vertrauliche Informationen preiszugeben, können sie ein leistungsstarkes Werkzeug erhalten, mit dem sie ein System kompromittieren und erheblichen Schaden anrichten können. Verzeichnisdurchquerung ist eine gängige Methode, um dies zu erreichen. Der Versuch, außerhalb der für eine bestimmte Website reservierten Bereiche des Dateisystems zu navigieren, kann zu Datendiebstahl und der Ausführung willkürlichen Codes führen.

Typischerweise beschränken Webserver den Zugriff auf das Dateisystem, indem sie die Dateien einer Website auf ihr Stammverzeichnis beschränken, das auch als Dokumentstammordner bezeichnet wird. Allerdings können Cyberkriminelle diese Sicherheitskontrollen umgehen und unsichere Dateiberechtigungen ausnutzen. Auf diese Weise können sie unbefugten Zugriff auf wichtige Informationen erhalten, die an anderer Stelle auf dem Server des Opfers gespeichert sind.

Schwachstellen bei der Dateieinbindung, die regelmäßig in Plugins und Themes identifiziert werden, machen WordPress-Websites zu einem vorrangigen Ziel für Angriffe mit Verzeichnisdurchquerung. Und während die Implementierung sicherer Codierungspraktiken eine Aufgabe für Plugin- und Theme-Entwickler ist, liegt die Implementierung guter Sicherheitspraktiken in der Verantwortung der Website-Eigentümer.

In diesem Leitfaden zum Durchsuchen von Verzeichnissen werden wir diese gängige Methode untersuchen, mit der Hacker aus dem Stammverzeichnis der Website ausbrechen und auf geschützte Daten zugreifen. Sie erfahren, wie Path Traversal es Angreifern ermöglicht, lokale File Inclusion (LFI)-Schwachstellen erfolgreich auszunutzen, um Schaden anzurichten, und wie Sie Ihre WordPress-Website durch die Implementierung robuster Sicherheitspraktiken vor dieser Art von Angriffen schützen können.

Schauen wir uns zunächst die Konzepte des sicheren Serverbetriebs genauer an. Genauer gesagt, wie verschiedene Arten von Daten in der Serverumgebung getrennt werden und welchen Platz Website-Daten in diesem Ökosystem einnehmen.

Verzeichnisdurchquerung

Wie Datenpartitionierung zur Sicherung des Serverbetriebs beiträgt

Websites und Webanwendungen sind zum Speichern ihrer Daten auf Server angewiesen. Diese Daten werden dann von Web- und Datenbankservern und anderen spezifischen Anwendungen verarbeitet, bevor sie über das Internet als angeforderte Webseiten an die Browser der Besucher übermittelt werden. Die zugrunde liegenden Hardware- und Softwarekomponenten arbeiten zusammen, um eine robuste Infrastruktur zu schaffen, die diese Funktionalität ermöglicht.

Diese Client-Server-Architektur erfordert jedoch auch einen sorgfältigen Ansatz für die Serversicherheit. Kritische Dienste und andere Komponenten des Server-Betriebssystems müssen vollständig von Benutzerdateien und Website-Daten getrennt sein. Diese Trennung von Daten im Dateisystem wird allgemein als Datenpartitionierung bezeichnet.

Die Datenpartitionierung trägt dazu bei, die anfälligsten Aspekte des Serverbetriebs zu schützen, indem verschiedene Datentypen in separate Partitionen aufgeteilt werden. Die Implementierung von Dateisystempartitionierung und anderen Sicherheitsmechanismen trägt dazu bei, Server vor unbefugtem Zugriff auf vertrauliche Informationen und Kompromittierungen auf Systemebene zu schützen. Darüber hinaus ermöglicht die Datenpartitionierung eine effiziente Ressourcenverwaltung und verbessert die Serverleistung, indem sie häufig geänderte Daten von überwiegend schreibgeschützten Dateien trennt und System- und Benutzerdaten isoliert.

Webserver-Zugriffskontrolle: Einschränken von Website-Daten mit Dokumentwurzeln

Um Website-Daten von Systemdaten zu isolieren, nutzen Webserver das Konzept der Dokumentwurzeln. Dabei werden Website-Dateien auf ein bestimmtes Verzeichnis im Dateisystem beschränkt, das als Stammverzeichnis einer Website bezeichnet wird. Durch die Definition des Dokumentstamms kann der Webserver eingehende Anfragen für den Inhalt dieser Website korrekt weiterleiten und beantworten. Dieses Stammverzeichnis ist der Ausgangspunkt für die Bearbeitung von Webanfragen für diese Website.

Diese Beschränkung trägt dazu bei, unbefugten Zugriff auf kritische Serverdaten wie Betriebssysteminformationen und wichtige Konfigurationsdateien zu verhindern, die außerhalb des festgelegten Stammverzeichnisses gespeichert sind. Das bedeutet, dass Skripte oder andere Inhalte und Funktionen im Zusammenhang mit einer bestimmten Website nur auf Daten im Stammverzeichnis und seinen Unterverzeichnissen zugreifen und diese ändern können, was den Rest des Servers im Falle einer Sicherheitsverletzung schützt.

Zusätzlich zu den Dokumentenwurzeln nutzen Webserver weitere Zugriffskontrollmechanismen, um den Zugriff auf Website-Daten weiter einzuschränken. Einer der bemerkenswertesten Mechanismen sind Dateiberechtigungen. Dateiberechtigungen tragen dazu bei, das Prinzip der geringsten Rechte durchzusetzen, was bedeutet, dass Systembenutzern oder -prozessen nur das Mindestmaß an Zugriff gewährt wird, das zur Ausführung ihrer beabsichtigten Funktionen erforderlich ist.

Trotz der robusten Sicherheit dieses Ansatzes können Hacker eine Reihe bösartiger Techniken einsetzen, um ihn zu umgehen. Eine solche Methode ist das Durchlaufen von Verzeichnissen. Directory-Traversal-Angriffe nutzen die Schwachstellen im Website-Code und die Implementierung sicherer Berechtigungen aus, um den Webserver dazu zu bringen, eingeschränkte Informationen preiszugeben, auf die der Browser sonst nicht zugreifen könnte.

Was ist Directory Traversal?

Directory Traversal, auch Path Traversal genannt, ist eine bösartige Technik, die darauf abzielt, Zugriff auf eingeschränkte Dateien und Verzeichnisse außerhalb des Dokumentenstamms der Zielwebsite oder Webanwendung zu gewähren. Path Traversal ermöglicht es dem Angreifer, über den Browser durch das Dateisystem des Servers bis zum Stammverzeichnis und anderen eingeschränkten Ordnern zu navigieren – ein Verhalten, das unter normalen Umständen nicht möglich sein sollte.

Beim Verzeichnisdurchlauf werden die Variablen, die auf Dateien verweisen, mithilfe von Sonderzeichen manipuliert, die als Pfaddurchlaufsequenzen bezeichnet werden. Sequenzen wie Punkt-Punkt-Schrägstrich „../“ werden vom Webserver interpretiert und zwingen ihn, in der Dateisystemhierarchie ein Verzeichnis nach oben zu verschieben und sich vom Dokumentenstamm der Website zu entfernen.

Wenn eine Website in /home/user/public_html gespeichert ist, ermöglicht die Bereitstellung der Directory-Traversal-Sequenz „../../../etc“ dem Angreifer, zum Verzeichnis /etc zu navigieren, in dem wichtige Systemkonfigurationen unter Linux gespeichert sind Server.

Wenn die Verzeichnisauflistung in der Webserverkonfiguration deaktiviert ist, kann der Cyberkriminelle den Inhalt des angeforderten Verzeichnisses nicht anzeigen. Dies kann die Sicherheit des Systems teilweise erhöhen und den potenziellen Schaden durch Directory-Traversal-Angriffe begrenzen, da der Angreifer genau die Datei angeben muss, die er im Browser anzeigen möchte. Da Hacker aber in den meisten Fällen genau wissen, nach welchen Informationen sie suchen, hindert sie die Deaktivierung der Verzeichnisliste nicht daran, darauf zuzugreifen.

Die Datei /etc/passwd ist eines der häufigsten Ziele von Directory-Traversal-Angriffen. Auf Linux-Servern enthält die Datei /etc/passwd die Liste der auf dem Server erstellten Benutzer. Dies kann Hackern einen guten Ausgangspunkt für Brute-Force-Angriffe auf die Anmeldeinformationen der Benutzer bieten. Da /etc/passwd über Dateiberechtigungen von 644 verfügt, bedeutet dies, dass es für alle Benutzer im System lesbar ist, einschließlich des Benutzers, unter dem der Webserver ausgeführt wird. Auf diese Weise kann der Webserver den Inhalt der Datei über den Browser rendern.

Wie funktioniert Directory Traversal?

Als bösartige Technik wird Directory Traversal selten als einziges Mittel eingesetzt, um Zugriff auf vertrauliche Informationen auf den Servern der Opfer zu erhalten. Zunächst müssen Angreifer eine Möglichkeit finden, eine Schwachstelle auf der angegriffenen Website auszunutzen, um die Anzeige der angeforderten Informationen im Browser zu ermöglichen. Erst dann wird Directory Traversal verwendet, um durch das Dateisystem des Servers des Opfers zu navigieren, um eingeschränkte Verzeichnisse zu erreichen.

Sicherheitslücken bei der Dateieinbindung ermöglichen den Einsatz von Directory Traversal. Eine Sicherheitslücke beim Durchsuchen von Verzeichnissen tritt auf, wenn eine Website Benutzereingaben nicht ordnungsgemäß bereinigt, z. B. Dateipfade, die mithilfe der dynamischen Dateieinbindung bereitgestellt werden. Eine Kombination aus vorhandenen Schwachstellen im Bereich Local File Inclusion (LFI) und Directory Traversal ermöglicht es Hackern, auf Daten außerhalb des Dokumentenstammverzeichnisses der angegriffenen Website zuzugreifen und vertrauliche Serverinformationen preiszugeben.

Ein Beispiel für Verzeichnisdurchquerung

Schauen wir uns das folgende Beispiel an, um besser zu verstehen, wie Schwachstellen beim Einschließen lokaler Dateien und beim Durchlaufen von Verzeichnissen ausgenutzt werden können. Dieses Beispiel ist eine vereinfachte Darstellung, wie Verzeichnisdurchquerung über einen Dateieinschlussfehler verwendet wird.

Ein Webentwickler fügt eine Webseite content.php hinzu, die es der Website ermöglicht, je nach Benutzeranforderung verschiedene Seiten oder Komponenten dynamisch zu laden. Wenn ein Website-Besucher beispielsweise die Seite „Kontakt“ anzeigen möchte, wird seine Anfrage möglicherweise in der Adressleiste des Browsers als „https://website.com/content.php?page=contact_us“ angezeigt.

Die Seite „content.php“ verwendet die lokale Dateieinbindungstechnik, um auf die Datei zu verweisen, die dem Parameter „contact_us“ entspricht und den PHP- und HTML-Code für die angeforderte „Kontakt“-Seite enthalten könnte. In diesem Beispiel fungiert die Webseite content.php als Controller, der die entsprechende Datei lädt, die den Inhalt dynamisch basierend auf der Eingabe des Benutzers generiert.

Wenn die Eingaben des Benutzers jedoch nicht ordnungsgemäß validiert oder bereinigt werden, können Angreifer Sicherheitslücken beim Einschließen von Dateien und beim Durchlaufen von Verzeichnissen ausnutzen, um beliebige Dateien einzuschließen, die dann im Browser angezeigt würden.

Beispielsweise kann ein Hacker „../../../../../var/log/apache2/access.log“ als Wert des Seitenabfrageparameters übergeben – eine Reihe von Verzeichnisdurchlaufsequenzen, gefolgt von die Adresse des Hauptzugriffsprotokolls des Apache-Webservers im Dateisystem. Auf diese Weise kann der Angreifer den Inhalt der Protokolldatei einsehen, die vertrauliche Informationen wie IP-Adressen, User-Agent-Strings und von Website-Besuchern angeforderte URLs enthält.

Wie Dateiberechtigungen das Durchsuchen von Verzeichnissen erleichtern oder abschwächen können

Dateiberechtigungen spielen eine große Rolle bei der Gewährleistung der Server- und Website-Sicherheit. Durch die Beschränkung des Zugriffs auf die Datei auf nur bestimmte Systembenutzer und -gruppen können Berechtigungen dazu beitragen, das Durchsuchen von Verzeichnissen zu erleichtern oder abzuschwächen.

Bei einem File-Inclusion-Angriff mittels Directory Traversal würde der Inhalt der vom Angreifer angeforderten Datei nur dann im Browser angezeigt, wenn dessen Dateiberechtigungen es dem System erlauben, das den Webserver nutzt, um ihn zu lesen. Während einige eingeschränkte Dateien wie /etc/password über die Berechtigung 644 verfügen, wodurch sie für alle Systembenutzer lesbar sind, bleiben andere Dateien weiterhin nur für den Root-Benutzer zugänglich.

Die Datei /etc/shadow, die verschlüsselte Passwörter für alle Benutzer auf einem Linux-Server enthält, verfügt über die Dateiberechtigung 640, wodurch sie für andere Benutzer als Root unzugänglich ist. Dies macht es Hackern unmöglich, über den Browser per Directory Traversal auf die Datei zuzugreifen.

Wie erkennt man Directory-Traversal-Schwachstellen auf Ihrer WordPress-Site?

Der WordPress-Kern gewährleistet ein hohes Maß an Sicherheit und ist vollständig vor Schwachstellen bei der Dateieinbindung und Verzeichnisdurchquerung geschützt. Allerdings erhöhen die umfangreichen Anpassungsmöglichkeiten, die die Plattform bietet, die Möglichkeit, dass diese Schwachstellen auf einer WordPress-Site vorhanden sind. Selbst die renommiertesten WordPress-Plugins und -Themes können Sicherheitslücken enthalten, die regelmäßig entdeckt werden.

Mit den wöchentlichen WordPress-Schwachstellenberichten von iThemes können Sie neu aufgedeckte Schwachstellen in WordPress-Plugins und -Themes, einschließlich Verzeichnisdurchquerung, schnell identifizieren und beheben. Überprüfen Sie einfach die Schwachstellenberichte, um festzustellen, ob kürzlich Sicherheitslücken in den Plugins, die Sie auf Ihrer WordPress-Site verwenden, sowie in Ihrem aktiven Theme gefunden wurden, und prüfen Sie, ob ein Patch veröffentlicht wurde.

iThemes Security Pro kann den Scanvorgang Ihrer WordPress-Website auf Schwachstellen automatisieren und die identifizierten Schwachstellen in Ihrem Namen schnell beheben. iThemes Security Pro führt zweimal täglich einen erweiterten Schwachstellenscan durch, sendet Ihnen eine E-Mail, wenn Schwachstellen erkannt werden, und installiert automatisch ein Update, wenn ein Sicherheitsupdate verfügbar ist.

Wie verteidigt man sich gegen Directory Traversal?

Das Ausnutzen von Schwachstellen in Plugins und Themes ist einer der größten Angriffsvektoren, den Hacker nutzen, um sich unbefugten Zugriff zu verschaffen, sensible Daten zu stehlen und Malware, einschließlich Backdoor-Shells, auf WordPress-Websites hochzuladen. Und während die Einhaltung sicherer Codierungspraktiken in den Verantwortungsbereich der Plugin- und Theme-Entwickler fällt, sind WordPress-Websitebesitzer für die lokale Implementierung von Schutzmaßnahmen verantwortlich. Nur ein vielschichtiger Ansatz zur WordPress-Sicherheit kann dazu beitragen, das Risiko zu verringern, Opfer moderner, raffinierter Cyberangriffe zu werden.

Halten Sie die gesamte Software auf dem neuesten Stand

Die Aktualisierung des WordPress-Kerns, der aktiven Plugins und des ausgewählten Themes auf die neueste verfügbare Version ist der erste Schritt zur Beseitigung von Verzeichnisüberschreitungen und anderen schwerwiegenden Schwachstellen auf Anwendungsebene. Da in der Software Ihrer WordPress-Site neue Sicherheitslücken festgestellt werden, ist es äußerst wichtig, Sicherheitspatches zu installieren, sobald diese verfügbar sind. Bevor die entdeckte Schwachstelle vom Plugin- oder Theme-Entwickler behoben wird, kann die betroffene Software deaktiviert werden, um die Angriffsfläche zu verringern.

Den Überblick über Plugin- und Theme-Updates zu behalten, kann eine anspruchsvolle Aufgabe sein, aber mit iThemes Security Pro können Website-Besitzer auf eine umfassende Lösung zugreifen, die den Prozess vereinfacht und dabei hilft, sicherzustellen, dass Websites aktuell und vor Sicherheitslücken geschützt bleiben. Die Versionsverwaltungsfunktion bietet automatische Software-Updates zum Schutz Ihrer WordPress-Site.

Konfigurieren Sie sichere Dateiberechtigungen

Sichere WordPress-Dateiberechtigungen bieten eine zusätzliche Verteidigungsebene gegen Angriffe, die darauf abzielen, Zugriff auf vertrauliche Website- und Serverinformationen zu erhalten. Und obwohl Sie selten Dateiberechtigungen für kritische Systemkonfigurationsdateien und andere eingeschränkte Serverdaten ändern müssen, liegt die Verantwortung für die Einrichtung sicherer Berechtigungen für Website-Dateien häufig beim Website-Eigentümer.

Das Aufbewahren kritischer WordPress-Informationen wie der Datei wp-config.php kann dazu beitragen, kontoübergreifende Kompromittierungen durch symbolische Links von File-Inclusion-Angriffen, die Schwachstellen beim Durchsuchen von Verzeichnissen ausnutzen, effektiv zu verhindern. Dateiberechtigungsprüfungen in iThemes Security Pro helfen Websitebesitzern sicherzustellen, dass dieser wichtige Sicherheitsmechanismus auf ihren WordPress-Sites korrekt implementiert wird.

Implementieren Sie eine Webanwendungs-Firewall

Firewalls funktionieren, indem sie bösartige Webanfragen herausfiltern, die bekannten Mustern entsprechen oder ungewöhnliche Muster aufweisen, bevor sie an den Webserver weitergeleitet werden. Als robuste erste Verteidigungslinie gegen eine Vielzahl botgesteuerter Cyberangriffe wie Denial of Service (Dos) und Distributed Denial of Service (DDoS) sowie Dateninjektionsangriffe wie Cross-Site-Scripting (XSS) und SQL Injektionen (SQLi).

Durch die Implementierung einer Web Application Firewall (WAF) oder einer Kombination aus einer hostbasierten und cloudbasierten Intrusion Prevention-Lösung kann die Wahrscheinlichkeit eines erfolgreichen Einbruchsversuchs erheblich verringert werden. Webanwendungs-Firewalls fungieren als zweite Verteidigungsebene gegen Schwachstellen bei Dateieinschlüssen und Verzeichnisdurchquerung und stellen sicher, dass Hacker alle Sicherheitslücken ausnutzen können, die in ungepatchten Versionen von Plugins und Themes gefunden werden.

Mit IThemes Security Pro helfen Brute-Force-Schutz und integrierte Bot-Management-Lösungen dabei, bösartige Bots zu stoppen und bösartige Webanfragen daran zu hindern, Ihre Website zu erreichen. Mit einer zusätzlichen Multi-Faktor-Authentifizierung, die durch Passschlüssel mit biometrischen Anmeldungen unterstützt wird, bietet diese umfassende Sicherheitssuite einen vielfältigen Ansatz zum Schutz Ihrer Website vor verschiedenen Arten von Sicherheitsbedrohungen.

Sichern Sie Ihre WordPress-Website mit iThemes Security Pro

Schwachstellen beim Einschließen von Dateien und beim Durchlaufen von Verzeichnissen stellen eine erhebliche Bedrohung für die Website-Sicherheit dar, da sie häufig von Hackern ausgenutzt werden, die sich unbefugten Zugriff auf sensible Daten verschaffen oder bösartigen Code auf dem Server des Opfers ausführen möchten. Mithilfe von Directory-Traversal-Sequenzen und der Angabe des Pfads zu bestimmten Daten an eine anfällige Website kann ein Angreifer den Webserver dazu verleiten, ansonsten eingeschränkte Server- und Website-Informationen offenzulegen.

Obwohl das Durchsuchen von Verzeichnissen umfassend untersucht und anerkannt wird, stellt es nach wie vor ein großes Problem für WordPress-Websites dar, die auf veralteter Software basieren und über keine angemessenen Sicherheitsmaßnahmen verfügen. Durch die rechtzeitige Durchführung von WordPress-Kern-, Theme- und Plugin-Updates, die Konfiguration sicherer Dateiberechtigungen und die Implementierung einer Webanwendungs-Firewall kann das Risiko, dass Ihre Website anfällig für File-Inclusion-Angriffe ist, die Verzeichnisdurchquerung nutzen, erheblich verringert werden.

iThemes Security Pro kann Ihnen dabei helfen, Ihre WordPress-Website vor einer Vielzahl von Cyber-Bedrohungen zu schützen, indem es einen umfassenden, vielschichtigen Ansatz zur Website-Sicherheit bietet. Mit erweitertem Schwachstellenscan, automatischen Software-Updates und leistungsstarken integrierten Bot-Management-Lösungen fungiert iThemes Security Pro als Ihr persönlicher Sicherheitsberater und sorgt dafür, dass Ihre WordPress-Website jederzeit sicher und geschützt bleibt.