Attention aux pirates !17Août.2012

Les bonnes pratiques Joomla! : Points de sécurité

Loin de moi l’idée de jouer les experts en sécurité Web, mais quelques notions de base sont tout de même à aborder lorsqu’on est une agence web.

Attention cependant, car les conseils suivants ne s’appliquent pas à tous les cas, et peuvent dépendre de la configuration serveur, de la version de Joomla! utilisée, et demander plus ou moins d’expérience et de ressources à mettre en place.

Bonne et mauvaise nouvelles

La mauvaise nouvelle c’est qu’il n’y a pas de sécurité parfaite sur le Web ! En effet, Internet est en constante évolution, c’est ce qui le rend si riche, et si dangereux à la fois. C’est aussi pour cette raison qu’il n’existe pas une manière unique de protéger un site Internet.

La bonne nouvelle c’est que la balle est dans votre camp ! Après avoir lu cet article vous aurez fait un tour d’horizon sur ce qu’il est possible de faire afin d’optimiser la sécurité de son site Joomla!. Libre à vous ensuite d’appliquer ou non nos conseils.

Installez la dernière version

Démarrez sur une base saine en installant la dernière version stable de Joomla! téléchargée sur le site officiel (ou la dernière version francisée sur le site joomla.fr).
Avant l’installation, dressez une liste des applications tierces (composants, modules, plugins, templates, scripts…) que vous comptez utiliser, et vérifiez qu’elles sont bien compatibles avec la version de Joomla! choisie.

Pourquoi ?
En n’utilisant pas la dernière version stable de Joomla! vous êtes une cible potentielle pour les pirates exploitant des failles de sécurités connues de la plateforme.

Modifiez le préfixe des tables

Par défaut, sur ses anciennes versions, Joomla! rajoutait le préfixe « jos_ » à toutes ses tables de données.
Depuis la version 2.5, ce préfixe est généré aléatoirement durant l’installation de la plateforme, il n’est donc plus nécessaire de s’en soucier.

Modifier le préfixe des tables Joomla!

Pourquoi ?
En conservant le préfixe « jos_ » connu de tous, vous facilitez l’accès aux pirates désireux d’exploiter les données de votre base.

Respectez les permissions des fichiers et répertoires

Chmod 777 = Anarchie

Si vous êtes un habitué des « JFTP::error… » je vous invite à consulter notre article sur la couche FTP de Joomla!. En effet, même si vous rencontrez fréquemment ce type d’erreur, ce n’est pas une raison pour laisser le libre accès à tout le monde dans vos répertoires (CHMOD 777 partout c’est le mal !).

Le plus possible, respectez des permissions restrictives pour vos fichiers et répertoires (644 pour les fichiers et 755 pour les dossiers).

Pourquoi ?
Un fichier ou répertoire avec des permissions en CHMOD 777 est lisible, modifiable et exécutable par tous. Ne laissez pas les pirates faire la loi dans vos fichiers.

Modifiez l’administrateur par défaut

Par défaut, sur ses anciennes versions, Joomla! créé un utilisateur « admin » lors de son installation. Depuis la version 2.5 il vous est possible de modifier cet identifiant directement pendant les étapes d’installation.
Modifier l’identifiant de cet utilisateur augmente énormément la sécurité de votre plateforme puisque sans ça, un pirate possède déjà une des deux clés pour accéder à votre back office : la deuxième étant votre mot de passe.

Choisissez un identifiant unique et un mot de passe complexe pour rendre la tâche plus difficile à nos malheureux hackers.

Protégez le répertoire /administrator

D’origine, Joomla! utilise le répertoire « /administrator » situé à sa racine comme dossier d’administration. Dès lors, il n’est plus un secret pour personne que la page de connexion au back office se situe à l’adresse suivante : http://www.monsite.fr/administrator.

Plusieurs solutions s’offrent à vous pour protéger cette page un peu plus convenablement :

  • Une protection par IP via .htacess
  • Une protection par mot de passe via .htpasswd
  • De nombreux plugins et autres solutions tierces pour Joomla! permettent notamment de renommer ce dossier, ou d’y ajouter une clé spécifique…

Pourquoi ?
La page de connexion étant connue du pirate, il n’est qu’une question de temps avant qu’il ne trouve la bonne combinaison login/password. Temps qui peut être considérablement réduis si en plus le login est admin (par défaut) et le mot de passe… 1234 !

Tenez à jour votre plateforme

Installer la dernière version c’est bien, la tenir à jour c’est mieux !
Comme je l’ai dis plus haut, le Web est en évolution constante, et des correctifs de failles de sécurités sortent tous les mois.
Aussi il est fortement recommandé de mettre à jour régulièrement et le plus rapidement possible aussi bien votre plateforme Joomla!  que ses extensions tierces.

Néanmoins, il est nécessaire de tester les mises à jour avant de les appliquer à sa plateforme en production. En effet une plateforme Joomla! possède bien souvent un grand nombre d’extensions tierces qui ne sont pas forcément compatibles avec les nouvelles versions.

De plus, depuis sa version 2.5, Joomla! possède de façon native un composant permettant de mettre à jour le CMS et ses extensions compatibles en un clic.

Effectuez des backups réguliers

« Mieux vaut prévenir que guérir ! », il est important d’effectuer des backups réguliers de sa plateforme : aussi bien des fichiers (FTP) que de la base de données.
Pensez également à tester les backups que vous planifiez, et stockez-les en lieu sûr.

Des outils pour vous aider

Joomla! est riche en extensions diverses et variées, je ne pouvait donc pas vous laisser partir sans vous conseiller quelques-unes d’elles bien pratique pour sécuriser votre site :

La liste ne s’arrête pas là…

Et non, cet article n’est qu’une ébauche concernant la sécurité d’un site propulsé sous Joomla!. Si vous voulez en apprendre plus n’hésitez pas à consulter la documentation Joomla! sur la sécurité.

Don't worry pirate!

Il y a 10 commentaires

  • agence nancy

    Un article intéressant qui remets les pendules à l’heure, nul n’est infaillible et une bonne sauvegarde est nécessaire.

    • Guillaume Heid

      Bonjour et bienvenue sur notre blog !
      En effet, le backup est sans doute la chose la plus facile et la plus rapide à mettre en place.
      Cependant ne dit-on pas « mieux vaut prévenir que guérir » ? ^^
      Tous les autres points de l’article traitent bien de prévention. Le backup pour moi… c’est le la guérison ^^

  • stephane.buray

    il y a trop de failles de sécurités avec joomla ou WordPress

    • Guillaume Heid

      Bonjour Stéphane et bienvenue sur notre blog !

      Malheureusement les failles de sécurités seront toujours un problème, quel que soit le CMS utilisé. D’où l’intérêt de cet article 😉

  • Didier Carloz

    Bonjour et félicitation pour cet article complet et drôle 😉 J’adore !

    Pourrais-je me permettre un petit ajout technique assez récent ? Désormais on peut mettre en place une authentification à 2 facteurs pour accéder à son admin Joomla! : soit via une YubiKey, soit sur smartphone via Google Authenticator.
    Cette technique rend quasi impossible le détournement de mot de passe, ou alors avec un niveau de compétence très très élevé… qui ne sert généralement pas à attaquer un Joomla! de base 😉

    J’ai créé un article sur mon blog à ce propos si cela vous intéresse…

    • Guillaume Heid

      Bonjour et bienvenue sur notre blog.

      Bien entendu, tout complément d’information est bon à prendre, aussi n’hésitez pas à publier des liens qui complètent notre contenu 😉

      • Didier Carloz

        Avec plaisir donc 😉
        L’article se trouve à cette adresse : http://network.wantoo.com/fr/blog/8-s%C3%A9curisez-votre-acc%C3%A8s-admin-joomla-%C2%AE.html

  • Yann Charlou

    Depuis la dernière faille de Joomla sur le filtrage des images, (et la failles régulières dans JCE) j’ajoute systématiquement ce .htaccess dans le dossier images :

    order allow,deny
    deny from all

    Ca peut donner un peu de répit le temps de détecter un shell avec le anti-virus et de rechercher la faille.

    • Guillaume Heid

      Bonjour Yann, bienvenue sur notre blog et merci de partager avec nos lecteurs votre expérience du web et de la sécurité 😉

    • Yann Charlou - Sauveur de Joomla piraté ;-)

      Bonjour Guillaume,

      Je me rend compte que le filtrage html à viré une partie du contenu. J’ai remplacé les inférieurs et supérieurs par des #.

      #FilesMatch « ^.*\.(cgi|pl|php[3-5]{0,1}|shtm?l?|aspx?|cfml?|jsp)$ »#
      order allow,deny
      deny from all
      #/FilesMatch#

Laisser un commentaire

*