Offengelegte Backup- und nicht referenzierte Dateien und wie man sie findet

Veröffentlicht: 2021-08-24

Die Sicherheit Ihres WordPress erfordert einen kontinuierlichen Prozess des Testens, Härtens, Überwachens und Verbesserns. Es gibt mehrere Dinge, um die sich WordPress-Administratoren kümmern können, um sicherzustellen, dass ihre Websites sicher sind. Von der Sicherstellung, dass Passwörter bestimmte Kriterien erfüllen, bis hin zur Härtung von PHP können diese Prozesse einen großen Beitrag dazu leisten, dass Sie ein straffes, sauberes Schiff führen. Eine Sache, die gerne übersehen wird, sind exponierte Backups und nicht referenzierte Dateien. Diese Dateien können ein Sicherheitsrisiko darstellen, das durch Befolgen von Best Practices leicht verwaltet werden kann.

WordPress verwendet Verzeichnisse, um Informationen zu organisieren. Alle Seiten und Medien befinden sich innerhalb dieser Struktur. In einer typischen Installation würde diese Struktur in etwa so aussehen wie var/www/html/wordpress/wp-content.

Webserver, einschließlich Server, auf denen WordPress-Websites gehostet werden, sind normalerweise so konfiguriert, dass sie Clients alle Dateien bereitstellen, die sich in einem bestimmten Verzeichnis befinden. Es gibt ein paar Ausnahmen, wie z. B. PHP-Dateien; Wenn jedoch ein Administrator den Zugriff nicht ausdrücklich blockiert hat, besteht die Möglichkeit, dass der Webserver dem nachkommt, wenn ein Client dies anfordert.

Im Allgemeinen ist dies eine gute Sache, und Sie möchten dies tun, da dem Besucher auf diese Weise Dateien bereitgestellt werden, die für Ihre Webseiten relevant sind, z. B. CSS-Dateien, JS-Dateien und Bilder. Dieses Verhalten bedeutet jedoch auch, dass Sie unwissentlich Dateien bereitstellen können, die Sie der Öffentlichkeit nie zeigen wollten, wie z. B. Sicherungsdateien und nicht referenzierte Dateien.

Was sind Sicherungsdateien und nicht referenzierte Dateien?

Wie der Name schon sagt, handelt es sich bei Backup- und nicht referenzierten Dateien um tatsächliche Backups, die entweder Backups bestimmter Dateien sein können, die normalerweise beim Bearbeiten von Dateien wie Konfigurationsdateien erstellt werden, oder sogar vollständige Backups. Zu verstehen, was diese Sicherungsdateien sind und wie sie generiert werden, ist der erste Schritt, den wir unternehmen müssen, um das Problem zu lösen.

Es gibt viele Gründe, warum Sie WordPress-Dateien bearbeiten müssen. Das Bearbeiten der Dateien Ihrer WordPress-Site, ohne vorher ein Backup zu erstellen, erfordert jedoch einige Nerven – ein fehlendes Semikolon kann Ihre Website zum Absturz bringen!

Da solche Fehler leicht zu machen sind, ist es natürlich nicht ratsam, Dateien direkt auf Produktions-Webservern zu bearbeiten. Best Practices sagen uns, dass wir alle Änderungen zuerst auf einem Test- oder Staging-Server testen sollen. Erst nach gründlichem und erfolgreichem Testen können Änderungen auf den Live-/Produktionsserver verschoben werden.

Im wirklichen Leben werden Best Practices jedoch nicht immer befolgt. Dies kann besonders dann der Fall sein, wenn es sich um eine klitzekleine Änderung handelt. Das Herunterladen der Datei, das Vornehmen der Änderungen, das Testen und erneute Hochladen kann erheblich länger dauern als das Bearbeiten der Datei auf dem Live-Server. Wir waren alle dort.

Die Bearbeitung auf dem Live-Server kann sehr einfach sein. Mit einem SSH-Client und Vi (oder Vim, wenn Sie die verbesserte Version bevorzugen) können Sie Wunder bewirken. Sobald Sie sich mit dem Server verbunden haben und sich auf den Weg zum Verzeichnis machen, werden Sie wahrscheinlich zuerst eine Sicherungskopie der Datei (z. B. wp-config.php.bak) erstellen, die Live-Datei bearbeiten und sicherstellen, dass alles in Ordnung ist. und es ist alles bestens. Diese im Ordner verbleibende Sicherungsdatei (nur für den Fall, wissen Sie) kann jedoch die Quelle vieler Schmerzen und Schmerzen sein. Die Chancen stehen gut, dass so ziemlich jeder es und damit die gesamte Konfiguration im Klartext herunterladen kann, nicht weniger.

Darüber hinaus ist vielen WordPress-Administratoren möglicherweise nicht bewusst, dass das Bearbeiten von Dateien an Ort und Stelle mit einem Dateieditor wie Vim automatisch Sicherungs-, Wiederherstellungs- und Sperrdateien erstellen kann. Vim erstellt diese Dateien, damit Sie Ihre Arbeit wiederherstellen können, wenn Vim abstürzt oder unerwartet beendet wird. Obwohl dies zweifellos eine wertvolle Funktion ist, bedeutet dies auch, dass Sie versehentlich Sicherungsdateien erhalten, die Sie nie erstellen wollten, die auf Ihrer Website verstreut sind und darauf warten, dass jemand darauf zugreift.

Ebenso schädlich können Sicherungen ganzer Verzeichnisse in einem öffentlichen Ordner sein. Während das Erstellen von Backups Ihrer WordPress-Website von entscheidender Bedeutung ist, muss dies sicher erfolgen, ohne neue Sicherheitsrisiken einzuführen. Wir werden später in diesem Artikel ausführlicher darauf eingehen.

Gängige Beispiele für Sicherungsdateien sind umbenannte alte Versionen geänderter Konfigurationsdateien, PHP-Dateien oder anderer Quellcode sowie automatische oder manuelle Sicherungen in Form komprimierter Archive (z. B. .zip-, .gz- oder .tar.gz-Archive).

Andererseits sind nicht referenzierte Dateien falsch platzierte Dateien, die aufgrund einer Konfigurations- oder Designentscheidung irgendwo landen, wo sie nicht hingehören.

Was sind die Risiken?

Sicherungskopien und nicht referenzierte Dateien, die versehentlich zugänglich gelassen wurden, können vertrauliche Informationen preisgeben. Je nach Datei können sensible Daten Konfigurationsparameter oder Quellcode enthalten, die böswilligen Benutzern helfen, die Funktionsweise Ihrer Website besser zu verstehen, wodurch es einfacher wird, einen Angriff auf Ihre Website zu erstellen. In einigen Fällen können auch Passwörter durchgesickert sein, die Angreifern die Kontrolle über die gesamte WordPress-Installation geben können.

Es gibt mehrere Möglichkeiten, wie jemand übrig gebliebene Dateien auf Ihrem Webserver finden kann. Während einige der Methoden technisches Fachwissen erfordern, sind andere so einfach wie eine Google-Suche, was das Risiko einer Exposition erhöht. Wenn Sie sich nicht sicher sind, ob Sie Dateien auf Ihrem Server übrig haben, lesen Sie weiter, um zu erfahren, wie Sie danach suchen und sie finden können, bevor es jemand anderes tut.

So finden Sie Sicherungsdateien und nicht referenzierte Dateien auf Ihrer WordPress-Website

Es gibt ein paar verschiedene Methoden, mit denen jemand Sicherungskopien und nicht referenzierte Dateien finden kann. Als Serverbesitzer haben Sie einen Vorteil, da Sie direkter vorgehen können. In diesem Abschnitt werden diese verschiedenen Tools untersucht, beginnend mit den Tools, mit denen Sie diese Dateien suchen und entfernen können. Wir werden uns dann ansehen, wie eine neugierige Katze Backup- und nicht referenzierte Dateien auf Ihrem Server finden könnte.

Bei der Suche nach Sicherungsdateien, die Sie möglicherweise auf Ihrem Webserver zurückgelassen haben, können Sie einen (oder mehrere) von drei Ansätzen wählen. Am einfachsten ist es, ein Plugin zu installieren, das Dateien auf Änderungen überwacht. Alternativ können Sie entweder versuchen, mit Befehlszeilentools wie find nach im Dateisystem verbliebenen Sicherungsdateien zu suchen, oder Sie können versuchen, mit einer Technik namens Fuzzing nach Sicherungsdateien zu suchen.

Plugin zur Überwachung der Dateiintegrität

Eine Lösung zur Überwachung der Dateiintegrität für WordPress kann mühelos dabei helfen, Dateiänderungen auf Ihrem Webserver zu überwachen und Sie zu warnen, wenn etwas hinzugefügt, entfernt oder geändert wurde.

Dies kann mit dem Plugin Website File Changes Monitor erreicht werden. Das Plugin nimmt einen Fingerabdruck Ihrer Verzeichnisse und vergleicht ihn dann mit nachfolgenden Fingerabdrücken. Im Wesentlichen funktioniert es nach den gleichen Prinzipien wie eine Prüfsumme, wodurch es sehr sicher und zuverlässig ist.

Ein Dateiintegritätsmonitor kann besonders effektiv sein, wenn Sie nicht in alle von WordPress verwendeten Verzeichnisse eingeweiht sind. Ein weiterer wesentlicher Vorteil dieses Plugins ist, dass die Überwachung automatisiert ist, sodass Sie nicht daran denken müssen, nach Dateien zu suchen – das Plugin erledigt dies automatisch.

Finden

Schauen wir uns nun an, wie wir Sicherungsdateien mit dem Befehl find finden können. Der folgende Befehl sucht nach mehreren häufig verwendeten Dateierweiterungen, die beim Erstellen von Sicherungsdateien verwendet werden.

find /var/www -type f \( -name '*.bak' -o -name '*.backup' -o -name '*.bac' -o -name '*.zip' -o -name '* .tar' -o -name '*.jar' -o -name '*.log' -o -name '*.swp' -o -name '*~' -o -name '*.old' -o - name '*.~bk' -o -name '*.orig' -o -name '*.tmp' -o -name '*.exe' -o -name '*.0' -o -name '*. 1' -o -name '*.2' -o -name '*.3' -o -name '*.gz' -o -name '*.bz2' -o -name '*.7z' -o - name '*.s7z' -o -name '*.lz' -o -name '*.z' -o -name '*.lzma' -o -name '*.lzo' -o -name '*.apk ' -o -name '*.cab' -o -name '*.rar' -o -name '*.war' -o -name '*.ear' -o -name '*.tar.gz' -o -name '*.tgz' -o -name '*.tar.z' -o -name '*.tar.bz2' -o -name '*.tbz2' -o -name '*.tar.lzma' - o -name '*.tlz' -o -name '*.zipx' -o -name '*.iso' -o -name '*.src' -o -name '*.dev' -o -name '* .a' -o -name '*.ar' -o -name '*.cbz' -o -name '*.cpio' -o -name '*.shar' -o -name '*.lbr' -o -name '*.mar' -o -name '*.f' -o -name '*.rz' -o -name '*.sfark' -o -name '*.xz' -o -name '*. ace' -o -name '*.afa' -o -name '*.alz' -o -name '*.arc' -o -nam e '*.arj' -o -name '*.ba' -o -name '*.bh' -o -name '*.cfs' -o -name '*.cpt' -o -name '*.dar ' -o -name '*.dd' -o -name '*.dgc' -o -name '*.dmg' -o -name '*.gca' -o -name '*.ha' -o -name '*.hki' -o -name '*.ice' -o -name '*.inc' -o -name '*.j' -o -name '*.kgb' -o -name '*.lhz' -o -name '*.lha' -o -name '*.lzk' -o -name '*.pak' -o -name '*.partimg.' -o -name '*.paq6' -o -name '*.paq7' -o -name '*.paq8' -o -name '*.pea' -o -name '*.pim' -o -name '*.pit' -o -name '*.qda' -o -name '*.rk' -o -name '*.sda' -o -name '*.sea' -o -name '*.sen' -o -name '*.sfx' -o -name ' *.sit' -o -name '*.sitx' -o -name '*.sqx' -o -name '*s.xz' -o -name '*.tar.7z' -o -name '*. tar.xz' -o -name '*.uc' -o -name '*.uc0' -o -name '*.uc2' -o -name '*.ucn' -o -name '*.ur2' - o -name '*.ue2' -o -name '*.uca' -o -name '*.uha' -o -name '*.wim' -o -name '*.xar' -o -name '* .xp3' -o -name '*.yz1' -o -name '*.zoo' -o -name '*.zpaq' -o -name '*.zz' -o -name '*.include' -o -name '*_1' -o -name '*_2' -o -name '*_x' -o -name '*bak' -o -name '*_bak' -o -name '*old' -o -name '*_old' -o -name '*_a' -o -name '*_b' -o -name '*_c' -o -name '*_d' -o -name '*_e' -o -name '*_f' -o -name '*inc' -o -name '*_inc' -o -name '*_backup' -o -name '* – Kopie' -o -name '* – Kopie (2)' -o -name '* – Kopie (3)' -o -name '*backup' -o -name '*-backup' -o -name '*-bak' -o -name '*-old' -o -name '*-1' -o -name '*-2' -o -name '* – Kopieren – Kopieren' -o -name '*( Kopie)' -o -name '*(weitere Kopie)' -o -name '*(zweite Kopie)' -o -name '*(dritte Kopie)' -o -name '*(vierte Kopie)' -o - name '*(2. Kopie)' -o -name '*(3. Kopie)' -o -name '*(4. Kopie)' -o -name '* (Kopie)' -o -name '* (weitere Kopie) ' -o -name '* (zweite Kopie)' -o -name '* (dritte Kopie)' -o -name '* (vierte Kopie)' -o -name '* (2. Kopie)' -o -name ' * (3. Kopie)' -o -name '* (4. Kopie)' -o -name 'Kopie von *' -o -name 'Kopie (2) von *' -o -name 'Kopie (3) von *' -o -name 'Kopie von Kopie von *' -o -name 'backup*' -o -name 'backup_*' -o -name 'backup-*' -o -name 'bak*' -o -name 'bak_ *' -o -name 'bak-*' -o -name'alt*' -o -name 'alt_*' -o -name 'alt-*' -o -name '1*' -o -name '1_*' -o -name '1-*' -o -name '2*' -o -name '2_*' -o -name '2-*' \)

Fuzzing

Die folgende Methode verwendet ein befehlszeilenbasiertes Tool namens ffuf mit einer Wortliste (eine Liste von Dateinamen und Dateipfaden, die im Klartext gesammelt werden), die sich auf WordPress-Dateien konzentriert. ffuf kann so konfiguriert werden, dass Anfragen mit einer durch Kommas getrennten Liste gängiger Backup-Dateierweiterungen gestellt werden (dieses Beispiel verwendet nur eine verkürzte Liste, die nur .bak und .backup enthält, aber in Wirklichkeit wäre sie wahrscheinlich viel länger).

ffuf -u http://example.com/FUZZ -w Wortliste.txt -e '.bak,.backup'

Suchmaschine sucht

Suchmaschinen sind sehr, sehr gut darin, Informationen auf Webservern zu finden und zu katalogisieren. Jemand kann dies tun, indem er erweiterte Operatoren verwendet, die beispielsweise eine Abfrage aufschlüsseln können, um bestimmte Dateitypen auf einem bestimmten Server zu finden.

Diese Art der Suche ist auch als Google Dorking bekannt und kann eine Kombination aus erweiterten Filtern und Schlussfolgerungen verwenden. Inferenz ist, wie jemand ohne Wissen darüber, was sich auf einem Server befindet, allgemeine Informationen verwendet, um abzuleiten, welche Art von Dateien und Strukturen sich auf einem Server befinden könnten, und dann nach diesen spezifischen Dingen sucht.

Sicherheitsscanner

Es gibt verschiedene Arten von Scannern, die die Verzeichnisse einer Website scannen können. Der erste Scannertyp wird als Site-Crawler bezeichnet. Dies ist dieselbe zugrunde liegende Technologie, die Suchmaschinen zum Lesen von Websites verwenden. Diese Arten von Scannern sind jedoch nicht exklusiv für Suchmaschinen und können kostenlos heruntergeladen werden.

In den meisten Ländern ist es illegal, eine Ziel-Website zu scannen, selbst wenn Ihre Absichten gut sind. Sie können und sollten einen Scanner nur für Websites verwenden, die Ihnen gehören. Wenn Sie die Website eines Drittanbieters scannen, vergewissern Sie sich, dass Sie Ihre Zustimmung haben. Trotzdem kann jemand mit böswilligen Absichten einen Sicherheitsscanner verwenden, um mehr über Ihre Website zu erfahren und zu verstehen, welche Art von Dateien sich darauf befinden.

Eine andere Art von Scanner ist ein Penetrationstest-Scanner, der eine Website auf Schwachstellen scannen kann, einschließlich übrig gebliebener Dateien.

Backup oder nicht referenzierte Dateien gefunden? Hier ist, was zu tun ist

Das Speichern von Sicherungsdateien auf einer Website ist niemals eine gute Idee. Leider ist es nicht ungewöhnlich, dass Besitzer und Administratoren von WordPress-Websites Cron-Jobs (geplante Aufgaben) konfigurieren, um Datenbank-Backups zu erstellen, nur um diese Backups auf demselben Server zu speichern. Während Sie auf jeden Fall Ihre Website sichern sollten , sollten Sie darauf achten, dass Sicherungsdateien nirgendwo auf dem System gespeichert werden, das Sie gesichert haben.

Eine gut durchdachte WordPress-Backup-Strategie, die Best Practices folgt, ist nicht nur aus Sicherheitssicht, sondern auch aus Sicht der Geschäftskontinuität von entscheidender Bedeutung. Schließlich sind Backups nicht viel wert, wenn Sie sie nicht zur Wiederherstellung von Daten verwenden können.

So verhindern Sie die Aufzählung von Sicherungsdateien

Wie wir in diesem Artikel gesehen haben, kann das Aufbewahren von Sicherungsdateien auf Ihrer WordPress-Website ziemlich riskant sein. Daher sollten Sie immer eine Test- oder Staging-Umgebung verwenden, um Ihre Änderungen durchzuführen, bevor Sie sie auf den Live-/Produktionsserver übertragen. Die meisten verwalteten WordPress-Hosting-Konten verfügen direkt über eine Staging-Umgebung. Sie können auch Software wie Local verwenden, mit der Sie WordPress-Instanzen auf Ihrem PC starten können.

Wenn Sie sich jedoch dafür entscheiden, Sicherungsdateien auf Ihrem Webserver zu speichern, halten Sie sie idealerweise außerhalb des Verzeichnisses, für das Sie Ihren Webserver konfiguriert haben.

Konfigurieren Sie außerdem die Berechtigungen Ihrer WordPress-Dateien, um den Zugriff für den Benutzer des Webservers zu verbieten – dies stellt sicher, dass der Webserver selbst im Falle einer Fehlkonfiguration die Datei nicht an einen Client liefern darf, der sie anfordert. Als zusätzliche Maßnahme ist es eine gute Idee, alle Datenbanksicherungen zu verschlüsseln und sicherzustellen, dass der Verschlüsselungsschlüssel für den Benutzer des Webservers nicht zugänglich ist.