Qu'est-ce que la traversée de répertoire ?

Publié: 2023-05-09

En incitant un serveur Web à exposer des informations autrement restreintes, les attaquants peuvent obtenir un outil puissant pour compromettre un système et causer des dommages importants. La traversée de répertoire est une méthode couramment utilisée pour y parvenir. Une tentative de navigation en dehors des zones du système de fichiers réservées à un site Web particulier peut entraîner un vol de données et l'exécution de code arbitraire.

En règle générale, les serveurs Web restreignent l'accès au système de fichiers en confinant les fichiers d'un site Web dans son répertoire racine, également appelé dossier racine du document. Cependant, les cybercriminels peuvent contourner ces contrôles de sécurité et exploiter des autorisations de fichiers non sécurisées. De cette façon, ils peuvent obtenir un accès non autorisé à des informations critiques stockées ailleurs sur le serveur de la victime.

Les vulnérabilités d'inclusion de fichiers, régulièrement identifiées dans les plugins et les thèmes, font des sites Web WordPress une cible prioritaire pour les attaques impliquant la traversée de répertoires. Et bien que la mise en œuvre de pratiques de codage sécurisées soit une tâche pour les développeurs de plugins et de thèmes, la mise en œuvre de bonnes pratiques de sécurité relève de la responsabilité des propriétaires de sites Web.

Dans ce guide sur la traversée de répertoires, nous explorerons cette méthode courante que les pirates utilisent pour sortir du répertoire racine du site Web afin d'accéder à des données restreintes. Vous apprendrez comment la traversée de chemin permet aux attaquants d'exploiter avec succès les vulnérabilités d'inclusion de fichiers locaux (LFI) pour infliger des dommages et comment protéger votre site Web WordPress contre ces types d'attaques en mettant en œuvre des pratiques de sécurité robustes.

Tout d'abord, examinons de plus près les concepts d'opérations de serveur sécurisé. Plus précisément, comment les différents types de données sont séparés dans l'environnement du serveur et quelle place ont les données du site Web dans cet écosystème.

parcours de répertoire

Comment le partitionnement des données aide à sécuriser les opérations du serveur

Les sites Web et les applications Web s'appuient sur des serveurs pour stocker leurs données. Ces données sont ensuite traitées par des serveurs Web et de bases de données et d'autres applications spécifiques avant d'être transmises aux navigateurs des visiteurs sur Internet en tant que pages Web demandées. Les composants matériels et logiciels sous-jacents fonctionnent ensemble pour créer une infrastructure robuste qui alimente cette fonctionnalité.

Cependant, cette architecture client-serveur nécessite également une approche consciente de la sécurité du serveur. Les services critiques et autres composants du système d'exploitation du serveur doivent être entièrement séparés des fichiers utilisateur et des données du site Web. Cette séparation des données sur le système de fichiers est communément appelée partitionnement des données.

Le partitionnement des données permet de sécuriser les aspects les plus vulnérables des opérations du serveur en séparant différents types de données dans des partitions distinctes. La mise en œuvre du partitionnement du système de fichiers et d'autres mécanismes de sécurité permet de protéger les serveurs contre l'accès non autorisé aux informations sensibles et les compromis au niveau du système. De plus, le partitionnement des données permet une gestion efficace des ressources et améliore les performances du serveur en séparant les données fréquemment modifiées des fichiers principalement en lecture seule et en isolant les données système et utilisateur.

Contrôle d'accès au serveur Web : confiner les données du site Web avec des racines de document

Pour isoler les données du site Web des données du système, les serveurs Web utilisent le concept de racines de document. Cela implique de limiter les fichiers du site Web à un répertoire désigné sur le système de fichiers, connu sous le nom de répertoire racine d'un site Web. En définissant la racine du document, le serveur Web peut diriger et répondre correctement aux demandes entrantes pour le contenu de ce site Web. Ce répertoire racine est le point de départ du traitement des requêtes Web pour ce site Web.

Ce confinement permet d'empêcher l'accès non autorisé aux données critiques du serveur, telles que les informations du système d'exploitation et les fichiers de configuration clés, stockés en dehors du répertoire racine désigné. Cela signifie que tout script ou autre contenu et fonctionnalité liés à un site Web particulier ne peuvent accéder et modifier les données que dans le répertoire racine et ses sous-répertoires, ce qui protège le reste du serveur en cas de faille de sécurité.

En plus des racines de document, les serveurs Web utilisent d'autres mécanismes de contrôle d'accès pour restreindre davantage l'accès aux données du site Web. L'un des mécanismes les plus notables sont les autorisations de fichiers. Les autorisations de fichiers aident à appliquer le principe du moindre privilège, ce qui signifie que les utilisateurs ou les processus du système ne reçoivent que le niveau d'accès minimum requis pour exécuter les fonctions prévues.

Malgré la sécurité robuste de cette approche, les pirates peuvent utiliser un certain nombre de techniques malveillantes pour la contourner. L'une de ces méthodes est la traversée de répertoires. Les attaques par traversée de répertoire exploitent les faiblesses du code du site Web et la mise en œuvre d'autorisations sécurisées pour inciter le serveur Web à révéler des informations restreintes qui seraient autrement inaccessibles depuis le navigateur.

Qu'est-ce que la traversée de répertoire ?

La traversée de répertoire, également connue sous le nom de traversée de chemin, est une technique malveillante visant à accorder l'accès à des fichiers et répertoires restreints en dehors de la racine du document du site Web ou de l'application Web ciblé. La traversée de chemin permet à l'attaquant de naviguer dans le système de fichiers du serveur jusqu'au répertoire racine et à d'autres dossiers restreints via le navigateur - le type de comportement qui ne devrait pas être possible dans des circonstances normales.

La traversée de répertoire est effectuée en manipulant les variables qui font référence aux fichiers à l'aide de caractères spéciaux, appelés séquences de traversée de chemin. Des séquences telles que point-point-barre oblique '../' sont interprétées par le serveur Web, le forçant à remonter d'un répertoire dans la hiérarchie du système de fichiers, en s'éloignant de la racine du document du site Web.

Si un site Web est stocké dans /home/user/public_html, fournir une séquence de parcours de répertoire de '../../../etc' permettra à l'attaquant de naviguer vers le répertoire /etc, qui stocke la configuration système critique sous Linux les serveurs.

Si la liste des répertoires est désactivée dans la configuration du serveur Web, le cybercriminel ne pourra pas afficher le contenu du répertoire demandé. Cela peut partiellement augmenter la sécurité du système et limiter les dommages potentiels infligés par les attaques par traversée de répertoire puisque l'attaquant devra spécifier le fichier exact qu'il souhaite afficher dans le navigateur. Mais comme la plupart du temps, les pirates savent exactement quelles informations ils recherchent, la désactivation de la liste des répertoires ne les empêchera pas d'y accéder.

Le fichier /etc/passwd est l'une des cibles courantes des attaques par traversée de répertoire. Sur les serveurs Linux, le fichier /etc/passwd contient la liste des utilisateurs créés sur le serveur. Cela peut donner aux pirates un bon point de départ pour des attaques par force brute sur les informations d'identification des utilisateurs. Comme /etc/passwd a des autorisations de fichier de 644, ce qui signifie qu'il est lisible par tous les utilisateurs du système, y compris l'utilisateur sous lequel le serveur Web s'exécute. De cette façon, le serveur Web peut restituer le contenu du fichier via le navigateur.

Comment fonctionne la traversée de répertoire ?

En tant que technique malveillante, la traversée de répertoires est rarement utilisée comme seul moyen d'accéder à des informations sensibles sur les serveurs des victimes. Tout d'abord, les attaquants doivent trouver un moyen d'exploiter une vulnérabilité sur le site Web ciblé pour trouver un moyen de lui faire afficher les informations demandées dans le navigateur. Ce n'est qu'alors que la traversée de répertoire est utilisée pour naviguer dans le système de fichiers du serveur de la victime pour atteindre les répertoires restreints.

Les vulnérabilités d'inclusion de fichiers sont ce qui permet l'utilisation de la traversée de répertoires. La vulnérabilité de traversée de répertoire se produit lorsqu'un site Web ne nettoie pas correctement les entrées de l'utilisateur, telles que les chemins de fichiers fournis à l'aide de l'inclusion dynamique de fichiers. Une combinaison de vulnérabilités d'inclusion de fichiers locaux (LFI) et de traversée de répertoire permet aux pirates d'accéder à des données en dehors de la racine du document du site Web ciblé, révélant des informations sensibles sur le serveur.

Un exemple de parcours de répertoire

Pour mieux comprendre comment les vulnérabilités d'inclusion de fichiers locaux et de traversée de répertoires peuvent être exploitées, examinons l'exemple suivant. Cet exemple est une représentation simplifiée de la façon dont la traversée de répertoire est utilisée via une faille d'inclusion de fichier.

Un développeur Web ajoute une page Web content.php qui sera utilisée pour permettre au site Web de charger dynamiquement différentes pages ou composants en fonction de la demande de l'utilisateur. Par exemple, si un visiteur du site Web souhaite afficher la page "Contactez-nous", sa demande peut être affichée dans la barre d'adresse du navigateur sous la forme "https://website.com/content.php?page=contact_us".

La page content.php utiliserait la technique d'inclusion de fichier local pour référencer le fichier qui correspond au paramètre "contact_us", qui pourrait contenir le code PHP et HTML pour la page "Contactez-nous" demandée. Dans cet exemple, la page Web content.php agit comme un contrôleur, qui charge le fichier approprié qui génère le contenu dynamiquement en fonction de l'entrée de l'utilisateur.

Cependant, si l'entrée de l'utilisateur n'est pas correctement validée ou filtrée, les vulnérabilités d'inclusion de fichiers et de traversée de répertoires peuvent être exploitées par des attaquants pour inclure des fichiers arbitraires, qui seraient ensuite affichés dans le navigateur.

Par exemple, un pirate peut passer "../../../../../var/log/apache2/access.log" comme valeur du paramètre de requête de page - une série de séquences de traversée de répertoires suivies de l'adresse du journal d'accès principal du serveur Web Apache dans le système de fichiers. De cette façon, l'attaquant peut afficher le contenu du fichier journal, qui contient des informations sensibles telles que les adresses IP, les chaînes d'agent utilisateur et les URL demandées par les visiteurs du site Web.

Comment les autorisations de fichiers peuvent faciliter ou atténuer la traversée de répertoires

Les autorisations de fichiers jouent un rôle énorme pour assurer la sécurité du serveur et du site Web. En limitant l'accès au fichier à des utilisateurs et groupes système particuliers, les autorisations peuvent aider à faciliter ou à atténuer la traversée des répertoires.

Dans une attaque par inclusion de fichier utilisant la traversée de répertoire, le contenu du fichier demandé par l'attaquant ne serait affiché dans le navigateur que si ses autorisations de fichier permettent au système utilisant le serveur Web de le lire. Alors que certains fichiers restreints tels que /etc/password ont des autorisations de 644, ce qui les rend lisibles par tous les utilisateurs du système, d'autres fichiers restent uniquement accessibles à l'utilisateur root.

Le fichier /etc/shadow, qui contient des mots de passe cryptés pour tous les utilisateurs sur un serveur Linux, a des autorisations de fichier de 640, ce qui le rend inaccessible à tout utilisateur autre que root. Cela rend impossible pour les pirates d'accéder au fichier via le navigateur via la traversée de répertoire.

Comment détecter les vulnérabilités de traversée de répertoire sur votre site WordPress ?

Le noyau WordPress maintient un haut niveau de sécurité et est entièrement protégé contre les vulnérabilités d'inclusion de fichiers et la traversée de répertoires. Cependant, les options de personnalisation élevées offertes par la plate-forme augmentent la possibilité que ces vulnérabilités soient présentes sur un site WordPress. Même les plugins et thèmes WordPress les plus réputés peuvent contenir des failles de sécurité régulièrement découvertes.

Les rapports hebdomadaires sur les vulnérabilités de WordPress iThemes vous aident à identifier et à corriger rapidement les vulnérabilités récemment révélées dans les plugins et les thèmes WordPress, y compris la traversée de répertoires. Vérifiez simplement les rapports de vulnérabilité pour voir si des failles de sécurité ont été récemment trouvées dans les plugins que vous utilisez sur votre site WordPress, ainsi que votre thème actif, et voyez si un correctif a été publié.

iThemes Security Pro peut automatiser le processus d'analyse des vulnérabilités de votre site Web WordPress et corriger rapidement les failles identifiées en votre nom. iThemes Security Pro effectuera une analyse avancée des vulnérabilités deux fois par jour, vous enverra un e-mail si des vulnérabilités sont détectées et installera automatiquement une mise à jour si un correctif de sécurité est disponible.

Comment se défendre contre la traversée d'annuaire ?

L'exploitation des vulnérabilités trouvées dans les plugins et les thèmes est l'un des plus grands vecteurs d'attaque que les pirates utilisent pour obtenir un accès non autorisé, voler des données sensibles et télécharger des logiciels malveillants, y compris des shells de porte dérobée, sur des sites Web WordPress. Et bien que le suivi des pratiques de codage sécurisé relève des responsabilités des développeurs de plugins et de thèmes, les propriétaires de sites Web WordPress sont responsables de la mise en œuvre des mesures de protection localement. Seule une approche multidimensionnelle de la sécurité de WordPress peut aider à réduire le risque d'être victime de cyberattaques sophistiquées modernes.

Gardez tous les logiciels à jour

Garder le noyau WordPress, les plugins actifs et le thème choisi mis à jour avec la dernière version disponible est la première étape vers l'élimination de la traversée de répertoires et d'autres vulnérabilités graves au niveau de l'application. Comme de nouvelles failles de sécurité sont identifiées dans le logiciel qui alimente votre site WordPress, il est de la plus haute importance d'installer les correctifs de sécurité dès qu'ils sont disponibles. Avant que la vulnérabilité découverte ne soit corrigée par le développeur du plugin ou du thème, le logiciel concerné peut être désactivé pour réduire la surface d'attaque.

Garder une trace des mises à jour des plugins et des thèmes peut être une tâche difficile, mais avec iThemes Security Pro, les propriétaires de sites Web peuvent avoir accès à une solution complète qui simplifie le processus et aide à garantir que les sites Web restent à jour et protégés contre les vulnérabilités de sécurité. La fonction de gestion des versions propose des mises à jour logicielles automatiques pour protéger votre site WordPress.

Configurer les autorisations de fichiers sécurisés

Les autorisations de fichiers WordPress sécurisées fournissent une couche supplémentaire de défense contre les attaques visant à accéder aux informations sensibles du site Web et du serveur. Et bien que vous ayez rarement besoin de modifier les autorisations de fichiers des fichiers de configuration système critiques et d'autres données de serveur restreintes, la responsabilité de la configuration des autorisations sécurisées pour les fichiers du site Web incombe souvent au propriétaire du site Web.

La conservation d'informations WordPress critiques telles que le fichier wp-config.php peut aider à prévenir efficacement les compromis entre comptes grâce à des liens symboliques d'attaques par inclusion de fichiers exploitant les vulnérabilités de traversée de répertoires. Les vérifications des autorisations de fichiers dans iThemes Security Pro aident les propriétaires de sites Web à s'assurer que ce mécanisme de sécurité critique est correctement mis en œuvre sur leurs sites WordPress.

Implémenter un pare-feu d'application Web

Les pare-feu fonctionnent en filtrant les requêtes Web malveillantes qui correspondent à des modèles connus ou présentent des modèles anormaux avant qu'elles ne soient transmises au serveur Web. En tant que première ligne de défense robuste contre un vaste éventail de cyberattaques menées par des bots, telles que le déni de service (Dos) et le déni de service distribué (DDoS), et les attaques par injection de données telles que les scripts intersites (XSS) et SQL injections (SQLi).

La mise en œuvre d'un pare-feu d'application Web (WAF) ou d'une combinaison d'une solution de prévention des intrusions basée sur l'hôte et sur le cloud peut réduire considérablement la possibilité d'une tentative d'effraction réussie. Agissant comme une deuxième couche de défense contre les vulnérabilités d'inclusion de fichiers et de traversée de répertoires, les pare-feu d'applications Web garantissent que les pirates peuvent exploiter toutes les faiblesses de sécurité trouvées dans les versions non corrigées des plugins et des thèmes.

Avec IThemes Security Pro, la protection contre la force brute et les solutions intégrées de gestion des bots aident à arrêter les mauvais bots et à empêcher les requêtes Web malveillantes d'atteindre votre site Web. Avec l'ajout d'une authentification multifacteur alimentée par des clés d'accès avec des connexions biométriques, cette suite de sécurité complète offre une approche à multiples facettes pour défendre votre site Web contre divers types de menaces de sécurité.

Sécurisez votre site WordPress avec iThemes Security Pro

Les vulnérabilités d'inclusion de fichiers et de traversée de répertoires constituent une menace importante pour la sécurité des sites Web, car elles sont fréquemment exploitées par des pirates cherchant à obtenir un accès non autorisé à des données sensibles ou à exécuter un code malveillant sur le serveur de la victime. En utilisant des séquences de traversée de répertoires et en fournissant à un site Web vulnérable le chemin d'accès à certaines données, un attaquant peut inciter le serveur Web à exposer des informations de serveur et de site Web autrement restreintes.

Bien qu'elle soit largement étudiée et reconnue, la traversée de répertoires reste une préoccupation majeure pour les sites Web WordPress qui s'appuient sur des logiciels obsolètes et manquent de mesures de sécurité appropriées. Effectuer des mises à jour opportunes du noyau, du thème et des plugins de WordPress, configurer des autorisations de fichiers sécurisées et mettre en œuvre un pare-feu d'application Web peut réduire considérablement le risque que votre site Web soit susceptible d'attaques par inclusion de fichiers en exploitant la traversée de répertoires.

iThemes Security Pro peut vous aider à défendre votre site Web WordPress contre une vaste gamme de cybermenaces en offrant une approche complète et multiforme de la sécurité des sites Web. Avec une analyse avancée des vulnérabilités, des mises à jour logicielles automatiques et de puissantes solutions de gestion de bot intégrées, iThemes Security Pro agit comme votre conseiller personnel en matière de sécurité, assurant la sécurité de votre site Web WordPress à tout moment.