Protégez votre site Joomla!, interdisez l'accès aux fichiers xml depuis une url.

Cet article a été originellement posté sur mon blog http://allevents.avonture.be en juin 2013.   Le site web d'aeSecure est désormais plus adapté aujourd'hui à ce type de billet.

Vous n'êtes probablement pas sans savoir qu'un site Joomla! est composé d'un grand nombre de fichiers de configuration pour vos templates, composants, modules et plugins.   Ces fichiers de configurations sont des fichiers dont l'extension est .xml; ils sont installés en même temps que les extensions que vous installez sur votre site.   Dans ces fichiers, on retrouve un grand nombre d'informations de paramétrage mais aussi le numéro de version des extensions : ainsi, en écrivant une url qui pointe vers un tel fichier, il est parfaitement possible (et terriblement simple) de déterminer si votre site utilise tel ou tel composant et quelle est la version de ceux-ci.   Il est aussi possible de présumer de la version de Joomla; du moins du numéro majeur de version (1.5 p.ex).

Essayez donc d'accéder au fichier http://xxxxxxxx/[seo_keyword administrator]/components/com_content/content.xml (remplacer xxxx par votre nom de domaine) : que constatez-vous ?  Vous pouvez afficher le fichier dans votre navigateur et vous pouvez déterminer s'il s'agit d'un site Joomla! 1.5, 2.5 ou 3.x.   Est-ce grâve ?  Oui !  Parce que cela permet de cibler votre site et les attaques qu'il va subir.

On peut procéder de même pour n'importe quel fichier .xml, de n'importe quel composant installé et en apprendre beaucoup, trop, sur votre site.

Comment s'en prémunir ?

En fait, c'est excessivement simple : il faut créer un petit fichier texte qui se nommera .htaccess (le fichier n'a pas de nom mais uniquement l'extension .htaccess).  Ce fichier devra être créé dans le dossier /administrator de votre site et il contiendra ceci :

<Files ~ ".xml$"> 
order allow,deny
deny from all
satisfy all
</Files>
 
Si vous avez déjà un fichier /administrator/.htaccess, éditez-le et ajoutez le bloc de lignes ci-dessus à la fin du fichier.
 
Fermez et sauvez.   Et c'est tout !

L'option 4.3 d'aeSecure protège votre administration Joomla! en plaçant un tel fichier dans le dossier /administrator

 
Éssayez à nouveau d'accéder à l'url qui pointait vers un fichier .xml : votre serveur refusera et vous enverra vers une page 404 : le pirate en herbe ... aura l'herbe coupée sous ses pieds.
 
Bien évidemment, cette protection n'est qu'une parmi d'autres et ne pourra jamais être considérée comme totale et efficace.   Elle limite néanmoins la divulgation d'informations sensibles de votre site à tout un chacun.  Les petits addons des navigateurs qui permettent de déterminer la version de Joomla afficheront un joli "Joomla Version : Hidden" ce qui est le but recherché.
 
NB : Pensez à bien tester votre site afin de vous assurer qu'il continue à fonctionner comme souhaité.   En effet, si l'un ou l'autre composant tiers aurait besoin d'accéder légitimement à un fichier .xml depuis une url (c'est excessivement rare!), votre composant pourrait ne plus fonctionner comme attendu.
 
 
  1. Présentation d'aeSecure
  2. Téléchargement d'aeSecure
Back to top