Coders Conquer Security: Share & Learn Series - Remote File Inclusion

Veröffentlicht am 18. Jul. 2019
von Jaap Karan Singh
FALLSTUDIE

Coders Conquer Security: Share & Learn Series - Remote File Inclusion

Veröffentlicht am 18. Jul. 2019
von Jaap Karan Singh
Ressource anzeigen
Ressource anzeigen

Denjenigen, die diese Blogserie lesen, werden viele Ähnlichkeiten zwischen der Sicherheitsanfälligkeit für die entfernte Dateieinbindung und der zuvor besprochenen Sicherheitsanfälligkeit für die lokale Dateieinbindung und Pfadüberwindung auffallen. Ihre Ursachen sind ähnlich, ebenso wie die empfohlenen Korrekturen.

In vielerlei Hinsicht ist die Sicherheitslücke bei der Einbindung entfernter Dateien viel gefährlicher und auch leichter auszunutzen als ihr Gegenstück bei lokalen Dateien. Als solche sollte sie so schnell wie möglich gefunden und behoben werden. Oder besser noch, Webanwendungen sollten so gestaltet werden, dass sie gar nicht erst auftreten.

In dieser Folge lernen wir:

  • Wie Hacker die Remote File Inclusion-Schwachstelle ausnutzen
  • Warum das Zulassen der Einbindung entfernter Dateien gefährlich ist
  • Techniken, die dieses Problem beheben können.

Wie nutzen Angreifer die Remote File Inclusion aus?

Die Sicherheitsanfälligkeit durch Remote-Dateieinbindung nutzt den Befehl oder Mechanismus "Dynamic File Include" aus, der in den meisten Programmier-Frameworks vorhanden ist. Diese Fähigkeit soll es Entwicklern ermöglichen, Dateien, die sich auf einem sekundären Server befinden, zur Ausführung von Aktivitäten auf dem Anwendungsserver zu verwenden. Natürlich kann dies in den falschen Händen gefährlich sein.

Angreifer nutzen diese Fähigkeit aus, indem sie eine beliebige Website oder Anwendung finden, die unkontrollierte Benutzereingaben zulässt, die z. B. aus HTTP-Headern oder Eingabebereichen in interaktiven Formularen stammen können. Sie verwenden dies als Ausgangspunkt, um Datei-Include-Befehle zu generieren.

Wenn eine Website beispielsweise die GET-Funktion zum Laden von Seiten verwendet, z. B. page = request.getParameter("page'); include page; dann könnte ein Angreifer eine Abfrage mit dem page-Befehl senden, jedoch mit der URL einer von ihm kontrollierten Website und dem Dateipfad zu der Datei, die er ausführen möchte. Die Abfrage wird dann an den Server weitergeleitet und die Remote-Datei wird auf dem Host ausgeführt. Die Aktivität ist erlaubt, da sie nun Teil der vertrauenswürdigen App ist.

Warum ist die Sicherheitslücke "Remote File Inclusion" so gefährlich?

Der Grad der Gefahr, die von Remote File Inclusion ausgeht, ist extrem hoch. Anders als bei lokalen Dateieinbindungs-Schwachstellen, bei denen Dateien, die ein Angreifer ausführt, auf einem Host vorhanden sein müssen und vom Angreifer auch durch Ausprobieren gefunden werden müssen, gibt es bei der entfernten Dateieinbindung keine derartigen Einschränkungen. Natürlich kennt ein Angreifer den Speicherort der Dateien, die er ausnutzen möchte, da sie wahrscheinlich auf seinen eigenen Rechnern oder auf von ihm kontrollierten Websites vorhanden sind. Die Dateien können auch von ihnen selbst ausgewählt werden und müssen vor dem Exploit nicht auf dem Zielcomputer vorhanden sein. Die Datei kann sogar aus Skripten bestehen, die speziell für die Ausnutzung eines entfernten Hosts geschrieben wurden.

Kurz gesagt: Sobald ein Angreifer in der Lage ist, eine Remote File Inclusion-Schwachstelle zu finden und auszunutzen, gibt es nichts, was ihn daran hindert, die vollständige Kontrolle über eine Anwendung oder sogar eine ganze Website zu erlangen. Sicherlich werden keine dort gespeicherten Daten vor ihrem Eindringen sicher sein.

Beseitigung der Sicherheitsanfälligkeit "Remote File Inclusion

Lassen Sie niemals zu, dass Benutzereingaben direkt an einen Datei-Einbindungsbefehl zur Ausführung übergeben werden. Verwenden Sie stattdessen eine indirekte Referenz-Map von Befehlen und führen Sie Befehle nur von dort aus. Eine indirekte Referenz-Map ordnet nicht vertrauenswürdige Benutzereingaben einem Satz von fest kodierten vertrauenswürdigen Werten auf dem Server zu. Stellen Sie sicher, dass Sie alle Bereiche, in denen Benutzer Daten eingeben können, auf eine Whitelist setzen, und vergessen Sie nicht, HTTP-Header, Formularparameter und sogar Cookies in diese Liste aufzunehmen. Dadurch wird jedes Fenster geschlossen, das ein Angreifer zum Erstellen eines Datei-Include-Befehls nutzen kann.

Als Bonus wird die korrekte Bereinigung und Validierung von benutzergenerierten Inhalten und die Verwendung von Referenzkarten zur Ausführung von Befehlen nicht nur die entfernte Dateieinschluss-Schwachstelle beseitigen, sondern auch einige andere, einschließlich des gefährlichen Cousins dieses Fehlers, des lokalen Dateieinschluss- und Pfadüberquerungs-Exploits.

Weitere Informationen über Remote File Inclusion

Als weitere Lektüre können Sie einen Blick auf den OWASP-Referenzleitfaden für Remote File Inclusion 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 - Remote File Inclusion

Veröffentlicht am 18. Jul. 2019
Von Jaap Karan Singh

Denjenigen, die diese Blogserie lesen, werden viele Ähnlichkeiten zwischen der Sicherheitsanfälligkeit für die entfernte Dateieinbindung und der zuvor besprochenen Sicherheitsanfälligkeit für die lokale Dateieinbindung und Pfadüberwindung auffallen. Ihre Ursachen sind ähnlich, ebenso wie die empfohlenen Korrekturen.

In vielerlei Hinsicht ist die Sicherheitslücke bei der Einbindung entfernter Dateien viel gefährlicher und auch leichter auszunutzen als ihr Gegenstück bei lokalen Dateien. Als solche sollte sie so schnell wie möglich gefunden und behoben werden. Oder besser noch, Webanwendungen sollten so gestaltet werden, dass sie gar nicht erst auftreten.

In dieser Folge lernen wir:

  • Wie Hacker die Remote File Inclusion-Schwachstelle ausnutzen
  • Warum das Zulassen der Einbindung entfernter Dateien gefährlich ist
  • Techniken, die dieses Problem beheben können.

Wie nutzen Angreifer die Remote File Inclusion aus?

Die Sicherheitsanfälligkeit durch Remote-Dateieinbindung nutzt den Befehl oder Mechanismus "Dynamic File Include" aus, der in den meisten Programmier-Frameworks vorhanden ist. Diese Fähigkeit soll es Entwicklern ermöglichen, Dateien, die sich auf einem sekundären Server befinden, zur Ausführung von Aktivitäten auf dem Anwendungsserver zu verwenden. Natürlich kann dies in den falschen Händen gefährlich sein.

Angreifer nutzen diese Fähigkeit aus, indem sie eine beliebige Website oder Anwendung finden, die unkontrollierte Benutzereingaben zulässt, die z. B. aus HTTP-Headern oder Eingabebereichen in interaktiven Formularen stammen können. Sie verwenden dies als Ausgangspunkt, um Datei-Include-Befehle zu generieren.

Wenn eine Website beispielsweise die GET-Funktion zum Laden von Seiten verwendet, z. B. page = request.getParameter("page'); include page; dann könnte ein Angreifer eine Abfrage mit dem page-Befehl senden, jedoch mit der URL einer von ihm kontrollierten Website und dem Dateipfad zu der Datei, die er ausführen möchte. Die Abfrage wird dann an den Server weitergeleitet und die Remote-Datei wird auf dem Host ausgeführt. Die Aktivität ist erlaubt, da sie nun Teil der vertrauenswürdigen App ist.

Warum ist die Sicherheitslücke "Remote File Inclusion" so gefährlich?

Der Grad der Gefahr, die von Remote File Inclusion ausgeht, ist extrem hoch. Anders als bei lokalen Dateieinbindungs-Schwachstellen, bei denen Dateien, die ein Angreifer ausführt, auf einem Host vorhanden sein müssen und vom Angreifer auch durch Ausprobieren gefunden werden müssen, gibt es bei der entfernten Dateieinbindung keine derartigen Einschränkungen. Natürlich kennt ein Angreifer den Speicherort der Dateien, die er ausnutzen möchte, da sie wahrscheinlich auf seinen eigenen Rechnern oder auf von ihm kontrollierten Websites vorhanden sind. Die Dateien können auch von ihnen selbst ausgewählt werden und müssen vor dem Exploit nicht auf dem Zielcomputer vorhanden sein. Die Datei kann sogar aus Skripten bestehen, die speziell für die Ausnutzung eines entfernten Hosts geschrieben wurden.

Kurz gesagt: Sobald ein Angreifer in der Lage ist, eine Remote File Inclusion-Schwachstelle zu finden und auszunutzen, gibt es nichts, was ihn daran hindert, die vollständige Kontrolle über eine Anwendung oder sogar eine ganze Website zu erlangen. Sicherlich werden keine dort gespeicherten Daten vor ihrem Eindringen sicher sein.

Beseitigung der Sicherheitsanfälligkeit "Remote File Inclusion

Lassen Sie niemals zu, dass Benutzereingaben direkt an einen Datei-Einbindungsbefehl zur Ausführung übergeben werden. Verwenden Sie stattdessen eine indirekte Referenz-Map von Befehlen und führen Sie Befehle nur von dort aus. Eine indirekte Referenz-Map ordnet nicht vertrauenswürdige Benutzereingaben einem Satz von fest kodierten vertrauenswürdigen Werten auf dem Server zu. Stellen Sie sicher, dass Sie alle Bereiche, in denen Benutzer Daten eingeben können, auf eine Whitelist setzen, und vergessen Sie nicht, HTTP-Header, Formularparameter und sogar Cookies in diese Liste aufzunehmen. Dadurch wird jedes Fenster geschlossen, das ein Angreifer zum Erstellen eines Datei-Include-Befehls nutzen kann.

Als Bonus wird die korrekte Bereinigung und Validierung von benutzergenerierten Inhalten und die Verwendung von Referenzkarten zur Ausführung von Befehlen nicht nur die entfernte Dateieinschluss-Schwachstelle beseitigen, sondern auch einige andere, einschließlich des gefährlichen Cousins dieses Fehlers, des lokalen Dateieinschluss- und Pfadüberquerungs-Exploits.

Weitere Informationen über Remote File Inclusion

Als weitere Lektüre können Sie einen Blick auf den OWASP-Referenzleitfaden für Remote File Inclusion 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.

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