Sauvegarde exposée et fichiers non référencés et comment les trouver
Publié: 2021-08-24La sécurité de votre WordPress implique un processus continu de test, de renforcement, de surveillance et d'amélioration. Les administrateurs de WordPress peuvent prendre en charge plusieurs choses pour les aider à garantir la sécurité de leurs sites Web. Qu'il s'agisse de s'assurer que les mots de passe répondent à des critères spécifiques ou de renforcer PHP, ces processus peuvent grandement vous aider à vous assurer que vous dirigez un navire serré et propre. Une chose qui a tendance à être négligée est la sauvegarde exposée et les fichiers non référencés. Ces fichiers peuvent poser un risque de sécurité qui peut être facilement géré en suivant les meilleures pratiques.
WordPress utilise des répertoires pour organiser les informations. Toutes les pages et tous les médias résident dans cette structure. Dans une installation typique, cette structure ressemblerait à quelque chose comme var/www/html/wordpress/wp-content.
Les serveurs Web, y compris les serveurs hébergeant des sites Web WordPress, sont généralement configurés pour servir aux clients tous les fichiers qui résident dans un répertoire particulier. Il existe quelques exceptions, telles que les fichiers PHP ; cependant, à moins qu'un administrateur n'ait explicitement bloqué l'accès, il y a de fortes chances que si un client le demande, le serveur Web l'obligera.
D'une manière générale, c'est une bonne chose, et c'est ce que vous voulez, car c'est ainsi que les fichiers pertinents pour vos pages Web, tels que les fichiers CSS, les fichiers JS et les images, sont servis au visiteur. Cependant, ce comportement signifie également que vous pouvez servir involontairement des fichiers que vous n'avez jamais voulu que le public voie, tels que des fichiers de sauvegarde et non référencés.
Que sont les fichiers de sauvegarde et non référencés ?
Comme son nom l'indique, les fichiers de sauvegarde et non référencés sont des sauvegardes réelles qui peuvent être soit des sauvegardes de fichiers particuliers, généralement créés lors de la modification de fichiers tels que des fichiers de configuration, soit même des sauvegardes complètes. Comprendre ce que sont ces fichiers de sauvegarde et comment ils sont générés est la première étape à franchir pour résoudre le problème.
Il existe de nombreuses raisons pour lesquelles vous pourriez avoir besoin de modifier des fichiers WordPress. Cependant, modifier les fichiers de votre site WordPress sans effectuer de sauvegarde prend un peu de courage - un point-virgule manquant peut mettre votre site Web hors service !
Bien sûr, comme de telles erreurs sont faciles à commettre, il n'est pas conseillé de modifier les fichiers directement sur les serveurs Web de production. Les meilleures pratiques nous disent de tester d'abord toutes les modifications apportées à un serveur de test ou de transfert. Ce n'est qu'après des tests approfondis et réussis que les modifications peuvent être transférées vers le serveur live/production.
Dans la vraie vie, cependant, les meilleures pratiques ne sont pas toujours suivies. Cela peut être particulièrement vrai lorsqu'il s'agit d'un tout petit changement. Le processus de téléchargement du fichier, de modification, de test et de nouveau téléchargement peut prendre beaucoup plus de temps que la modification du fichier sur le serveur en direct. On est tous passé par là.
L'édition sur le serveur en direct peut être très facile. Avec un client SSH et Vi (ou Vim si vous préférez la version améliorée), vous pouvez faire des merveilles. Une fois que vous vous êtes connecté au serveur et que vous vous dirigez vers le répertoire, il y a de fortes chances que vous fassiez d'abord une sauvegarde du fichier (ex. wp-config.php.bak), modifiez celui en direct, assurez-vous que tout est en ordre, et c'est tout beau. Cependant, ce fichier de sauvegarde laissé dans le dossier (juste au cas où, vous savez) peut finir par être la source de nombreux maux et douleurs. Il y a de fortes chances que tout le monde puisse le télécharger et avec lui toute la configuration, en texte brut, rien de moins.
De plus, de nombreux administrateurs WordPress peuvent ne pas savoir que la modification de fichiers en place à l'aide d'un éditeur de fichiers tel que Vim peut créer automatiquement des fichiers de sauvegarde, de récupération et de verrouillage. Vim crée ces fichiers pour vous permettre de récupérer votre travail si Vim plante ou se ferme de manière inattendue. Bien qu'il s'agisse sans aucun doute d'une fonctionnalité précieuse, cela signifie également que vous pouvez vous retrouver par inadvertance avec des fichiers de sauvegarde que vous n'avez jamais eu l'intention de créer, éparpillés sur votre site Web, en attendant que quelqu'un y accède.
De même, les sauvegardes de répertoires entiers laissés dans un dossier public peuvent être tout aussi dommageables. Bien qu'il soit essentiel d'effectuer des sauvegardes de votre site Web WordPress, cela doit être fait en toute sécurité sans introduire de nouveaux risques de sécurité. Nous en parlerons plus en détail plus loin dans cet article.
Des exemples courants de fichiers de sauvegarde incluent les anciennes versions renommées des fichiers de configuration modifiés, des fichiers PHP ou d'autres codes source, et des sauvegardes automatiques ou manuelles sous la forme d'archives compressées (telles que des archives .zip, .gz ou .tar.gz).
D'autre part, les fichiers non référencés sont des fichiers égarés qui, en raison d'une décision de configuration ou de conception, finissent quelque part où ils n'appartiennent pas.
Quels sont les risques ?
Les fichiers de sauvegarde et non référencés laissés accidentellement accessibles peuvent laisser fuir des informations sensibles. Selon le fichier, les données sensibles peuvent inclure des paramètres de configuration ou du code source qui aident les utilisateurs malveillants à mieux comprendre le fonctionnement de votre site Web, facilitant ainsi la conception d'une attaque contre votre site Web. Dans certains cas, les mots de passe qui peuvent donner aux attaquants le contrôle de l'ensemble de l'installation de WordPress peuvent également être divulgués.
Il existe plusieurs façons de trouver des fichiers restants sur votre serveur Web. Alors que certaines méthodes nécessitent une certaine expertise technique, d'autres sont aussi simples qu'une recherche sur Google, ce qui augmente le risque d'exposition. Si vous ne savez pas s'il vous reste des fichiers sur votre serveur, continuez à lire pour savoir comment vous pouvez les rechercher et les trouver avant que quelqu'un d'autre ne le fasse.
Comment trouver des fichiers de sauvegarde et des fichiers non référencés sur votre site WordPress
Il existe différentes méthodes que quelqu'un peut utiliser pour trouver des fichiers de sauvegarde et non référencés. En tant que propriétaire du serveur, vous avez l'avantage puisque vous pouvez vous y prendre plus directement. Cette section explorera ces différents outils, en commençant par les outils que vous pouvez utiliser pour rechercher et supprimer ces fichiers. Nous verrons ensuite comment un chat curieux pourrait s'y prendre pour trouver des sauvegardes et des fichiers non référencés sur votre serveur.
Lorsque vous recherchez des fichiers de sauvegarde que vous avez peut-être laissés sur votre serveur Web, vous pouvez adopter une (ou plusieurs) des trois approches. Le moyen le plus simple consiste à installer un plug-in qui surveille les modifications apportées aux fichiers. Vous pouvez également essayer de rechercher des fichiers de sauvegarde laissés sur le système de fichiers à l'aide d'outils de ligne de commande tels que find ou essayer de rechercher des fichiers de sauvegarde à l'aide d'une technique appelée fuzzing .
Plugin de surveillance de l'intégrité des fichiers
Une solution de surveillance de l'intégrité des fichiers pour WordPress peut facilement aider à surveiller les modifications de fichiers sur votre serveur Web et vous alerter si elle détecte que quelque chose a été ajouté, supprimé ou modifié.
Ceci peut être réalisé avec le plugin Website File Changes Monitor. Le plugin prend une empreinte digitale de vos répertoires, puis la compare aux empreintes digitales suivantes. En substance, il fonctionne sur les mêmes principes qu'une somme de contrôle, ce qui le rend hautement sécurisé et fiable.
Un moniteur d'intégrité des fichiers peut être particulièrement efficace si vous n'êtes pas au courant de tous les répertoires utilisés par WordPress. Un autre avantage important de ce plugin est que la surveillance est automatisée, vous n'avez donc pas à vous rappeler de vérifier les fichiers - le plugin le fait automatiquement.
Trouver
Voyons maintenant comment trouver des fichiers de sauvegarde à l'aide de la commande find. La commande suivante recherchera plusieurs extensions de fichiers couramment utilisées lors de la création de fichiers de sauvegarde.
trouver /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 - nom '*.~bk' -o -nom '*.orig' -o -nom '*.tmp' -o -nom '*.exe' -o -nom '*.0' -o -nom '*. 1' -o -nom '*.2' -o -nom '*.3' -o -nom '*.gz' -o -nom '*.bz2' -o -nom '*.7z' -o - nom '*.s7z' -o -nom '*.lz' -o -nom '*.z' -o -nom '*.lzma' -o -nom '*.lzo' -o -nom '*.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 -nom '*.ar' -o -nom '*.cbz' -o -nom '*.cpio' -o -nom '*.shar' -o -nom '*.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 '* – Copie' -o -nom '* – Copie (2)' -o -nom '* – Copie (3)' -o -nom '*sauvegarde' -o -nom '*-sauvegarde' -o -nom '*-bak' -o -name '*-old' -o -name '*-1' -o -name '*-2' -o -name '* – Copier – Copier' -o -name '*( copie)' -o -name '*(une autre copie)' -o -name '*(deuxième copie)' -o -name '*(troisième copie)' -o -name '*(quatrième copie)' -o - name '*(2ème copie)' -o -name '*(3ème copie)' -o -name '*(4ème copie)' -o -name '* (copie)' -o -name '* (une autre copie) ' -o -name '* (deuxième copie)' -o -name '* (troisième copie)' -o -name '* (quatrième copie)' -o -name '* (2e copie)' -o -name ' * (3e copie)' -o -name '* (4e copie)' -o -name 'Copie de *' -o -name 'Copie (2) de *' -o -name 'Copie (3) de *' -o -name 'Copie de Copie de *' -o -name 'sauvegarde*' -o -name 'sauvegarde_*' -o -name 'sauvegarde-*' -o -name 'bak*' -o -name 'bak_ *' -o -nom 'bak-*' -o -nom'ancien*' -o -nom 'ancien_*' -o -nom 'ancien-*' -o -nom '1*' -o -nom '1_*' -o -nom '1-*' -o -nom '2*' -o -nom '2_*' -o -nom '2-*' \)
Fuzzing
La méthode suivante utilise un outil basé sur la ligne de commande appelé ffuf avec une liste de mots (une liste de noms de fichiers et de chemins de fichiers collectés en texte brut) qui se concentre sur les fichiers WordPress. ffuf peut être configuré pour effectuer des requêtes en utilisant une liste séparée par des virgules d'extensions de fichiers de sauvegarde courantes (cet exemple n'utilise qu'une liste raccourcie qui n'inclut que .bak et .backup, mais en réalité, elle serait probablement beaucoup plus longue).
ffuf -u http://example.com/FUZZ -w liste de mots.txt -e '.bak,.backup'
Recherches sur les moteurs de recherche
Les moteurs de recherche sont très, très bons pour trouver et cataloguer des informations sur des serveurs Web. Quelqu'un peut le faire en utilisant des opérateurs avancés qui peuvent, par exemple, explorer une requête pour trouver des types de fichiers spécifiques sur un serveur donné.
Ce type de recherche est également connu sous le nom de Google Dorking et peut utiliser une combinaison de filtres avancés et d'inférence. L'inférence est la façon dont une personne qui n'a aucune connaissance de ce qui réside sur un serveur utilise des informations générales pour déduire quel type de fichiers et de structures peut résider sur un serveur, puis recherche ces éléments spécifiques.
Analyseurs de sécurité
Il existe différents types de scanners capables de scanner les répertoires d'un site Web. Le premier type de scanner est appelé un robot d'exploration de site, qui est la même technologie sous-jacente que les moteurs de recherche utilisent pour lire les sites Web. Ces types de scanners, cependant, ne sont pas exclusifs aux moteurs de recherche et peuvent être téléchargés librement.
Il est illégal de scanner un site Web cible dans la plupart des pays, même si vos intentions sont bonnes. Vous ne pouvez et ne devez utiliser un scanner que sur les sites Web que vous possédez. Si vous analysez un site Web tiers, assurez-vous d'avoir le consentement. Même dans ce cas, une personne mal intentionnée peut utiliser un scanner de sécurité pour en savoir plus sur votre site Web et comprendre le type de fichiers qu'il contient.
Un autre type de scanner est un scanner de test de pénétration, qui peut analyser un site Web à la recherche de vulnérabilités, y compris les fichiers restants.
Sauvegarde trouvée ou fichiers non référencés ? Voici quoi faire
Stocker des fichiers de sauvegarde sur un site Web n'est jamais une bonne idée. Malheureusement, il n'est pas rare que les propriétaires et les administrateurs de sites Web WordPress configurent des tâches cron (tâches planifiées) pour effectuer des sauvegardes de base de données, uniquement pour stocker ces sauvegardes sur le même serveur. Bien que vous deviez certainement sauvegarder votre site Web, vous devez veiller à ce que les fichiers de sauvegarde ne soient stockés nulle part sur le système que vous avez sauvegardé.
Avoir une stratégie de sauvegarde WordPress bien pensée qui suit les meilleures pratiques est crucial non seulement du point de vue de la sécurité, mais également du point de vue de la continuité des activités. Après tout, les sauvegardes ne valent pas grand-chose si vous ne pouvez pas les utiliser pour restaurer des données.
Comment empêcher l'énumération des fichiers de sauvegarde
Comme nous l'avons vu tout au long de cet article, conserver des fichiers de sauvegarde sur votre site Web WordPress peut être assez risqué. En tant que tel, vous devez toujours utiliser un environnement de test ou de staging pour effectuer vos modifications avant de les transférer sur le serveur live/production. La plupart des comptes d'hébergement WordPress gérés sont livrés avec un environnement de staging dès la sortie de la boîte. Vous pouvez également utiliser des logiciels tels que Local, qui vous permettent de créer des instances WordPress sur votre PC.
Néanmoins, si vous choisissez de conserver les fichiers de sauvegarde sur votre serveur Web, idéalement, conservez-les hors du répertoire que vous avez configuré pour servir votre serveur Web.
De plus, configurez les autorisations de vos fichiers WordPress pour interdire l'accès à l'utilisateur du serveur Web - cela garantit que même en cas de mauvaise configuration, le serveur Web ne sera pas autorisé à servir le fichier à un client qui le demande. Comme mesure supplémentaire, c'est une bonne idée de chiffrer toutes les sauvegardes de base de données et de s'assurer que la clé de chiffrement n'est pas accessible par l'utilisateur du serveur Web.