Aikido

Path Traversal 2024 – Das Jahr entschlüsselt

Mackenzie JacksonMackenzie Jackson
|
#
#

Path Traversal, auch bekannt als Directory Traversal, tritt auf, wenn ein böswilliger Benutzer vom Benutzer bereitgestellte Daten manipuliert, um unbefugten Zugriff auf Dateien und Verzeichnisse zu erhalten. Typischerweise versucht der Angreifer, auf Protokolle und Anmeldeinformationen zuzugreifen, die sich in anderen Verzeichnissen befinden. Path Traversal ist keine neue Schwachstelle und wird seit den 90er Jahren, als Webserver populär wurden, aktiv ausgenutzt. Viele verließen sich auf Common Gateway Interface (CGI)-Skripte, um dynamische serverseitige Inhalte auszuführen.

Ist Path Traversal trotz seiner langen Geschichte heute noch verbreitet? Wir haben eine Studie sowohl zu Open-Source- als auch zu Closed-Source-Projekten durchgeführt, um Daten zu sammeln und zu sehen, wie häufig Path Traversal im Jahr 2024 war und ob wir uns verbessern, Spoiler: Nein.

Path Traversal Beispiel

Wie genau funktioniert Path Traversal? Schauen wir uns ein einfaches Beispiel an.

In dieser einfachen Anwendung erhält ein Benutzer eine Datei zum Herunterladen über eine Variable in der URL.

Es gibt einen einfachen Backend-Python-Code, der die Anfrage verarbeitet.

import os

def download_file(file):
base_directory = "/var/www/files"
file_path = os.path.join(base_directory, file)

if os.path.exists(file_path):
with open(file_path, 'rb') as f:
return f.read()
else:
return "Datei nicht gefunden"

Da die Variable nun in der URL bereitgestellt wird, können wir sie in etwa so ändern. file=..\/..\/..\/..\/etc\/passwd

Hier verwendet der Angreifer ..\/..\/, um die Verzeichnisstruktur bis zur Systemstammverzeichnisebene zu durchlaufen und auf die übergebene Datei zuzugreifen, wodurch potenziell sensible Informationen zugänglich werden.

Wenn Sie sehen möchten, wie diese Methode gesichert werden könnte, scrollen Sie nach unten zum Bonusinhalt.

In komplexeren Szenarien mit mehreren Verzeichnisebenen oder kodierten Zeichen (z. B., %2e%2e%2f), können Angreifer grundlegende Filter umgehen und tieferen Zugriff auf das Dateisystem erlangen.

Path Traversal in Zahlen

  • 2,7 % aller bisher im Jahr 2024 in Open-Source-Projekten gefundenen Schwachstellen waren Path Traversal
  • 3,5 % für Closed-Source-Projekte!
  • Ein Anstieg der Gesamtzahl der Path-Traversal-Schwachstellen in Open-Source-Projekten von 742 (2023) auf voraussichtlich 1.000 (2024).
  • Als Prozentsatz aller Schwachstellen wird Path Traversal häufiger, mit einem massiven Anstieg bei Closed-Source-Projekten um 85 %.
Path Traversal in 2024 und 2023

Unsere Forschung konzentrierte sich auf die Untersuchung sowohl von Open-Source- als auch von Closed-Source-Projekten, um aufzudecken, wie viele davon Path Traversal-Schwachstellen in sich verbargen.

Insgesamt ist die Anzahl der Path-Traversal-Schwachstellen geringer als bei einigen anderen, die wir untersucht haben, wie Command Injections oder SQL Injections. Aber angesichts der Tatsache, dass diese Schwachstelle sehr gefährlich sein kann und gut dokumentierte Lösungen zu ihrer Verhinderung existieren, ist es alarmierend, die Zahlen so hoch zu sehen, wie sie sind. Noch alarmierender ist es, die Trends für diese Schwachstelle in die falsche Richtung gehen zu sehen.

Open-Source-Projekte

In Open-Source-Projekten machten Path Traversal-Schwachstellen 2,6 % aller gemeldeten Schwachstellen im Jahr 2023 aus. Diese Zahl stieg 2024 leicht auf 2,75 %. Obwohl dieser Anstieg auf den ersten Blick gering erscheinen mag, unterstreicht er die anhaltenden Herausforderungen bei der Absicherung von Open-Source-Software selbst gegen einfache Schwachstellen.

Closed-Source-Projekte

Der bemerkenswerteste Trend wurde in Closed-Source-Projekten beobachtet, wo Path Traversal-Vorfälle von 1,9 % im Jahr 2023 auf 3,5 % im Jahr 2024 anstiegen – ein erheblicher Anstieg von 85 %, der einen alarmierenden Trend dieser Art von Schwachstelle hervorhebt.

Die schlechten Nachrichten hören leider nicht hier auf. Wir sehen weiterhin einen Anstieg der Gesamtzahl der in Open-Source-Projekten gemeldeten Schwachstellen. Die Gesamtzahl der in Open-Source-Projekten gemeldeten Injection-Schwachstellen stieg von 742 im Jahr 2023 auf bisher 917 im Jahr 2024 (erwartet wird, dass sie 1.000 erreichen wird).

Anzahl der Path Traversal-Schwachstellen in 2024 und 2023

Verhinderung von Path Traversal

Die Verhinderung von Command-Injection-Schwachstellen erfordert einen vielschichtigen Ansatz:

Eingabevalidierung

  • Benutzereingaben bereinigen: Gefährliche Zeichen entfernen oder kodieren, wie z. B. ../, ..\, ..%2f, oder andere Varianten.
  • Allowlist-Ansatz: Definieren Sie eine strikte Menge zulässiger Eingaben (z. B. Dateinamen oder Pfade) und lehnen Sie alles ab, was nicht auf dieser Liste steht.

Dateizugriff einschränken

  • Verwenden Sie ein Chroot-Jail oder eine Sandbox: Beschränken Sie den Dateizugriff der Anwendung auf ein eingeschränktes Verzeichnis, um sicherzustellen, dass sie nicht über den vorgesehenen Verzeichnisbaum hinaus navigieren kann.
  • Root-Verzeichnisse festlegen: Definieren Sie Basisverzeichnisse und stellen Sie sicher, dass alle Pfade relativ zu diesen sind. Verwenden Sie APIs oder Frameworks, die dies durchsetzen, wie zum Beispiel:java.nio.file.Paths.get("baseDir").resolve(userInput).normalize() in Java.
    os.path.realpath() und os.path.commonpath() in Python.

Sichere Dateizugriffs-APIs

  • Verwenden Sie sichere Dateizugriffsmethoden, die von modernen Bibliotheken oder Frameworks bereitgestellt werden:In Java, verwenden Files.newInputStream() oder Files.newBufferedReader() für eine sichere Dateiverwaltung.
    In Python, stellen Sie sicher, dass Dateipfade validiert werden, bevor auf sie zugegriffen wird.

Verwenden Sie Umgebungsbeschränkungen

  • Restriktiv festlegen Dateisystemberechtigungen:Stellen Sie sicher, dass die Anwendung nur die minimal erforderlichen Berechtigungen besitzt.
    Zugriff auf sensible Verzeichnisse verweigern (z. B., /etc, /var, /usr, und Benutzer-Home-Verzeichnisse).
  • Unnötige Funktionen in Webservern oder Frameworks deaktivieren (z. B. dem Folgen von symbolischen Links).

Automatisiertes Testing

  • Verwenden Sie Tools wie Aikido Ihren Quellcode und Ihre Anwendung zu scannen und diese Schwachstellen zu entdecken.
  • Sowohl SAST DAST sollten zusammen mit Domain-Scanning und Cloud-Sicherheit eingesetzt werden, Cloud-Sicherheit sicherzustellen, dass keine versteckten Path-Traversal-Schwachstellen vorhanden sind.

Verwenden Sie eine In-App-Firewall

  • Eine der besten Abwehrmaßnahmen gegen Injektionsangriffe ist eine In-App-Firewall , die bösartige Befehle abfangen und blockieren kann.

Der Weg nach vorn

Path Traversal ist eine Schwachstelle, die seit den Anfängen von Webanwendungen existiert, und obwohl sie oft recht einfach ist, kann sie auch ein sehr verheerender Exploit sein. Es ist daher besorgniserregend, dass ein so großer Prozentsatz von Projekten immer noch mit solchen Problemen zu kämpfen hat. Obwohl 3,5 % keine hohe Zahl zu sein scheint, ist es doch bemerkenswert, dass die Zahl trotz ihrer klaren, anhaltenden und gut dokumentierten Bedrohung an Popularität gewinnt.

Path Traversal ist keine Schwachstelle, die verschwinden wird, aber die gute Nachricht ist, dass es klare Wege gibt, wie wir diese Schwachstellen in unserer Anwendung finden und alle gefundenen Probleme beheben können.

Bonus-Inhalt

Vorfälle aus der Praxis

In den letzten Jahren gab es mehrere hochkarätige Sicherheitsverletzungen oder Schwachstellen, bei denen Path Traversal entweder der primäre Einstiegspunkt oder Teil einer Schwachstellenkette war.

Microsoft IIS Unicode Exploit (2001)

Einer der frühesten hochkarätigen Path Traversal Exploits, der auf Microsoft IIS-Server abzielte. Angreifer nutzten kodierte Pfade, um Validierungsmechanismen zu umgehen (z. B. durch die Verwendung von %c0%af darzustellen /). Dies ermöglichte ihnen den Zugriff und die Ausführung von Dateien außerhalb des Web-Root-Verzeichnisses.

Dies ermöglichte die Bereitstellung von Malware und das Defacement zahlreicher Websites.

Fortinet VPN-Pfadüberquerung (2019)

Fortinet SSL-VPN wurde eine Verzeichnisüberquerungsschwachstelle (CVE-2018-13379) entdeckt. Angreifer nutzten diese Schwachstelle aus, um auf sensible Systemdateien zuzugreifen, beispielsweise Klartext-Passwörter für VPN-Benutzer.

Tausende von VPN-Zugangsdaten wurden online geleakt, was Organisationen unbefugtem Zugriff und weiteren Angriffen aussetzte.

Capital One Breach (2019)

Was geschah: Während die Hauptursache eine SSRF-Schwachstelle war, nutzte der Angreifer auch Directory Traversal, um auf AWS S3 Bucket-Metadaten zuzugreifen. Der Angreifer nutzte Fehlkonfigurationen aus, um Konfigurationsdateien abzurufen, die unzugänglich sein sollten.

Dies legte persönliche Daten von 106 Millionen Kreditkartenantragstellern offen.

Path Traversal in Kubernetes Dashboard (2020)

Das Kubernetes-Dashboard wies eine Verzeichnisüberquerungsschwachstelle auf (CVE-2020-8563). Angreifer nutzten diese Schwachstelle aus, um sensible Dateien im container zu lesen, darunter auch in secrets . /etc.

4.7/5

Sichern Sie Ihre Software jetzt.

Kostenlos starten
Ohne Kreditkarte
Demo buchen
Ihre Daten werden nicht weitergegeben · Nur Lesezugriff · Keine Kreditkarte erforderlich

Werden Sie jetzt sicher.

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.