Coders Conquer Security: Share & Learn Series - Local File Inclusion und Path Traversal

Veröffentlicht Jul 04, 2019
von Jaap Karan Singh
FALLSTUDIE

Coders Conquer Security: Share & Learn Series - Local File Inclusion und Path Traversal

Veröffentlicht Jul 04, 2019
von Jaap Karan Singh
Ressource anzeigen
Ressource anzeigen

Im Gegensatz zu vielen anderen Schwachstellen erfordert das Ausnutzen lokaler Dateieinschluss- und Pfadüberquerungsprozesse für schändliche Zwecke einen ausreichend geschickten Angreifer, eine gehörige Portion Zeit und vielleicht auch ein bisschen Glück. Das soll nicht heißen, dass diese Sicherheitsanfälligkeit ignoriert werden kann. Geschickte Angreifer können sie nutzen, um interne Dateien gegen eine Organisation zu wenden, eine Verzeichnisstruktur abzubilden oder sogar Kennwort- und Benutzerinformationen zu stehlen, die für gefährliche sekundäre Angriffe verwendet werden können.

In dieser Folge lernen wir:

  • Wie Hacker lokale File-Inclusion- und Path-Traversal-Schwachstellen ausnutzen
  • Warum das Zulassen von uneingeschränkter lokaler Dateieinbindung und Pfadüberquerung gefährlich sein kann
  • Richtlinien und Techniken, die eingesetzt werden können, um dieses Problem zu finden und zu beheben.

Wie nutzen Angreifer lokale Dateieinbindung und Pfadumgehung aus?

Der klassische TV-Detektiv Columbo pflegte immer zu sagen: "Nur noch eine Sache", kurz bevor er eine wertvolle Information lieferte, die den vorliegenden Fall aufklären würde. Es schien zu diesem Zeitpunkt belanglos und wurde fast immer vom Verdächtigen ignoriert, erwies sich aber immer als sein Verhängnis. Die Sicherheitslücken "Local File Inclusion" und "Path Traversal" ähneln dem sehr.

Die Schwachstellen "Local File Inclusion" und "Path Traversal" nutzen den dynamischen Datei-Include-Mechanismus, der in den meisten Programmier-Frameworks wie ASP-, JSP- und PHP-Skripten existiert. Bei der lokalen Dateieinbindung schiebt ein Angreifer den Namen einer Datei, die auf dem lokalen Server existiert, in einen Bereich in einer Webanwendung, z. B. in eine Kopfzeile oder einen Formulareingabebereich. Die Anwendung verarbeitet die Haupteingabe wie gewohnt, aber auch den include(page) oder ähnlichen Befehl. Beim Path Traversal definiert der Angreifer den Pfad zu einer verdächtigen Datei, wobei er normalerweise die Zeichen Punkt, Punkt und Schrägstrich (../) als Variablen verwendet. Ähnlich wie bei Columbo ist dem Hacker der erste Teil des Arguments völlig egal. Es ist einfach ein Mittel für sie, um "nur noch eine Sache" am Ende hinzuzufügen.

In beiden Fällen muss der Angreifer normalerweise eine beträchtliche Menge an Versuch und Irrtum durchführen. Wenn er nicht sehr gut mit der Struktur der Website vertraut ist, kann das Erraten von Pfadkonfigurationen und Dateinamen sehr lange dauern. Allerdings folgen die meisten Websites bestimmten Mustern und haben mehr oder weniger ähnliche Verzeichnisse und Dateinamen. Es könnte also nicht so lange dauern, wie Sie denken. Und da die Auszahlung potenziell sehr lukrativ ist, gibt es einen großen Anreiz für Hacker, zu versuchen, lokale Dateieinschlüsse und Pfadüberquerungsschwachstellen auszunutzen, sobald sie gefunden wurden.

Warum sind lokale Dateieinschlüsse und Pfadüberquerungsschwachstellen gefährlich?

Lokale Dateieinschluss- und Pfadüberquerungsschwachstellen sind gefährlich, da sie Angreifern den Zugriff auf sensible oder kritische Dateien ermöglichen können. Bei Datendateien besteht die Gefahr, dass der Hacker etwas Wertvolles wie Benutzerpasswörter oder andere persönliche Informationen erlangen könnte. Ein primäres Ziel sind oft Passwort- oder Benutzerkonfigurationsdateien, da diese den Zugriff auf den Rest der Website ermöglichen würden. Datenbanken sind ebenfalls ein Hauptziel. Lokale Dateieinbindung und Pfadüberquerungsschwachstellen könnten es einem Angreifer im schlimmsten Fall ermöglichen, den gesamten Inhalt einer Datenbank zu stehlen.

Bei ausführbaren Dateien besteht die Gefahr darin, dass ein Angreifer durch den Zugriff auf diese Dateien bösartige Aktivitäten durchführen kann, z. B. einen Teil einer Website zerstören oder sogar eine Art internen Denial-of-Service-Angriff durchführen kann, indem er Systemressourcen verschwendet. Das volle Ausmaß der Gefahr wird jedoch nur durch den Einfallsreichtum und die Fähigkeiten des Angreifers sowie durch die Dateien begrenzt, auf die er zugreifen kann und die bereits auf dem Zielserver vorhanden sind.

Beseitigung der Bedrohung durch lokale Dateieinbindung und Pfadumgehung

Die Gefahr, die von lokalen File-Inclusion- und Path-Traversal-Schwachstellen ausgeht, kann mit guten Cybersecurity-Praktiken beseitigt werden. Das Wichtigste ist, niemals Benutzereingaben in "file include" oder andere Befehle mit ähnlichen Funktionen zuzulassen. Wenn eine Anwendung sie zulassen muss, geben Sie sie nicht direkt weiter. Verwenden Sie stattdessen eine indirekte Referenz-Map. Eine indirekte Referenz-Map nimmt Benutzereingaben auf und ordnet sie einer Reihe von fest kodierten vertrauenswürdigen Werten zu, die dann sicher verwendet werden können.

Wie bei vielen anderen Schwachstellen sollten Sie besonders auf alle benutzergesteuerten Eingabebereiche wie Cookies, HTTP-Header und Formularparameter achten. Erlaubte Eingaben sollten auf einer Whitelist stehen, alles andere sollte explizit verweigert werden. Wo dies nicht möglich ist, verwenden Sie die Eingabevalidierung, um streng zu regeln, welche Werte erlaubt sind, wie z. B. Zahlen, alphanumerische Werte usw.

Weitere Informationen zu Local File Inclusion und Path Traversal

Als weitere Lektüre können Sie einen Blick auf den OWASP-Testleitfaden für lokale Dateieinschlüsse und Path Traversal Exploits werfen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Plattform Secure Code Warrior testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Um mehr über die Beseitigung dieser Schwachstelle und eine Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .

Ressource anzeigen
Ressource anzeigen

Autor

Jaap Karan Singh

Sie wollen mehr?

Tauchen Sie ein in unsere neuesten Erkenntnisse über sichere Kodierung im Blog.

Unsere umfangreiche Ressourcenbibliothek zielt darauf ab, die menschliche Herangehensweise an eine sichere Weiterbildung im Bereich der Programmierung zu stärken.

Blog ansehen
Sie wollen mehr?

Holen Sie sich die neuesten Forschungsergebnisse zur entwicklergesteuerten Sicherheit

Unsere umfangreiche Ressourcenbibliothek ist voll von hilfreichen Ressourcen, von Whitepapers bis hin zu Webinaren, die Ihnen den Einstieg in die entwicklungsorientierte sichere Programmierung erleichtern. Erforschen Sie sie jetzt.

Ressourcendrehscheibe

Coders Conquer Security: Share & Learn Series - Local File Inclusion und Path Traversal

Veröffentlicht Jul 04, 2019
Von Jaap Karan Singh

Im Gegensatz zu vielen anderen Schwachstellen erfordert das Ausnutzen lokaler Dateieinschluss- und Pfadüberquerungsprozesse für schändliche Zwecke einen ausreichend geschickten Angreifer, eine gehörige Portion Zeit und vielleicht auch ein bisschen Glück. Das soll nicht heißen, dass diese Sicherheitsanfälligkeit ignoriert werden kann. Geschickte Angreifer können sie nutzen, um interne Dateien gegen eine Organisation zu wenden, eine Verzeichnisstruktur abzubilden oder sogar Kennwort- und Benutzerinformationen zu stehlen, die für gefährliche sekundäre Angriffe verwendet werden können.

In dieser Folge lernen wir:

  • Wie Hacker lokale File-Inclusion- und Path-Traversal-Schwachstellen ausnutzen
  • Warum das Zulassen von uneingeschränkter lokaler Dateieinbindung und Pfadüberquerung gefährlich sein kann
  • Richtlinien und Techniken, die eingesetzt werden können, um dieses Problem zu finden und zu beheben.

Wie nutzen Angreifer lokale Dateieinbindung und Pfadumgehung aus?

Der klassische TV-Detektiv Columbo pflegte immer zu sagen: "Nur noch eine Sache", kurz bevor er eine wertvolle Information lieferte, die den vorliegenden Fall aufklären würde. Es schien zu diesem Zeitpunkt belanglos und wurde fast immer vom Verdächtigen ignoriert, erwies sich aber immer als sein Verhängnis. Die Sicherheitslücken "Local File Inclusion" und "Path Traversal" ähneln dem sehr.

Die Schwachstellen "Local File Inclusion" und "Path Traversal" nutzen den dynamischen Datei-Include-Mechanismus, der in den meisten Programmier-Frameworks wie ASP-, JSP- und PHP-Skripten existiert. Bei der lokalen Dateieinbindung schiebt ein Angreifer den Namen einer Datei, die auf dem lokalen Server existiert, in einen Bereich in einer Webanwendung, z. B. in eine Kopfzeile oder einen Formulareingabebereich. Die Anwendung verarbeitet die Haupteingabe wie gewohnt, aber auch den include(page) oder ähnlichen Befehl. Beim Path Traversal definiert der Angreifer den Pfad zu einer verdächtigen Datei, wobei er normalerweise die Zeichen Punkt, Punkt und Schrägstrich (../) als Variablen verwendet. Ähnlich wie bei Columbo ist dem Hacker der erste Teil des Arguments völlig egal. Es ist einfach ein Mittel für sie, um "nur noch eine Sache" am Ende hinzuzufügen.

In beiden Fällen muss der Angreifer normalerweise eine beträchtliche Menge an Versuch und Irrtum durchführen. Wenn er nicht sehr gut mit der Struktur der Website vertraut ist, kann das Erraten von Pfadkonfigurationen und Dateinamen sehr lange dauern. Allerdings folgen die meisten Websites bestimmten Mustern und haben mehr oder weniger ähnliche Verzeichnisse und Dateinamen. Es könnte also nicht so lange dauern, wie Sie denken. Und da die Auszahlung potenziell sehr lukrativ ist, gibt es einen großen Anreiz für Hacker, zu versuchen, lokale Dateieinschlüsse und Pfadüberquerungsschwachstellen auszunutzen, sobald sie gefunden wurden.

Warum sind lokale Dateieinschlüsse und Pfadüberquerungsschwachstellen gefährlich?

Lokale Dateieinschluss- und Pfadüberquerungsschwachstellen sind gefährlich, da sie Angreifern den Zugriff auf sensible oder kritische Dateien ermöglichen können. Bei Datendateien besteht die Gefahr, dass der Hacker etwas Wertvolles wie Benutzerpasswörter oder andere persönliche Informationen erlangen könnte. Ein primäres Ziel sind oft Passwort- oder Benutzerkonfigurationsdateien, da diese den Zugriff auf den Rest der Website ermöglichen würden. Datenbanken sind ebenfalls ein Hauptziel. Lokale Dateieinbindung und Pfadüberquerungsschwachstellen könnten es einem Angreifer im schlimmsten Fall ermöglichen, den gesamten Inhalt einer Datenbank zu stehlen.

Bei ausführbaren Dateien besteht die Gefahr darin, dass ein Angreifer durch den Zugriff auf diese Dateien bösartige Aktivitäten durchführen kann, z. B. einen Teil einer Website zerstören oder sogar eine Art internen Denial-of-Service-Angriff durchführen kann, indem er Systemressourcen verschwendet. Das volle Ausmaß der Gefahr wird jedoch nur durch den Einfallsreichtum und die Fähigkeiten des Angreifers sowie durch die Dateien begrenzt, auf die er zugreifen kann und die bereits auf dem Zielserver vorhanden sind.

Beseitigung der Bedrohung durch lokale Dateieinbindung und Pfadumgehung

Die Gefahr, die von lokalen File-Inclusion- und Path-Traversal-Schwachstellen ausgeht, kann mit guten Cybersecurity-Praktiken beseitigt werden. Das Wichtigste ist, niemals Benutzereingaben in "file include" oder andere Befehle mit ähnlichen Funktionen zuzulassen. Wenn eine Anwendung sie zulassen muss, geben Sie sie nicht direkt weiter. Verwenden Sie stattdessen eine indirekte Referenz-Map. Eine indirekte Referenz-Map nimmt Benutzereingaben auf und ordnet sie einer Reihe von fest kodierten vertrauenswürdigen Werten zu, die dann sicher verwendet werden können.

Wie bei vielen anderen Schwachstellen sollten Sie besonders auf alle benutzergesteuerten Eingabebereiche wie Cookies, HTTP-Header und Formularparameter achten. Erlaubte Eingaben sollten auf einer Whitelist stehen, alles andere sollte explizit verweigert werden. Wo dies nicht möglich ist, verwenden Sie die Eingabevalidierung, um streng zu regeln, welche Werte erlaubt sind, wie z. B. Zahlen, alphanumerische Werte usw.

Weitere Informationen zu Local File Inclusion und Path Traversal

Als weitere Lektüre können Sie einen Blick auf den OWASP-Testleitfaden für lokale Dateieinschlüsse und Path Traversal Exploits werfen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Plattform Secure Code Warrior testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Um mehr über die Beseitigung dieser Schwachstelle und eine Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.