Dans le contexte actuel où les cyberattaques sont de plus en plus fréquentes et sophistiquées, sécuriser un site web Joomla contre les menaces potentielles est devenu impératif.
La sécurité d’un site Joomla n’est pas une action ponctuelle mais un processus continu qui requiert une vigilance constante et des mises à jour régulières pour contrer les nouvelles vulnérabilités et les techniques d'attaque émergentes. Ce guide est spécialement conçu pour les propriétaires et les administrateurs de sites Joomla. Il offre un aperçu des pratiques essentielles de sécurité et des mesures proactives pour améliorer la résilience de votre site et minimiser les risques de compromission.
Nous aborderons des stratégies clés, telles que la gestion rigoureuse des mises à jour de Joomla et de ses extensions, l'audit des composants et des modèles, et l'implémentation de contrôles d'accès stricts. En suivant les étapes décrites dans ce guide, vous pourrez non seulement protéger efficacement votre site contre les intrusions mais aussi garantir un environnement plus sécurisé pour vos utilisateurs.
1 - Protégez Joomla des vulnérabilités logicielles
L'équipe de sécurité de Joomla fait un excellent travail en encourageant les utilisateurs à maintenir leurs sites à jour, mais en raison de la variété et de la complexité des serveurs Web modernes, les problèmes de sécurité ne peuvent pas être résolus avec des solutions simples et universelles.
En installant régulièrement les dernières versions de Joomla, vous pouvez vous assurer que votre site Web a de meilleures chances de résister aux attaques potentielles de mauvais acteurs.
1.1 - Extensions et modèles d'audit
Les extensions et les modèles peuvent devenir obsolètes, ou inclure des bogues qui présentent de sérieux risques de sécurité pour votre site Web.
Pour protéger votre installation Joomla, nous vous recommandons d'auditer régulièrement vos extensions, composants et modèles. Le tableau de bord Joomla propose des notifications de mise à jour lorsque les administrateurs se connectent. Celles-ci incluent une version principale de Joomla, une version PHP ou des extensions obsolètes. Les notifications de mise à jour s'affichent s'il y a des problèmes de sécurité ou non, alors assurez-vous de toujours tout garder à jour.
Note : Lisez attentivement les conditions d'utilisation. Les extensions et les modèles peuvent inclure des extras indésirables et vous souhaiterez peut-être rechercher une solution alternative plus sécurisée.
Toutes les extensions vulnérables connues sont répertoriées dans la section Liste des extensions vulnérables (VEL) . Aucun correctif n'est disponible pour les extensions dans cette section et il est recommandé de désinstaller l'extension de votre site. La section VEL résolu répertorie les extensions pour lesquelles un correctif est disponible. Il est recommandé de mettre à jour si votre site utilise l'une de ces extensions.
Vous pouvez évaluer la sécurité des composants, extensions et modèles Joomla en examinant les indicateurs importants :
- Y a-t-il beaucoup d’avis d’utilisateurs et la note moyenne est-elle élevée ?
- Les développeurs soutiennent-ils activement leur extension et proposent-ils des mises à jour ou des correctifs de sécurité fréquents ?
- Le fournisseur présente-t-il des conditions de service ou une politique de confidentialité ?
- Le fournisseur inclut-il une adresse de contact physique dans les conditions de service ou la page Contact ?
- L'extension est-elle répertoriée dans la liste des extensions vulnérables sur vel.joomla.org ? D’autres extensions du même fournisseur y sont-elles fréquemment répertoriées ? Cela impliquerait un manque de sensibilisation à la sécurité.
- L'extension utilise-t-elle Joomla! Mettre à jour le système pour gérer ses mises à jour ?
Supprimer les composants inutilisés
Comme pour tout autre CMS, lorsqu’il s’agit de composants inutilisés, moins c’est toujours plus. Stocker les composants inutilisés dans votre installation Joomla ne fera qu'augmenter les risques de compromission, même s'ils sont désactivés et inactifs.
Conseil de pro : nous vous recommandons fortement de supprimer les extensions, composants ou thèmes inutilisés afin de réduire les failles de sécurité potentielles.
1.2 - Mises à jour
Il est révolu le temps de vérifier manuellement la version de votre noyau Joomla ou d'autres composants et extensions officiels.
Joomla propose désormais des mises à jour automatiques pour votre installation. Lorsque vous vous connectez au tableau de bord (qui est par défaut sur yourdomain.com/administrator/), vous recevrez une notification de toutes les mises à jour disponibles pour votre version de logiciel ou le noyau de Joomla lui-même.
S'il n'est pas nécessaire d'appliquer une mise à jour à votre installation Joomla, le tableau de bord l'indique. Sous l'élément « Maintenance » du menu du Panneau de configuration : « Joomla est à jour » et « Toutes les extensions sont à jour ».
Vous devez toujours appliquer les mises à jour dès que possible. En vous connectant fréquemment à votre site, vous serez assuré d'être au courant des mises à jour récemment publiées. Cliquez sur Rechercher les mises à jour pour vérifier directement auprès du référentiel Joomla toute nouvelle mise à jour.
Joomla vous avertira sur votre page d'accueil d'administrateur (panneau de configuration) lorsqu'une mise à jour sera disponible. Il ne sera pas automatiquement mis à jour pour vous. Il est de la responsabilité de l'administrateur de démarrer la mise à jour et d'en vérifier la réussite.
Si vous ne pouvez pas mettre à jour votre site pour quelque raison que ce soit, envisagez d'utiliser un pare-feu de site Web pour résoudre virtuellement le problème et minimiser les risques.
Avant de mettre à jour Joomla, nous vous recommandons de prendre les mesures de précaution suivantes :
- Sauvegardez votre site Web Joomla, en particulier tous les composants, extensions et modèles personnalisés.
- Consultez les notes de version de la mise à jour disponible pour identifier si les modifications auront un impact négatif sur votre site Web.
- Testez la mise à jour sur un site de développement pour vérifier que vos composants, extensions et modèles sont compatibles avec la dernière version.
Mise à jour des extensions
Afin de voir si des mises à jour sont disponibles pour vos extensions installées, connectez-vous à votre tableau de bord Joomla et accédez à Extensions > Gérer > Mettre à jour.
En fonction de votre version de Joomla, les extensions correspondantes peuvent différer dans leur méthode de mise à jour, il est donc recommandé de toujours consulter la documentation officielle de Joomla pour connaître la bonne méthode à utiliser pour installer les mises à jour.
2 - Mettre en œuvre des mesures strictes de contrôle d’accès
Il y aura toujours des attaquants qui tenteront d’exploiter les informations d’identification des utilisateurs et les configurations de sécurité faibles afin d’accéder aux sites Web Joomla.
En utilisant des mots de passe forts et uniques sur votre site Web, en limitant les privilèges disponibles pour les utilisateurs via des rôles attribués, en permettant une authentification en deux étapes ou à plusieurs facteurs et en limitant les sessions utilisateur, vous pouvez réduire le risque de compromission d'un site Web par un mauvais acteur.
2.1 - Comptes utilisateurs
La façon dont vous gérez vos utilisateurs joue un rôle important dans la sécurité de votre site Web Joomla.
Par défaut, Joomla autorise trois groupes d'utilisateurs privilégiés à accéder au panneau de configuration :
- Gestionnaires : accès aux fonctionnalités de création de contenu et aux informations système dans le backend
- Administrateurs : accès à la plupart des fonctions d'administration mais pas aux options globales
- Super utilisateurs : accès à toutes les fonctions d'administration avec un contrôle complet
Au début de toute nouvelle installation de Joomla, vous devez définir le nom d'utilisateur et le mot de passe de l'administrateur. Assurez-vous que votre nom d'utilisateur n'est pas « démo », « administrateur » ou « administrateur ».
En changeant le nom d'utilisateur, vous augmentez la difficulté d'accès au compte. Un attaquant doit deviner correctement le nom d'utilisateur et le mot de passe en même temps pour y accéder.
Pour modifier le nom d'utilisateur, procédez comme suit :
- Connectez-vous au back-end Joomla.
- Sélectionnez le gestionnaire d'utilisateurs sous Utilisateurs > Gérer .
- Sélectionnez l'enregistrement utilisateur « admin ».
- Changez le nom d'utilisateur.
- Cliquez sur Enregistrer
Rôles et principe du moindre privilège
Le principe du moindre privilège est composé de deux règles très simples :
- Utilisez l'ensemble minimal de privilèges sur un système afin d'effectuer une action.
- Accordez des privilèges uniquement pour la durée exacte pendant laquelle une action est nécessaire.
De plus, Joomla inclut divers rôles intégrés pour les utilisateurs publics, invités, enregistrés, spéciaux et super. Ces rôles précisent ce qui peut et ne peut pas être accompli par un utilisateur.
Suivez ces recommandations de contrôle d’accès pour réduire vos risques de sécurité :
- Créez de nouveaux comptes d'utilisateurs au niveau d'autorisation le plus bas.
- Accordez des autorisations temporaires et révoquez l’accès lorsqu’elles ne sont plus nécessaires.
- Supprimez les comptes qui ne sont plus utilisés.
- Assurez-vous que le rôle d'utilisateur par défaut est défini sur Public.
- Si vous avez des noms d'utilisateur existants, assurez-vous que le moindre privilège s'applique à tous les non-administrateurs.
Pour modifier le nom d'utilisateur, procédez comme suit :
- Connectez-vous au back-end Joomla en tant qu'administrateur.
- Sélectionnez le gestionnaire d'utilisateurs sous Utilisateurs > Gérer .
- Sélectionnez l'utilisateur que vous souhaitez modifier et attribuez-le au groupe d'utilisateurs Public.
2.2 Mots de passe Joomla forts des utilisateurs
Les listes de mots de passe sont souvent utilisées par les attaquants pour forcer brutalement les sites Web Joomla. C'est pourquoi vous devez toujours utiliser des mots de passe forts et uniques pour tous vos comptes.
Les mots de passe forts doivent répondre aux normes suivantes :
- Au moins 1 caractère majuscule
- Au moins 1 caractère minuscule
- Au moins 1 chiffre
- Au moins 1 caractère spécial
- Au moins 10 caractères, avec pas plus de deux caractères identiques à la suite
Conseil de pro : Vous pouvez appliquer des mots de passe forts depuis Utilisateurs > Options de mot de passe.
En tant que bonne pratique de sécurité, nous encourageons tous les webmasters à utiliser un gestionnaire de mots de passe comme KeePass pour générer et stocker en toute sécurité leurs mots de passe.
2FA/AMF
L'authentification à deux facteurs offre un deuxième niveau de protection pour votre compte. Cette fonctionnalité nécessite qu'un utilisateur approuve une connexion via une application et protège votre compte dans le cas où quelqu'un serait capable de deviner votre mot de passe.
Pour ajouter 2FA à Joomla à l'aide de Google Authenticator :
- Téléchargez et installez Google Authenticator sur votre iPhone ou Android.
- Installez et activez une extension 2FA pour Joomla comme l'authentification à deux facteurs .
- Sélectionnez Extensions > Gérer dans le Panneau de configuration et suivez les instructions.
- Une fois que vous avez obtenu votre code QR, ouvrez Google Authenticator et cliquez sur le bouton Ajouter en bas à droite de l'application.
- Scannez le code QR affiché par le plugin à l'aide de l'appareil photo de votre téléphone.
- Vérifiez le code sur la page des paramètres de l'extension.
Pare-feu
Le pare-feu Sucuri comprend une fonctionnalité qui vous aide à mettre en œuvre facilement une protection 2FA ou par mot de passe sur n'importe quelle page de votre site Web.
Pour forcer un authentificateur global pour tous les utilisateurs :
- Téléchargez et installez Google Authenticator sur votre iPhone ou Android .
- Connectez-vous au tableau de bord Sucuri et accédez au pare-feu de site Web .
- Cliquez sur le site Web que vous souhaitez protéger.
- Sélectionnez Contrôle d'accès dans la navigation supérieure.
- Entrez le nom de la page que vous souhaitez protéger (c'est-à-dire /admin), puis sélectionnez 2FA avec Google Auth dans le menu déroulant.
- Cliquez sur Protéger la page .
- À l'aide de Google Authenticator, scannez le code QR avec votre appareil mobile pour terminer la configuration.
2.3 Limiter les tentatives de connexion
Les tentatives de connexion illimitées sont un paramètre par défaut dans Joomla. Cela rend votre site vulnérable aux attaques par force brute, car les pirates tentent différentes combinaisons de mots de passe.
Nous vous recommandons d'ajouter une couche de protection supplémentaire en limitant le nombre de tentatives de connexion à un compte via une extension ou en utilisant un pare-feu d'application Web (WAF).
Certains plugins populaires qui vous offrent cette fonctionnalité sont AdminExile et Brute Force Stop.
2.4 CAPTCHA de pré-connexion
L'acronyme signifie Test de Turing public entièrement automatisé pour distinguer les ordinateurs des humains. Cette fonctionnalité est extrêmement utile pour empêcher les robots automatisés d'accéder à votre tableau de bord Joomla, ainsi que pour soumettre du spam indésirable via des formulaires.
Les extensions populaires qui ajoutent un CAPTCHA à votre page de connexion Joomla sont SecurImages Captcha Plugin ,Antispam by CleanTank ,Custom reCaptcha ou OSOLCaptcha.
2.5 Restreindre l'accès aux URL authentifiées
Limiter l'accès à votre page de connexion aux seules adresses IP autorisées empêchera les entrées non autorisées.
Il existe des extensions disponibles qui peuvent le faire. Si vous utilisez un WAF basé sur le cloud comme le pare-feu Sucuri, vous pouvez restreindre l'accès à ces URL via votre tableau de bord sans avoir à modifier les fichiers .htaccess.
3 Sécurité Joomla proactive
Dans le domaine de la sécurité de l'information (InfoSec), nous aimons utiliser l'expression défense en profondeur.
Pour apprécier cette idéologie, il faut souscrire à un principe très simple : il n’existe pas de solution complète à 100 % capable de protéger n’importe quel environnement.
Dans cette section, nous avons répertorié un certain nombre de solutions que vous pouvez utiliser sur votre site Web Joomla pour fournir une stratégie de défense en profondeur efficace. En superposant ces contrôles défensifs, vous serez en mesure d'identifier et d'atténuer les risques et les attaques contre votre site Web.
3.1 Extensions de sécurité
Si vous accédez au référentiel officiel d'extensions Joomla et effectuez une recherche rapide sur Sécurité, vous trouverez plus de 500 extensions avec des catégorisations et des ensembles de fonctionnalités distincts : accès au site, outils de sécurité, accès et sécurité, et bien d'autres.
Joomla organise son groupe Accès et sécurité éparément, avec un total actuel de près de 400 extensions, gratuites et payantes.
Les plugins de détection sont importants pour identifier si quelque chose ne va pas sur votre site Web. Ces outils garantissent que vous êtes informé en cas d'incident de sécurité.
3.2 Hébergement Web
La sécurité de l'hébergement Web a mûri ces dernières années, mais reste un sujet très complexe.
La plupart des hébergeurs offrent la sécurité dont vous avez besoin à différents niveaux de la pile, mais pas pour le site Web lui-même. Il existe un certain nombre de fournisseurs d'hébergement qui offrent une sécurité moyennant des frais supplémentaires, mais à moins que vous n'ayez acheté un produit de sécurité chez eux, il est peu probable qu'ils résolvent un compromis à votre place.
Il existe quatre principaux environnements d'hébergement qui peuvent être utilisés pour votre installation Joomla :
- Environnements d'hébergement partagés
- Environnements de serveurs privés virtuels (VPS)
- Environnements d'hébergement gérés
- Serveurs dédiés
En théorie, les environnements qui suppriment le plus de dépendance de l’utilisateur offriront le plus de sécurité. Si vous disposez du temps et des compétences nécessaires pour sécuriser votre propre environnement, vous disposez alors de plus d’options, mais également de plus de responsabilités.
En réalité, cependant, le type d’environnement d’hébergement que vous choisissez doit être dicté par vos besoins, votre expertise et votre budget :
- Si vous êtes quelqu'un qui comprend peu le fonctionnement des sites Web, il est dans votre intérêt d'opter pour un environnement géré.
- Si vous êtes une organisation disposant de votre propre centre d'opérations réseau (NOC), centre d'opérations de sécurité de l'information (SOC) ou d'administrateurs système dédiés, un VPS ou un serveur dédié offre une meilleure isolation pour votre environnement (en supposant qu'il soit correctement configuré).
Vous pouvez également engager une conversation avec votre fournisseur d'hébergement pour identifier sa position en matière de sécurité. Voici quelques points clés qui devraient être abordés :
- Quelles précautions de sécurité prennent-ils pour protéger votre site Web (pas seulement leur serveur) ?
- Quelles actions mettront-ils en œuvre s’ils identifient un malware sur l’un de vos sites Web ?
- À quelle fréquence recherchent-ils des logiciels malveillants ?
- Offrent-ils des services de réponse aux incidents ?
- Aurez-vous besoin de contacter un tiers si votre site est piraté ?
Comme pour les autres plates-formes CMS, le site Web officiel de Joomla recommande d'essayer certains services de fournisseur d'hébergement Web. Nous ne savons pas vraiment si la liste est basée sur des fonctionnalités de sécurité et de performances vérifiées ou sur de simples publicités, alors soyez prudent.
Connexions SFTP/SSH
La sécurisation du transfert de fichiers vers et depuis votre serveur est une facette importante de la sécurité du site Web dans votre environnement d'hébergement. Le cryptage garantit que toutes les données envoyées sont protégées contre les attaquants tentant d'accéder à votre trafic réseau.
SSH : Secure Socket Shell est un protocole réseau sécurisé et le moyen le plus courant d'administrer en toute sécurité des serveurs distants. Avec Secure Socket Shell, tout type d'authentification (y compris l'authentification par mot de passe et les transferts de fichiers) est crypté.
SFTP : SSH File Transfer Protocol est une extension de SSH et permet une authentification sur un canal sécurisé. Si vous utilisez FileZilla ou un autre client FTP, vous pouvez souvent sélectionner SFTP à la place. Le port par défaut pour SFTP dans la plupart des services FTP est 22.
3.3 Sauvegardes
La maintenance des sauvegardes d'un site Web devrait être l'une des tâches récurrentes les plus importantes pour un administrateur de site Web.
Un bon ensemble de sauvegardes peut sauver votre site Web lorsque absolument tout le reste ne va pas. Si un attaquant malveillant décide d'effacer tous les fichiers de votre site ou corrompt les fichiers de votre site avec ses scripts bogués, les dégâts peuvent être réparés simplement en restaurant votre site à partir de vos sauvegardes.
L'un des outils de sauvegarde les plus utilisés pour Joomla est Akeeba.
Il existe quatre exigences clés pour utiliser une solution de sauvegarde réussie :
- Emplacement hors site : vos sauvegardes doivent être stockées hors site et non sur le même serveur que votre site Web. Les sauvegardes stockées sur votre serveur Web présentent un risque de sécurité sérieux car elles contiennent souvent des logiciels anciens et non corrigés présentant des vulnérabilités. En raison de leur emplacement accessible au public, n'importe qui peut les exploiter pour attaquer votre site Web en direct. Les sauvegardes hors site contribuent également à vous protéger contre les pannes matérielles. Si le disque dur de votre serveur Web tombe en panne, vous pouvez facilement perdre toutes vos données : le site en direct et les sauvegardes.
- Automatique : les systèmes de sauvegarde doivent être entièrement automatisés pour garantir que les sauvegardes sont effectuées régulièrement. Les humains ont tendance à être occupés et oublieux, vous pouvez donc atténuer les erreurs des utilisateurs grâce à l'automatisation. Si une solution manuelle est votre seule option, assurez-vous de planifier une heure pour effectuer des sauvegardes régulièrement.
- Redondant : la deuxième loi informatique de Schofield stipule que les données n'existent pas à moins qu'il n'en existe au moins deux copies. Cela signifie que votre stratégie de sauvegarde doit inclure la redondance, c'est-à-dire les sauvegardes de vos sauvegardes.
- Testé et vrai : assurez-vous que le processus de restauration fonctionne réellement. Commencez avec un répertoire Web vide, puis assurez-vous que vous pouvez utiliser ces sauvegardes pour remettre toute votre base de données et le site Web en ligne avec un domaine de test n'utilisant que le fichier de sauvegarde.
3.4 Détection
Il existe un certain nombre d'outils que vous pouvez utiliser pour identifier un problème sur votre site Web Joomla.
Pour vous aider à réagir rapidement à une faille de sécurité, utilisez un outil qui comprend les services suivants :
Surveillance de l'intégrité
Les contrôles d'intégrité sont un aspect important de l'audit de votre installation Joomla. Ils vous avertissent précocement d’une intrusion sur votre site Internet.
Les outils de surveillance de l’intégrité des fichiers doivent normalement être installés sur un serveur où ils peuvent créer une somme de contrôle cryptographique de base des fichiers critiques et des entrées de registre. Si un fichier ou un enregistrement est modifié de quelque manière que ce soit, vous recevrez une notification des modifications.
Audit / Alertes
Les outils d'audit vous donnent une visibilité sur l'activité des utilisateurs sur le site Web. En tant qu'administrateur de votre site Web, vous devriez vous poser des questions comme celles-ci :
- Qui se connecte ?
- Devraient-ils se connecter ?
- Pourquoi changent-ils ce message ?
- Pourquoi se connectent-ils alors qu’ils devraient dormir ?
- Qui a installé ce plugin ?
- Pourquoi prennent-ils cette mesure ?
Nous ne saurions trop insister sur l’importance de l’activité forestière. Utilisez un outil qui enregistre et vous alerte de toutes les actions entreprises sur votre site Web, notamment :
- Succès et échecs de l’authentification des utilisateurs
- Création/suppression d'utilisateur
- Téléchargements de fichiers
- Création d'articles et de pages
- Publication d'articles et de pages
- Installation d'extensions
- Modifications du modèle
- Modifications des paramètres
Plan d’intervention et de rétablissement
La réponse et la récupération ne consistent pas seulement à réagir à une compromission ou à un incident, il s'agit également d'analyser les impacts d'une attaque pour comprendre ce qui s'est passé et de mettre en œuvre des contrôles pour empêcher qu'une telle situation ne se reproduise.
Conclusion : consolider la sécurité de votre site Joomla pour une protection optimale
La sécurisation d'un site Joomla est une démarche essentielle et continue qui exige de l'attention et une mise en œuvre méthodique des meilleures pratiques de sécurité. En suivant les étapes détaillées dans ce guide, vous pourrez significativement renforcer les défenses de votre site contre les menaces persistantes et évolutives du cyberespace. Il est crucial de maintenir vos systèmes à jour, d'auditer régulièrement vos extensions et modèles, et d'adopter des mesures strictes de contrôle d'accès pour minimiser les risques de compromission.
De plus, l'utilisation de solutions de sécurité proactive, comme les firewalls et les systèmes de détection d'intrusion, peut fournir une couche supplémentaire de protection. Enfin, n'oubliez pas que la sécurité est un processus dynamique qui nécessite une adaptation constante aux nouvelles menaces. Restez donc vigilant, informé et prêt à agir pour défendre votre site Joomla contre les risques actuels et futurs.
Nous sommes experts Joomla! depuis 2009 et nous l'utilisons pour tous types de création ou refonte de sites web.
Quel que soit votre besoin, votre nature d'entreprise ou secteur d'activité, nous avons une solution à vous proposer, contactez-nous pour un devis gratuit et personnalisé.