Was sind Local File Intrusion (LFI)-Angriffe und sollten Sie sich Sorgen machen?
Webserver hosten die Dateien (Webseiten, Bilder, Videos, Formulare usw.), aus denen Ihre Webanwendung besteht, und stellen diese Dateien bereit, wenn jemand Ihre Website besucht. Einige Server sind fortschrittlicher und steuern auch, wie viel Zugriff Webbesucher haben. Sie können regelmäßige Besucher daran hindern, auf die Konten oder administrativen Dashboards anderer Benutzer zuzugreifen. Obwohl Webserver bei dem, was sie tun, effizient sind – und sie tun es ziemlich sicher –, können Angreifer Fehler ausnutzen, die auf menschliches Versagen oder fehlerhafte Logik bei der Bereitstellung der von ihm gehosteten Dateien durch einen Server zurückzuführen sind.
Was ist ein LFI-Angriff?
Ein Local File Intrusion (LFI)-Angriff tritt auf, wenn Angreifer Schwachstellen ausnutzen, wie ein Webserver den Zugriff auf seine Dateien speichert, bedient, validiert oder kontrolliert. Diese Schwachstelle tritt häufig bei PHP-basierten Websites auf.
Im Gegensatz zu vielen Formen von Cyberangriffen, bei denen sich Angreifer auf Malware verlassen, um eine Anwendung zu beschädigen, verlassen sich Angreifer in LFIs meist auf clevere Tricks und kurze Codezeilen. Dies erfordert selten ausgefeilte Tools oder komplexe Skripte; Angriffe finden normalerweise im Webbrowser statt. Der häufigste Trick, den Angreifer verwenden, besteht darin, die URL-Zeichenfolge mit Code, Dateipfaden oder Dateinamen zu modifizieren.
Wie passieren LFI-Angriffe?
LFI-Angriffe erfolgen normalerweise in vier Phasen.
Zunächst identifiziert der Angreifer eine PHP-Website, auf der eine anfällige Webanwendung ausgeführt wird, normalerweise durch Ausführen eines einfachen Codes in der Browser-URL, um zu sehen, ob die Webanwendung (dh die Website) den Befehl verarbeitet. Stellen Sie sich das so vor, als würden Sie Tastenkombinationen auf Ihrem Gamecontroller drücken, um ein Osterei freizuschalten – sagen Sie zum Beispiel, die Abwärtstaste zu drücken, um Tunnel in Super Mario zu betreten. Aber die Befehle, die Angreifer bei LFI-Angriffen ausführen, sind konsistenter, als jeden Tunnel in Super Mario zu überprüfen.
Eine Webanwendung oder ein Server, der falsch konfiguriert wurde oder Eingaben nicht validiert, führt den bösartigen Code aus. Von hier aus kann der Hacker den Zugriff und die Berechtigungen erhalten, die er benötigt, um anfällige Dateien zu lesen oder bösartige Dateien auf den Server hochzuladen.
Die meisten LFI-Angriffe führen dazu, dass der Angreifer auf vertrauliche Informationen zugreift. Die Möglichkeit, Malware hochzuladen, ist selten erfolgreich, da nicht garantiert ist, dass die Webanwendung die Datei auf demselben Server speichert, auf dem die LFI-Schwachstelle existiert. Dies ist häufig der Fall, wenn sich die Webanwendung in einer Umgebung mit mehreren Servern befindet.
Wenn also die LFI-Schwachstelle auf dem Server existiert, der Bilder hostet, aber nicht auf dem Server, auf dem Mitarbeiteranmeldeinformationen oder Benutzerpasswörter gespeichert sind, hätte der Angreifer nur Zugriff auf Bilddateien auf diesem anfälligen Server. Unabhängig davon zeigen Cyber-Ereignisse wie der Angriff auf LastPass, dass Hacker mit scheinbar unbedeutendsten Zugriffsebenen Chaos anrichten können.
So verhindern Sie LFI-Angriffe
Laut dem Open Web Application Security Project (OWASP) sind LFI-Angriffe weit verbreitet . Verständlicherweise würden Hacker diesen Angriff bevorzugen, da, wie W3Techs berichtet, fast acht von zehn Websites PHP als serverseitige Programmiersprache verwenden – sozusagen eine Fülle von Opfern. Es ist möglich, einen LFI-Angriff zu verhindern, indem Sie Best Practices für die Websicherheit anwenden.
Öffentliche Serverdateien auf Whitelist setzen
Webanwendungen verwenden häufig Dateipfade als URL-Eingaben. Hacker können dieses Dateisystem ausnutzen, indem sie den Teil der URL ändern, der gleichzeitig als Dateipfad dient. Beispielsweise kann ein Angreifer https://dummywebsite.com/?module=contact.php in https://dummywebsite.com/?module=/etc/passwd ändern. Ein verwundbarer Server mit schlechter Filterung und fehlerhafter Logik zeigt den Inhalt der Datei an, die im Pfad /etc/passwd gespeichert ist.
Natürlich verwenden Hacker Variationen gängiger Dateinamen und Kombinationen von Abfragezeichen, um die Wahrscheinlichkeit eines erfolgreichen Angriffs zu erhöhen. Ziel ist es, die Webanwendung dazu zu bringen, ein Skript auszuführen oder die Dateien auf einem Webserver anzuzeigen.
Sie können diese Schwachstelle blockieren, indem Sie eine Whitelist öffentlicher Dokumente auf Ihrem Server erstellen und die Webanwendung anweisen, Abfragen für alle anderen Dokument- oder Dateipfade zu ignorieren. Wenn also ein Angreifer versucht, die URL zu manipulieren, um Codes anzufordern oder auszuführen, die einen privaten anfordern, erhält er stattdessen eine Fehlerseite.
Testen Sie häufig auf Schwachstellen
Sie können Web-Scanning-Tools verwenden , um Schwachstellen zu finden und zu beheben, die Sie LFI-Angriffen aussetzen könnten. Web-App-Scanner sind automatisierte Tools, die Ihre App wie ein Angreifer durchsuchen und Sie vor potenziellen Schwachstellen warnen. Es gibt mehrere Open-Source-Webscanner wie OpenVAS und Wireshark, aber die meisten Schwachstellenscanner sind proprietäre Software und erfordern kostenpflichtige Tarife.
Aber natürlich erhalten Sie einen Webscanner nicht nur für LFI-Angriffe. Diese Tools suchen auch nach breiteren Sicherheitslücken wie Remote File Inclusion, Cross-Site Scripting, SQL Injection und schlechte Serverkonfigurationen. Sie sind es also wert.
Beschränken Sie die Privilegien für Website-Besucher
Hacker führen LFI-Angriffe oft erfolgreich aus, weil Webanwendungen die Benutzerrechte nicht aufteilen und Besuchern dadurch den Zugriff auf Dateien ermöglichen, die nur für Administratoren sichtbar sein sollten. Diese Maßnahme funktioniert wie Whitelisting: Konfigurieren Sie Ihre Webanwendung und Ihren Server so, dass sie öffentliche Dateien bereitstellen und unbefugte Anfragen ignorieren, wenn ein Besucher mit der Webanwendung interagiert. Dies ist besonders wichtig für Abfragen auf Dateipfade, die sensible Dateien enthalten.
Zu diesem Zweck müssen Sie möglicherweise verhindern, dass Dateipfade direkt geändert werden. Die Web-App sollte nur Dokumente aus einer fest codierten Pfadliste bereitstellen. Konfigurieren Sie außerdem die Web-App so, dass Anfragen mit dynamischer Pfadverkettung (die URLs sollten alphanumerische Zeichen enthalten) anstelle von base64- oder bin2hex-Funktionen verarbeitet werden.
Wenn Sie daran denken, Dateinamen auf die schwarze Liste zu setzen, tun Sie es nicht. Hacker haben normalerweise eine wachsende Liste von Dateinamen, die sie verwenden können, um einen LFI-Angriff auszuführen. Außerdem ist es praktisch unmöglich (und eine kolossale Zeitverschwendung), eine Liste ständig wachsender Angriffsquellen auf die schwarze Liste zu setzen.
Verwenden Sie eine Umgebung mit mehreren Servern
In einer Umgebung mit mehreren Servern können Sie wichtige, vertrauliche Dokumente von öffentlichen Dateien isolieren und so Ihr Risiko im Falle eines Verstoßes verringern. Dedizierte Server sind weniger anfällig für LFI-Angriffe, da sie zwar zusammenarbeiten, sich aber in ihrer Konfiguration unterscheiden.
Neben dieser Sicherheit sind mehrere Server auch zuverlässig (mit geringerem Ausfallrisiko), schnell und effizient. Zugegeben, die Verwendung einer Multi-Server-Umgebung ist nicht wirtschaftlich, wenn Ihre Website klein ist. Ziehen Sie in diesem Fall in Betracht, den Datenzugriff Ihrer Webanwendung zwischen einer Datenbank für private Daten und einem Server für öffentliche Dateien aufzuteilen.
Sollten Sie sich über LFI-Angriffe Sorgen machen?
Die Möglichkeit eines LFI-Angriffs besteht, insbesondere wenn Ihre Website auf PHP läuft, aber Sie können Ihr Risiko verringern, indem Sie Webanwendungen und Server gemäß den Best Practices für die Websicherheit konfigurieren.
Darüber hinaus sollten Sie erwägen, routinemäßige Sicherheitsüberprüfungen durchzuführen, um Schwachstellen zu finden. Dinge brechen ständig, besonders wenn die Site-Architektur komplex wird. Die Tools, die Sie benötigen, um sich zu schützen, sind automatisiert, und viele erfordern keine aufwändige Einrichtung oder fortgeschrittenes technisches Know-how.
Schreibe einen Kommentar