Was ist ein Dateieinschlussangriff?
Veröffentlicht: 2023-03-31Jedes Tool kann mit guten oder schlechten Absichten verwendet werden, und die Aufnahme von Dateien ist nicht anders. Das Einschließen von Dateien ist eine Programmiermethode, die es einfacher macht, Code zu verwalten und Funktionen auf einer Website zu erweitern. Ein File-Inclusion-Angriff missbraucht die Art und Weise, wie PHP die File-Inclusion als gültige Methode zum Vereinigen und Ausführen von Code aus vielen separaten Dateien verwendet, um eine einzelne Webseite zu erstellen. Da PHP eine Sprache ist, die WordPress verwendet, sind WordPress und andere PHP-Anwendungen anfällig für Sicherheitslücken beim Einschließen von Dateien, wenn geeignete Sicherheitsmaßnahmen fehlerhaft, unvollständig oder nicht vorhanden sind.
In diesem vollständigen Leitfaden zu Dateieinschlussangriffen werden wir untersuchen, wie Hacker die schlechte Bereinigung und Validierung von Benutzereingaben ausnutzen, um Malware einzuschleusen und schlechte Anweisungen zum Eindringen in WordPress-Sites zu senden.
Sie erfahren, wie Dateieinschlussangriffe in WordPress ablaufen und was Sie tun können, um Ihre Website davor zu schützen, Opfer dieser Angriffe zu werden.
Was ist Dateieinschluss?
Das Einschließen von Dateien ist eine Entwicklungstechnik zum Einfügen vieler Dateien in ein Skript oder eine Webseite, um Funktionen hinzuzufügen, eine Designvorlage wiederzuverwenden oder einen Teil des Inhalts auf mehreren Seiten zu teilen.
Dateieinbindungen sind unbedingt erforderlich. Entwickler verwenden sie üblicherweise für die folgenden Zwecke:
- Einschließen von Header- und Footer-Dateien, die allen Seiten einer Website gemeinsam sind, um Konsistenz in Design und Funktion zu gewährleisten.
- Einschließlich Skripts und Bibliotheken für Schlüsselfunktionen in einer Website oder Webanwendung.
- Einschließlich Konfigurationsdateien mit Einstellungen für die Anwendung, z. B. Datenbankverbindungsinformationen und API-Schlüssel.
- Einschließen von Inhalten wie Bildern, Videos, Text oder anderen Inhalten auf Webseiten.
- Enthält Funktionen zum Generieren dynamischer Inhalte basierend auf Benutzereingaben, die als URL-Parameter übergeben werden. Beispielsweise kann ein Benutzer ein Formular senden, um eine bestimmte Ausgabe zu generieren.
Arten der Dateiaufnahme
Mithilfe der File-Inclusion-Technik können Entwickler Dateien und Skripte entweder statisch oder dynamisch zu einer Webseite hinzufügen.
Mithilfe der statischen Dateieinbindung kann ein Entwickler denselben Text oder Code auf mehreren Seiten wiederverwenden, indem er auf einen URL (Uniform Resource Locator) oder einen Pfad zu einer lokal, dh auf demselben Server, gespeicherten Datei verweist. Statische Dateieinschlüsse ermöglichen es Designs, auf vielen Webseiten denselben Kopf-, Fußzeilen- oder Navigationsmenücode zu verwenden.
Dynamische Dateieinschlüsse akzeptieren Benutzereingaben zur Laufzeit. Der Benutzer gibt die gewünschte Ausgabe an, indem er den Pfad zu einer bestimmten Datei übergibt. Normalerweise wird die Benutzereingabe als Parameter in einer URL oder einer Formularübermittlung übergeben. Beispielsweise kann ein Benutzer „Englisch“ aus einer Dropdown-Auswahlliste mit Sprachen auswählen, was ihn zu einer englischsprachigen Version der Seite führt, auf der er sich befindet, indem er die URL wie folgt ändert: /page.php?language=english
. Wenn jemand „ english
“ durch die URL einer entfernten Datei ersetzt, kann er möglicherweise eine Web-Shell als Hintertür und/oder andere Malware in die Zielseite einschleusen, wenn keine Überprüfungen vorhanden sind, um dies zu verhindern.
Wie wird die Dateieinbindung in WordPress implementiert?
Alle in PHP geschriebenen dynamischen Webanwendungen – wie WordPress – können die Dateieinbindung sicher verwenden. In Anwendungen, die in PHP geschrieben sind, führen Entwickler die Dateieinbindung durch die Verwendung der include
und require
Anweisungen durch. Entwickler verwenden beide Anweisungen, um den Inhalt eines PHP-Skripts in ein anderes einzufügen. Dies geschieht, bevor der Code auf dem Server ausgeführt wird.
Wenn Sie sich einige der WordPress-Kerndateien ansehen, verweisen viele von ihnen auf andere Kernskripte. Wenn sie alle zusammen geladen werden, bilden sie die Struktur Ihrer Website und generieren die einzelnen Webseiten, die von einem Besucher angefordert werden. Die Hauptdatei index.php
verweist auf wp-blog-header.php
, die die WordPress-Umgebung und die Designvorlage lädt – wp-load.php
bzw. template-loader.php
.
Neben dem WordPress-Kern verwenden Plugins und Themes auch die Dateieinbindung, um notwendige Aufgaben auszuführen. Da jedoch Zehntausende von WordPress-Plugins verfügbar sind, sind nicht alle so gut getestet wie der WordPress-Kern.
Dateieinschlüsse führen zu ernsthaften Sicherheitsrisiken, wenn Entwickler sie nicht richtig sichern. Wenn der von Ihnen verwendete Code Benutzereingaben nicht validiert und bereinigt, können Hacker ihn ausnutzen. Sie können damit Malware installieren und vertrauliche Informationen stehlen – möglicherweise Ihre oder die Ihrer Kunden!
Was ist ein Dateieinschlussangriff?
Zwei Arten von File-Inclusion-Angriffen sind möglich: Local File Inclusion (LFI) oder Remote File Inclusion (RFI).
File-Inclusion-Angriffe gehören zur breiteren Klasse von Injection- Angriffen. Dazu gehören SQL-Injections (SQLi), Cross-Site-Scripting (XSS) und Command-Inclusion-Angriffe. Hacker können Eingabeschwachstellen ausnutzen, um andere Arten von Angriffen durchzuführen, wie z. B. Pufferüberlaufangriffe.
Lokale und Remote-File-Inclusion-Angriffe
Websites und Webanwendungen, die auf dynamische Dateieinschlüsse angewiesen sind, um bestimmte Funktionen zu aktivieren, können sowohl Remote-Dateieinschlussangriffen als auch lokalen Dateieinschlussangriffen ausgesetzt sein.
Lokale Dateieinschlüsse (LFI)
Ein lokaler Dateieinschlussangriff kann eine Datei einschleusen, die sich auf demselben Server wie die angegriffene Website oder Webanwendung befindet. LFI-Angriffe können oft Zugriff auf normalerweise eingeschränkte Dateien erlangen. Bei einem LFI-Angriff muss die eingeschlossene Datei bereits auf dem lokalen Anwendungsserver vorhanden sein, der angegriffen wird. Bei einem LFI-Angriff kann ein Angreifer wichtige Dateien lesen, auf vertraulichere Informationen zugreifen oder willkürliche Befehle ausführen.
Lokale Dateieinschlussangriffe können es jemandem auch ermöglichen, auf vertrauliche Daten außerhalb der Zielwebsite zuzugreifen. Dazu gehören Serverkonfigurationsdateien wie /etc/passwd
oder die Konfigurationsdateien einer anderen Website wie wp-config.php
. Es ist jedoch wichtig zu beachten, dass die Zieldateien für nicht privilegierte Benutzer lesbar sein müssen – zum Beispiel gehört die /etc/passwd
-Datei auf Linux-Systemen root, aber mit ihren Dateiberechtigungen auf 644 allen anderen Systembenutzern kann es ansehen.
Um durch das Dateisystem zu navigieren, verwenden Angreifer Directory Traversal, eine Technik, um auf Dateien außerhalb des aktuellen Arbeitsverzeichnisses zuzugreifen, indem sie Verzeichnispfad-Traversalsequenzen wie ../../../
manipulieren.
Remote File Inclusions (RFI)
Remote File Inclusion-Angriffe zielen auf Websites und Anwendungen ab, die Dateien aufrufen, die auf einem anderen Server gehostet werden. Durch das Ausnutzen von Remote File Inclusion kann ein Angreifer auf bösartigen Code zurückgreifen, der an anderer Stelle gehostet wird. Auf dem Zielserver muss eine Schwachstelle vorhanden sein, aber der Angreifer wird sie verwenden, um an anderer Stelle gehosteten bösartigen Code auszuführen.
Bei Remote File Inclusion-Angriffen machen sich Hacker den „Dynamic File Include“-Befehl in Webanwendungen zunutze. Hacker können Webanwendungen ausnutzen, die Benutzereingaben wie URLs und Parameterwerte akzeptieren, und sie ohne ordnungsgemäße Bereinigung an die „File Include“-Mechanismen weitergeben. Bei dieser Art von Schwachstelle können Angreifer die Webanwendung ausnutzen, um Remote-Dateien mit schädlichen Skripts einzuschließen.
Warum treten WordPress File Inclusion-Angriffe auf?
WordPress-Sites machen 43 % des Internets aus, daher sind sie ein großes Ziel für Angreifer. Unser WordPress Vulnerability Annual Report 2022 zeigt, dass über 90 % aller im letzten Jahr entdeckten WordPress-Schwachstellen in Plugins und Themes aufgetreten sind. Normalerweise haben wir wöchentlich mindestens eine neue Sicherheitslücke in 20 bis 50 Plugins gemeldet.
Kürzlich entdeckten Sicherheitsforscher eine Schwachstelle bei der Dateieinbindung im beliebten OceanWP-Theme. OceanWP hat über eine halbe Million aktive Benutzer. (Wir haben dies in unserem wöchentlichen WordPress-Schwachstellenbericht gemeldet.) Obwohl OceanWP die Schwachstelle schnell gepatcht hat, hatten Hacker Zeit, sie auszunutzen, während Millionen von WordPress-Sites immer noch den veralteten Code verwendeten.
So erkennen Sie einen WordPress File Inclusion-Angriff
Im Gegensatz zu Denial-of-Service-Angriffen, die Ihre Website erheblich verlangsamen können, oder böswilligen Weiterleitungen, die Personen von Ihrer Website zu betrügerischen Ressourcen vertreiben, sind Dateieinschlussangriffe schwer zu erkennen. Der Grund dafür ist einfach. Hacker nutzen die Dateieinbindung als Einstiegspunkt, um Malware hochzuladen und weitere Angriffe durchzuführen. Die Dateiaufnahme ist ein ruhiger Weg zum sichtbareren Schaden. Wenn also ein Hacker schädlichen Code in eine Website einschleust oder auf vertrauliche Informationen zugreift, besteht eine große Chance, dass Sie es kaum bemerken.
Dies bringt uns zu einer wichtigen Schlussfolgerung. Die Sicherheit von Websites sollte damit beginnen, die Angriffsfläche klein zu halten und zu härten. Dadurch wird verhindert, dass Hacker Eingabeschwachstellen ausnutzen, von denen Injection-Angriffe ausgehen, z. B. Dateieinschlussangriffe, SQL- und Befehlsinjektionen sowie Cross-Site-Scripting (XSS).
Wie verteidige ich mich gegen WordPress File Inclusion-Angriffe?
Angesichts der wachsenden Zahl von Cyberangriffen auf WordPress ist die Sicherheit von WordPress-Websites wichtiger denn je. Die Abwehr von WordPress-Dateieinschlussangriffen erfordert einen facettenreichen Ansatz, der die Möglichkeit der Ausnutzung von Eingabeschwachstellen und der Ausführung willkürlichen Codes einschränkt. Sie können dies erreichen, indem Sie eine Kombination aus proaktiven und reaktiven Sicherheitsmaßnahmen ergreifen.
Hier sind die drei wichtigsten WordPress-Sicherheitsempfehlungen zum Schutz Ihrer Website vor Dateieinschlussangriffen.
Halten Sie die gesamte Software auf dem neuesten Stand
Die Aktualisierung Ihrer gesamten Software – einschließlich des WordPress-Kerns, der Themes, Plugins und Erweiterungen – ist entscheidend, wenn es darum geht, die Angriffsfläche Ihrer Website zu reduzieren. Da jeden Tag neue Schwachstellen auftauchen, geben Sie Hackern keine Chance, diese auszunutzen. Installieren Sie Sicherheitspatches und führen Sie Updates durch, sobald diese verfügbar sind.
Machen Sie es sich zur Gewohnheit, regelmäßige Updates selbst vorzunehmen oder aktivieren Sie automatische Updates, um sicherzustellen, dass auf Ihrer Website niemals anfälliger Code ausgeführt wird. iThemes Security Pro kann sich für Sie um WordPress-Core-, Plugin- und Theme-Updates kümmern.
iThemes Security Pro sucht automatisch nach neuen Versionen der Software, die Ihre Website verwendet. Das Versionsverwaltungssystem stellt sicher, dass Sie alle Sicherheitspatches und Updates installiert haben, sobald sie verfügbar sind. Darüber hinaus werden Sie von iThemes benachrichtigt, wenn Sie veraltete Software in Ihrer Serverinfrastruktur ausführen. Wenn Sie beispielsweise eine PHP-Version verwenden, deren End-of-Life-Datum abgelaufen ist, oder einen anfälligen MySQL-Server verwenden, werden Sie von iThemes Pro gewarnt.
Wenn Sie mehrere WordPress-Sites unter Ihrer Kontrolle haben, bietet Ihnen iThemes Sync Pro eine einzige Oberfläche, um sie alle zu verwalten. Sync bietet auch erweiterte Verfügbarkeitsüberwachung und SEO-Feedback.
Deaktivieren Sie die Remote-Dateieinbindung in PHP
Es ist für eine Website möglich, entfernte Dateien von einer externen URL zu referenzieren, wenn die Option allow_url_fopen
in der PHP-Umgebung aktiviert ist. Dies kann das Risiko von Remote File Inclusion-Angriffen erhöhen. Das Deaktivieren allow_url_fopen
eliminiert effektiv die Möglichkeit, dass jemand bösartigen Code ausführt, der von einem entfernten Standort auf Ihrer WordPress-Website geladen wird.
Sie können allow_url_fopen
in der globalen PHP-Konfiguration deaktivieren oder indem Sie allow_url_fopen
in einer lokalen .user.ini
oder php.ini
-Datei, die für einen einzelnen Webordner erstellt wurde, auf 0
setzen. Sie können überprüfen, ob die Option in Ihrer PHP-Umgebung deaktiviert ist, indem Sie eine einfache PHP-Informationsseite mit der Funktion phpinfo()
erstellen, wie unten gezeigt.
Implementieren Sie WordPress-Sicherheitsheader
HTTP-Antwort-Header wie Content Security Policy (CSP) und Set-Cookie können Ihrer WordPress-Website eine Verteidigungsebene gegen Dateieinschluss und andere Injektionsangriffe hinzufügen.
WordPress-Sicherheitsheader ermöglichen es, die Vektoren zu reduzieren oder zu blockieren, durch die Remote File Inclusion und Cross-Site-Scripting (XSS)-Angriffe auftreten können, indem eine Liste vertrauenswürdiger Quellen, Skripte und anderer Inhalte erstellt wird, die geladen werden können. Alle anderen Quellen werden abgelehnt. Darüber hinaus können HTTP-Antwort-Header Ihnen dabei helfen, Schutz vor Cross-Site Request Forgery (CSRF) und Clickjacking hinzuzufügen.
Schützen Sie Ihre WordPress-Site mit iThemes Security Pro vor Injection-Angriffen
Zusammen mit SQL- und Befehlsinjektionen sind File-Inclusion-Angriffe die häufigsten Angriffsvektoren, die auf die Sicherheit von WordPress-Sites abzielen. Obwohl WordPress ein hohes Maß an Anwendungssicherheit beweist, können stark angepasste Websites in Kombination mit schlechten Sicherheitspraktiken eine WordPress-Website Injection-Angriffen aussetzen, die Eingabeschwachstellen ausnutzen.
Jeden Tag werden neue Schwachstellen in der wachsenden Population von WordPress-Plugins und -Themes gefunden. Und obwohl sie normalerweise schnell gepatcht werden, kann ein Mangel an rechtzeitigen Updates und die Abhängigkeit von alter Software Ihre WordPress-Website zu einem einfachen Ziel für Hacker machen. Heutzutage ist die Sicherheit von Websites wichtiger denn je. Die zunehmende Zahl von Cyberangriffen bedeutet, dass selbst die wachsamsten Website-Besitzer Opfer von Hackern werden können, wenn sie nicht proaktive Maßnahmen ergreifen, um ihre Websites zu schützen.
iThemes Security Pro ist eine leistungsstarke WordPress-Sicherheitslösung, mit der Sie die besten WordPress-Sicherheitspraktiken anwenden können, um Ihre Website vor den raffiniertesten Cyberangriffen zu schützen. Mit fortschrittlicher Dateiintegritätsüberwachung, Schwachstellen-Scanning und automatischer Angriffsminderung ist iThemes Security Pro eine ausgezeichnete Wahl, wenn Sie nach einer effektiven und zuverlässigen Möglichkeit suchen, Ihre WordPress-Site zu schützen.
Das beste WordPress-Sicherheits-Plugin zum Sichern und Schützen von WordPress
WordPress betreibt derzeit über 40 % aller Websites, sodass es zu einem leichten Ziel für Hacker mit böswilligen Absichten geworden ist. Das iThemes Security Pro-Plug-in beseitigt das Rätselraten bei der WordPress-Sicherheit, um es einfach zu machen, Ihre WordPress-Website zu sichern und zu schützen. Es ist, als hätten Sie einen Vollzeit-Sicherheitsexperten im Team, der Ihre WordPress-Site ständig für Sie überwacht und schützt.
Kiki hat einen Bachelor-Abschluss in Information Systems Management und mehr als zwei Jahre Erfahrung mit Linux und WordPress. Derzeit arbeitet sie als Sicherheitsspezialistin für Liquid Web und Nexcess. Davor war Kiki Teil des Liquid Web Managed Hosting-Supportteams, wo sie Hunderten von WordPress-Websitebesitzern half und lernte, auf welche technischen Probleme sie häufig stoßen. Ihre Leidenschaft für das Schreiben ermöglicht es ihr, ihr Wissen und ihre Erfahrung zu teilen, um Menschen zu helfen. Abgesehen von der Technik lernt Kiki gerne etwas über den Weltraum und hört sich True-Crime-Podcasts an.